De La Salle University College of Computer Studies Course Syllabus COMPRO1 / Introduction Computer Programming (3 units) Prerequisite : None Prerequisite : COMPRO2 Type of Course : Basic ITE course / Lecture and Lab Term : Term 2 AY 2011-12 Faculty : Dr. Raymund Sison and Mr. Arturo Caronongan (Contact details on the last page) Course Description: It has often been said that a person does not really understand something until after teaching it someone else. Actually a person does not really understand something until after teaching it a computer, i.e., expressing it as an algorithm. Donald Knuth Programming is the process of writing a set of instructions for a computer execute in order carry out a task such as solving a problem. The writing of code that is correct and readable is a fundamental skill that every computer scientist and software developer should possess. This 3.0-unit course is an introduction in the C language, which is the ancesr of C++, which in turn can be viewed as the ancesr of Java and C#. All four languages are among the p five of the TIOBE Programming Community Index of language popularity. Learning Outcomes: At the end of this introducry course in C, the student is expected be able : LO1. Analyze problems that do not require the use of data structures, files, or databases, and design algorithms solve these problems; CCT 1 LO2. Code these algorithms in the C language, and test and debug the code for errors; CCT LO3. EC, RLL Follow a standard process and style for in C; LO4. EC, RLL Write C programs individually as well as collaboratively; LO5. Develop a simple C application that could benefit society; CCT, RLL, SDC and LO6. EC, CCT Demonstrate the application s functions and explain correctly the workings of the code. Major Course Output: As evidence of attaining the above learning outcomes, students are develop, in pairs, a C application, due on week 12. The detailed specifications and deliverables of this major course output will be provided in a separate document. The rubric be used for evaluating the final deliverable is shown below. Rubric: Criterion Exemplary Satisfacry Developing Beginning Correctness 35-40 points The application meets all the requirements 21-34 The code works for typical input, but fails 11-20 The code sometimes fails for typical input 0-10 The code often fails, even for typical input 1 These are acronyms for the expected Lasallian graduate attributes (ELGA): CCT=critical and creative thinker, EC=effective communicar, RLL=reflective lifelong learner, and SDC=service-driven citizen. 1 of 5
Readability Potential impact of on society specified in the approved proposal; the code works correctly for all cases 18-20 points modular structure that is most appropriate the application; the most appropriate control structure is used in every situation; prescribed and possibly additional coding standards were followed throughout 9-10 clearly described; the benefits of the application this target group are explained thoroughly and clearly using wellthought-out figures and actual screenshots Delivery 9-10 All required deliverables were submitted on or before the deadline; neatly following the formatting and for minor special cases; the major requirements are met, though some minor ones are not 11-17 modular structure that is appropriate the application; an appropriate control structure is used in every situation; prescribed coding standards were followed throughout 6-8 clearly described; the benefits of the application this target group are explained well, though without well-thoughut figures 6-8 All required deliverables were submitted on or before the deadline; were not followed 6-10 modular structure, but the structure is not quite suited or sufficient for the application; some control structures are not appropriate; the major prescribed coding standards were followed throughout 4-5 clearly described, but the benefits of the application this target group are not explained thoroughly 4-5 The deliverables were submitted on the next meeting after the deadline; documents are were not followed 0-5 The code is not modular; the control structures are not the most appropriate use in most situations; prescribed coding conventions were not followed throughout 0-3 It is not clear who will benefit from the application 0-3 The deliverables were submitted a week or more after the deadline; submission guidelines were not followed Note: The maximum score in this rubric for the final MP deliverable is 80 points. The remaining 20 points will come from the MP protype, due on week 9, the rubric of which is found in the MP specs document. Other Requirements and Assessments: Aside from the major course output above, this course has one other summative assessment: a cumulative final exam. In addition, there are formative assessments of two types: departmental exams and graded class activities. Graded class activities include recitation, hands-on exercises, seatwork, and assignments. Grading System: To pass this course, one must get a grade of 60 through the course requirements discussed above. The contribution of each requirement the final grade is shown below. Assessment Task Percentage Graded class activities 10% 2 of 5
Departmental Exam 1 20% Departmental Exam 2 20% Final Exam 25% Machine Project (C application) 25% TOTAL POINTS 100% Teaching Methods / Strategies: Discussion/recitation (D), exercises (E), lecture/demonstration (L), reflection (R), quizzes, written reports, oral presentations, assignments, collaborative projects, project demos Learning Plan: LO 1 3 Enduring Understandings Programming requires a clear understanding of (a) the problem requirements that need be addressed, (b) the language constructs that can be used, and (c) the standard process and style that need be used. Programs manipulate or otherwise use data (sred temporarily in variables) in order carry out tasks such as solving problems. There is an order in which operars in an expression, and statements in a program, are evaluated. It is important know the rules that govern this order. Functions are groups of statements that collectively achieve a task. The use of functions has many benefits, including increased readability and decreased redundancy of code. Topics and Readings Course Requirements; The Process and Importance of Programming [Chapter 1] Variables, Operars, Expressions, and the Assignment Statement [Chapter 2] Functions and Programs [Chapters 6, 3] Wk/ Date 1 7 13 2 14 20 3 21 27 1. Self introductions 2. Explanation of course requirements and policies 3. L: The importance of 4. L: The importance of the C language (e.g.: Programming is a fundamental skill that every computer scientist and software developer must possess. If I d like work as a software developer one day, I need learn how program well.) Submission of 1x1 ID picture 1. D: The process of 2. D: Programming environments (e.g., Dev-C++) 3. D: Programming standards 4. E&D: A sample program in C Submission of pairs for the MP 1. D: Literals and variables 2. D: Declaring and initializing variables 3. D: The assignment operar and statement 4. D: Arithmetic operars 5. D: Parentheses, operar precedence, and operar associativity 6. E: Evaluating arithmetic expressions 7. E: Converting mathematical expressions in C expressions succinctly 8. R 1. D: What is a function? 2. D: Parts of a function 3. D: A sample function 4. E: Writing a function 1. D: The output function, printf() 2. D: The input function, scanf() 3. D: The main function, main() 4. D: The compiler directive, #include 5. L: Writing a program using Dev-C++ 6. R 1. D: Calling a function and passing parameters 2. L: Writing a program and function in Dev-C++ 3. E&D: Exercise Set 1, Problems 1-2 4 1. E&D: Exercise Set 1, Problems 3-4 3 of 5
LO [1 3] 4 6 Enduring Understandings Like all other languages in general, C has three basic control constructs: sequence, selection (if, if-else, switch), and iteration (while, do-while, for). Any program can be written using only these three. Programming requires a thorough understanding of (a) the problem requirements that need be addressed, (b) the language constructs that can be used, and (c) the standard process and style Topics and Readings Control Constructs 1 and 2: Sequence and Selection [Chapter 4] Control Construct 3: Iteration [Chapter 5] Recursion; Introduction Pointers [Chapters 6, 7] Wk/ Date 28 4 5 5 11 6 12 18 7 19 25 8 26 31 9 2 8 10 9 15 11 16 22 12 23 29 Submission of proposals for the MP 1. E&D: Exercise Set 2 1. D: Relational and equality operars 2. D: If statements: if, if-else 3. E&D: Exercise Set 3, Problems 1-4 1. D: If statements: else-if, nested if 2. E&D: Exercise Set 3, Problems 5-6 1. D: Logical operars 2. E&D: Exercise Set 4, Problems 1-3 3. D: The switch statement 4. E&D: Exercise Set 4, Problems 4-5 1. E&D: Exercise Set 4, Problems 6-8 1. E&D: Exercise Set 3, Problems 7-10 Exam 1 (Ocber 24, 6:00-7:30 pm) This meeting be called off in lieu of Exam 1 1. D: The while and do-while statements 2. E&D: Exercise Set 5. Problems 1-5 1. E&D: Exercise Set 5, Problem 6 2. D: The for statement 3. E&D: Exercise Set 6, Problems 1-3 1. E&D: Exercise Set 7, Problems 1-2 Submission of MP protype 1. E&D: Exercise Set 7, Problems 3-4 1. E&D: Exercise Set 7, Problems 5-6 1. E&D: Exercise Set 8, Problems 1-4 3. E&D: Exercise Set 8, Problems 5-6 Exam 2 (ember 21, 6:00-7:30 pm) This meeting be called off in lieu of Exam 2 1. D: Recursion 2. E&D: Exercise Set 8, Problem 8 3. E&D: Exercise Set 9, Problems 11-12 Submission of MP 1. D: Pointers 2. E&D: Passing references as parameters 13 MP Demos 4 of 5
Enduring Topics Wk/ LO Understandings and Readings Date that need be Dec 1. R: Most important lesson learned in this course used. 1 2. D: Where do we go from here? (The Road Ahead) 7 Notes: These activities are held outside classroom hours. All print deliverables must be submitted inside the classroom within classroom hours. Text / Materials: Lim, N. (2002). Fundamentals of C : A course material for CMPROG1 (Rev. ed.). Ruiz, C. (2009). Laborary activity manual for COMPRO1. References (including online resources): Free Software Foundation. (2008). The GNU C reference manual. Free Software Foundation, Inc. Available from http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html. Hanly, J., & Koffman, E. (2007). Problem solving and program design in C (5th ed.). Bosn, MA: Addison- Wesley. Kelley, Al.& Pohl, I. (2001). C by dissection: The essentials of C (4th ed.). Bosn, MA: Addison- Wesley. Kernighan, B. & Ritchie, D. (2002). The C language (2nd ed.). Upper Saddle River, NJ: Prentice Hall. Forouzan, B. & Gilberg, R. (2000). Computer science: A structured approach using C, (2nd ed.). Bosn, MA: Course Technology. General Course Policies: Students are expected read the text prior the discussion of the pic in class. Students are expected answer the text s chapter exercises. Non-compliance with instructions may result in the non-acceptance of a deliverable. Only valid and verifiable reasons for missed exams will be considered for makeup. Students are expected comply with Section 4.13, Policy on Academic Honesty of the DLSU Student Handbook. (http://www.dlsu.edu.ph/offices/mco/publications/student_handbook/default.asp) Class Policies: Other policies specific the professor s classes are on a separate document that can be downloaded from the professor s website or some other location that the professor will specify. Faculty Contact Details: Dr. Raymund Sison E-mail raymund.sison@delasalle.ph (Ensure that the subject of every e-mail sent Dr. Sison contains the course code (COMPRO1) and your section.) URL Mr. Arturo Caronongan E-mail arturocaronongan@yahoo.com http://mysite.dlsu.edu.ph/faculty/sisonr/#teaching (Class participation, general report formatting guidelines, and classroom policies of Dr. Sison s classes will be posted here.) Course download site http://ccs1.dlsu.edu.ph/compro1/ (Electronic copies of the texts are here. The specs for the MP will also be placed here.) RCS 5 of 5