CS3391 Advanced Programming

Course Duration: One Semester

Credit Units: 3

Level: B3

Medium of Instruction: English

Prerequisites:
CS2331 Problem Solving & Programming

Precursors: Nil

Equivalent Courses: Nil

Exclusive Courses: Nil

Course Aims:
For many algorithmic problems found in practical systems, the best solutions are usually the elegant combinations of both efficient algorithms and advanced programming techniques. They are the results of some exciting blend of programming, mathematics and problem solving. The course introduces an interesting variety of subjects in programming, algorithms, and discrete mathematics through puzzles and practical problems. The focus of this course is to help students develop advanced algorithmic and programming skills that are required to solve sophisticated problems in the real world. Due to the practicality of the problems which appear in many collegiate programming contests, we expect that the best students from this course will also be competent to solve competition-style programming problems and may be able to represent City University of Hong Kong at ACM Collegiate Programming contests.

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.CILOsWeighting (if applicable)
1.Analyze programming problems, devise algorithms and propose programming techniques for solving the problems; 40%
2.Write computer programs based on the algorithms devised and programming techniques chosen for solving problems; 40%
3.Work under time pressure; 5%
4.Collaborate with team-mates; 15%

Teaching and learning Activities (TLAs):
(designed to facilitate students’ achievement of the CILOs)

Teaching pattern
Suggested lecture/laboratory mix: 3 hrs. workshop


Based on the Course ILOs, the teaching/learning activities of this course include traditional lectures and laboratory sessions. Problem sets will be given during the laboratory sessions and programming quizzes will be arranged. The purpose is to help students comprehend materials covered in lectures and also achieve all the Course ILOs mentioned.
  
ILO NoTLAsHours/week
(if applicable)
CILO 1 & 3 Algorithms and related examples are introduced and studied in lectures. Students can then apply the algorithms and sample codes to solve programming problems during the laboratory sessions. In the laboratory sessions, sets of problems are given to students. The students can learn how to analyze the problems and devise strategies with optimal use of resources and time to solve the problems.3
CILO 2Based on the algorithms and programming techniques proposed by students or given by instructors, students spend the laboratory sessions to instantiate the algorithms by writing corresponding computer programs. Take-home assignments also help students improve their proficiency on various programming techniques. 2
CILO 3Through in-class quizzes during the laboratory sessions, students will compete with each other and try to finish as many problems as possible within a limited period of time. 2
CILO 4In regular laboratory sessions, students tackle programming problems in teams. Various team formations will be arranged so that students can work with different individuals, so to learn from each other. 2

Assessment Tasks/Activities:
(designed to assess how well the students achieve the CILOs)
 
ILO NoType of assessment tasks/activitiesWeighting
(if applicable)
Remarks
CILO 1·    For some problems given in laboratory sessions, students are required to present their proposed solutions to the problems assigned. The correctness and completeness of the proposed solutions which include algorithms and pseudo-codes can be evaluated.
·    Some take-home assignments require students to describe the algorithms and programming techniques that are used for solving the problems.
·   
Some final examination problems also require students to describe the algorithms and their approaches that are used for solving the problems.
  
CILO 2·    Laboratory sessions, take-home assignments and final examination are all very effective methods for evaluating this CILO.  
CILO 3·    The quizzes conducted in laboratory sessions and the final examination can effectively evaluate the performance of students when working under pressure.  
CILO 4·    Quizzes conducted in laboratory sessions require students to form teams with different students rather than a fixed combination pattern. The performance of individual students when working with others can be evaluated by instructors during the quizzes.  

Grading of Student Achievement:
Refer to Grading of Courses in the Academic Regulations (Attachment) and to the Explanatory Notes.

Examination duration: 2 hours
Percentage of coursework, examination, etc.: 60% CW; 40% 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.

Coursework includes take-home assignments and problem sets tackled in the laboratory sessions.

Examination is to be conducted in an environment similar to the Programming Quizzes, but students are required to work out the problems individually rather than in teams.

Related Links
Department of Computer Science