Departmental Coursework Requirement
for Research Postgraduate Students

The course requirements of the department are currently in a stage of transition to a new system. Therefore the requirements are different for students enrolled at different times.

Note: Core Research Courses (CRC) are full paper courses, covering topics fundamental to all fields of computer science. Research Oriented Courses (ROC) are half-paper courses, designed to introduce advanced topics in particular fields. These two types of courses are mainly aimed for M.Phil. and Ph.D. students.

  • For MPhil/PhD students enrolled before September 2005
    3 elective courses from M.Sc.(CS) programme or from other Department's M.Phil/PhD curricula.
  • For MPhil/PhD students enrolled after September 2005 and before September 2007
    3 CS-related courses from the M.Sc.(CS) programme or from other Department's MPhil/PhD curricula. At least 2 of these 3 courses must be ROC in the M.Sc.(CS) syllabus.
  • For MPhil/PhD students enrolled from September 2007 onwards
    1. An MPhil student is required to take
      2 CRC; or 1 CRC plus 2 CS-related courses from M.Sc.(CS) programme or from other Departments' MPhil/PhD curricula. At least 1 of these 2 courses must be from the list of ROC.
    2. A student in the 4-year Ph.D program will be required to take
      3 CRC plus 2 CS-related courses from M.Sc.(CS) programme or from other Departments' MPhil/PhD curricula; or
      2 CRC plus 4 CS-related courses from M.Sc.(CS) programme or from other Departments' MPhil/PhD curricula. At least 2 of these 4 courses must be ROC.

Note: Details of MSc(CS) and ROC courses can be found here.

Core Research Courses (CRC) in the Department of Computer Science

1. CSIS9101. Data Analysis and Machine Learning
2. CSIS9301. Systems Design and Implementation
3. CSIS9601. Theory of Computation and Algorithms Design
4. CSIS9602. Convex Optimization

Syllabuses of Core Research Courses (CRC)

CSIS9101. Data Analysis and Machine Learning

This course presents principles of data analysis, search, and machine learning. Topics include: multivariate data analysis; mathematical tools for analyzing complex data; machine learning, knowledge representation, reasoning; pattern recognition and extraction; dimensionality reduction; data summarization, transformation, and approximation; search; and informa tion retrieval.

CSIS9301. Systems Design and Implementation

This course presents the principles behind the design and building of computer systems, in particular systems needed in the process of tackling a research problem. Some of these principles lead directly to objectives and properties that are desirable in systems of any type, including correctness, scalability, high performance, ease of use, trustworthiness and reliability. Some important implementation techniques that are applicable to a wide range of systems will be discussed. To assess a system against its objectives, rigorous testing and evaluation procedures need to be followed, which are part of the focus of the course.

CSIS9601. Theory of Computation and Algorithms Design

This course presents principles of theoretical computer science focusing on algorithmic design and complexity analysis. Topics include: theoretical models of computation; computational complexity; design and analysis of algorithms and data structures (possible topics: graphs, pattern matching, computational geometry); approximation and online algorithms.
Prerequisite: CSIS0250 Design and analysis of algorithms or equivalent

CSIS9602. Convex Optimization

This course presents the theory, algorithms and applications of convex optimization. Main topics to be included: convex sets and functions; linear programming; quadratic programming, semidefinite programming, geometric programming; vector optimization; integer programming; duality and Lagrangian relaxation; Newton's method; interior point method; ellipsoid method; subgradient algorithm and decomposition method.
Prerequisite: Linear algebra