CS2311 Computer Programming

Part I

Course Duration:
One Semester

Credit Units: 3

Level: B2

Medium of Instruction: English

Pre-requisites:
CS1102 Introduction to Computer Studies /or
CS1302 Introduction to Computer Programming

Pre-cursors: Nil

Equivalent Courses: Nil

Exclusive Courses: Nil

Part II

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.

Course Intended Learning Outcomes (CILOs):

Upon successful completion of this course, students should be able to:

No.CILOsWeighting(approx.)
1.explain the structure of an object-oriented computer program; 10%
2.analyze, test and debug computer programs;15%
3.solve a task by applying effective programming techniques, which involve advanced skills like using recursion and dynamic data structures;60%
4.design and construct well-structured programs with good programming practices.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 NoLectureLabAssignmentQuiz
1 (explain the structure of an object-oriented computer program)MajorMajor--Minor
2 (analyze, test and debug computer programs)MinorMajorMajorMinor
3 (solve a task by applying effective  programming techniques, which may involve advanced skills like using recursion and dynamic data structures)MajorMajorMajorMajor
4 (design and construct well-structured programs with good programming practices)MajorMajorMajorMinor













   


Assessment Tasks/Activities:
(designed to assess how well the students achieve the CILOs)

Sample Assessment Tasks / Activities and Criteria of Each CILO: 

CILO NoAssessment criteriaAssessment tasks / activities
1Correctly explain the structure of an object-oriented computer program Quizzes (Minor)
Exam (Minor)
2Select proper test cases to assess the correctness of a program.Assignment (Major) 
Find out program errors and make corrections.Quizzes (Minor)Assignment (Major)
Exam (Minor)
3solve a task by applying effective programming techniquesQuizzes (Major)Assignment (Major)
Exam (Major)
4design and construct well-structured programs with good programming practicesQuizzes (Minor)Assignment (Major)
Exam (Minor)

Grading of Student Achievement: 

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

Related Links
Department of Computer Science