Form 2B City University of Hong Kong Information on a Course offered by Department of Computer Science with effect from Semester A in 2014 / 2015 Part I Course Title: Computer Programming Course Code: CS2311 Course Duration: One Semester No. of Credit Units: 3 Level: B2 Medium of Instruction: English Prerequisites: (Course Code and Title) CS1102 Introduction to Computer Studies or CS1302 Introduction to Computer Programming Precursors: (Course Code and Title) Nil Equivalent Courses: (Course Code and Title) CS2310 Computer Programming Exclusive Courses: (Course Code and Title) CS2313 Computer Programming Part II 1. Course Aims: This course aims to equip the students with in-depth concepts and techniques of programming using a high-level object-oriented programming language; and to develop practical skills in producing quality programs. 2. Course Intended Learning Outcomes (CILOs) (state what the student is expected to be able to do at the end of the course according to a given standard of performance) Upon successful completion of this course, students should be able to: No. CILOs Weighting (approx.) 1. 2. 3. 4. 3. explain the structure of an object-oriented computer program; analyze, test and debug computer programs; solve a task by applying effective programming techniques, which involve advanced skills like using recursion and dynamic data structures; design and construct well-structured programs with good programming practices. 10% 15% 60% 15% Teaching and learning Activities (TLAs) (designed to facilitate students’ achievement of the CILOs) Lectures –Various programming concepts and techniques will be introduced, explained and demonstrated with examples. Lab – The laboratory sessions are designed to enable the students to put theory into practice and be proficient in a programming language. The laboratory exercises consist of programming tasks and students can try out their programs using a common integrated development environment. Feedback will be given to students on their work. Quizzes – The quizzes assess the students’ achievements at various stages within the semester. This provides formative assessment on their learning progress. Assignments – The assignments are more challenging tasks compared with laboratory exercises. The students need to analyze the requirements and design programming solutions by applying (and combining) various techniques learnt from lectures and laboratory exercises. They are also required to implement their solutions as practical computer programs, and to explain their ideas/algorithms using suitable presentation methods (e.g. a report, flowchart, etc). Suggested lecture/tutorial/laboratory mix: 2 hrs. lecture; 2 hrs. laboratory. CILO No 1 (explain the structure of an object- Lecture Lab Assignment Major Major -- Quiz Minor oriented computer program) 2 (analyze, test and debug computer programs) 3 (solve a task by applying effective programming techniques, which may involve advanced skills like using recursion and dynamic data structures) 4 (design and construct wellstructured programs with good programming practices) Minor Major Major Minor Major Major Major Major Major Major Major Minor (Major: Main focus on the CILO, Minor: Minor focus on the CILO) 4. Assessment Tasks/Activities (designed to assess how well the students achieve the CILOs) Sample Assessment Tasks / Activities and Criteria of Each CILO: CILO Assessment criteria No 1 Correctly explain the structure of an objectoriented computer program 2 Select proper test cases to assess the correctness of a program. Find out program errors and make corrections. 3 solve a task by applying effective programming techniques 4 design and construct well-structured programs with good programming practices Assessment tasks / activities Quizzes (Minor) Exam (Minor) Assignment (Major) Quizzes (Minor) Assignment (Major) Exam (Minor) Quizzes (Major) Assignment (Major) Exam (Major) Quizzes (Minor) Assignment (Major) Exam (Minor) 5. Grading of Student Achievement: Refer to Grading of Courses in the Academic Regulations and to the Explanatory Notes. Examination duration: 2 hours Percentage of coursework, examination, etc.: 40% CW; 60% Exam Grading pattern: Standard (A+AA-…F) For a student to pass the course, at least 30% of the maximum mark for the examination must be obtained. Part III Keyword Syllabus: Program design, development of algorithms, programming language, control structures, data types, multidimensional arrays, file I-O, recursion, pointers and dynamic data structures, object-based programming: data abstraction, classes, and the class library; programming style, program testing, exception handling Syllabus: 1. Computers and programming Hardware/software hierarchy, the computer as a multi-level language machine. The software development process. Program development environments. 2. Programming techniques and the development of algorithms Algorithms, programming language, modular decomposition and procedural abstraction, automatic and dynamic variables, parameter-passing by reference and by value for atomic data, objects, and arrays, control structures, iteration, recursion, exception handling. 3. Data structures The concept of data types. Simple data types. Arrays. Strings. Files. Data abstraction: encapsulation, information hiding. Defining and using classes. The class library. Pointers. Dynamic data structures (eg. dynamic array, linked list). 4. Program development practice Professional programming styles. Program testing. Program documentation. Recommended Reading: Essential Text Walter Savitc, Absolute C++. 4th Ed. Addison-Wesley (2010) Supplementary Reading S.B. Lippman, J. Lajoie and B. Moo. C++ Primer. 5th Ed., Addison Wesley (2012) H.M. Deitel & P.J. Deitel C++ How to Program. 8th Ed., Pearson Int. Edition (2011) Online Resources: Programming Assignment aSsessment System (PASS) https://pass3.cs.cityu.edu.hk/