Departmental Coursework Requirement
for Research Postgraduate Students


In addition to Graduate School courses, MPhil and PhD students are also required to fulfill the following departmental coursework requirements.

For MPhil/PhD students registered from February 2017 onwards, the coursework requirements are as follows:

  1. MPhil students are required to take two Graduate Courses, at least one of which must be a core course. Note 3

  2. four-year PhD students are required to take four Graduate Courses, at least one of which must be a core course. Note 3

  3. Interdisciplinary research students are required to take courses as recommended by their supervisors and approved by the Departmental Research Postgraduate Committee.

For MPhil/PhD students registered between February 2013 and January 2017, the coursework requirements are as follows:

  1. MPhil students are required to take two Graduate Courses, at least one of which must be a core course. Note 3

  2. four-year PhD students are required to take four Graduate Courses, at least two of which must be core courses. Note 3

  3. Interdisciplinary research students are required to take courses as recommended by their supervisors and approved by the Departmental Research Postgraduate Committee.

Below is the list of the Graduate Courses to be offered to MPhil/PhD students in the Department of Computer Science:

Course Code Course Title

Core Courses

COMP9102 Data Management and Information Retrieval
COMP9301 Systems Design and Implementation
COMP9501 Machine Learning
COMP9601 Theory of Computation and Algorithm Design
COMP9602 Convex Optimization

Electives

COMP8101 Advanced Topics in Data Engineering
COMP8301 Advanced Topics in Computer Systems
COMP8302 Advanced Operating Systems
COMP8501 Advanced Topics in Computer Graphics
COMP8503 Advanced Topics in Visual Analytics
COMP8504 Geometric Modeling and Computing
COMP8602 Bioinformatics Algorithms
COMP8603 Probabilistic Method and Randomized Algorithms
COMP8604 Algorithmic Game Theory
COMP8605 From Classical to Quantum Shannon Theory
COMP8802 Foundations on Digital Forensics and Security


Note 1 From September 2013, Graduate Courses will be offered to MPhil/PhD students in the Department of Computer Science. CRC will be renamed as Core Courses, ROC will not be offered and “Electives” will be offered instead. MPhil students who have registered between September 2007 and January 2013 and have not fulfilled the coursework requirements before September 2013 are required to take courses equivalent to the load of at least two Graduate Courses.
Note 2 From September 2013, Graduate courses will be offered to MPhil/PhD students in the Department of Computer Science. CRC will be re-named as Core Courses, ROC will not be offered and “Electives” will be offered instead. PhD students who have registered between September 2007 and January 2013 and have not fulfilled the coursework requirements before September 2013 are required to take courses equivalent to the load of at least four Graduate Courses.
Note 3 Students are permitted to replace at most one Graduate Course with two courses from the MSc(CompSc) Programme or course(s) from the MPhil/PhD curricula offered by other departments, subject to the approval of the Departmental Research Postgraduate Committee.

Course Descriptions

COMP9102. Data Management and Information Retrieval

This course presents principles of data representation, search, and information retrieval. Topics include: data types and representations; search operations; performance and correctness measures for search; similarity between entities; indexing; query evaluation and optimization; basic data mining tasks; search in multi-dimensional data; information retrieval techniques; search in large graphs; distributed and parallel data management.

COMP9301. 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.

COMP9501. Machine Learning

This course introduces (1) the basic concepts of machine learning and core machine learning models and methods, including supervised learning, non-supervised learning, classification, and regression; (2) the machine learning pipeline including data gathering, preprocessing, visualization; selecting machine learning models and tuning hyper-parameters; training, validation, and testing; (3) case studies of machine learning applications including handling large datasets. The course consists of several assignments as well as a final project that lets students apply machine learning to their individual/group research projects.

COMP9601. Theory of Computation and Algorithm 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/COMP3250 Design and Analysis of Algorithms or equivalent

COMP9602. Convex Optimization

This course presents the theory, algorithms and applications of convex optimization. Main topics to be included: convex functions; linear programming; quadratic programming, semidefinite programming, geometric programming; integer programming; duality and Lagrangian relaxation; Newton’s method; Simplex algorithm; interior point method; a brief introduction to game theory.

Prerequisite: Linear algebra

COMP8101. Advanced Topics in Data Engineering

This course will discuss and study research topics and current problems of interest in the field of data engineering.

COMP8301. Advanced Topics in Computer Systems

This course will discuss and study research topics and current problems of interest in the field of computer systems.

COMP8302. Advanced Operating Systems

Driven by the dramatically increasing computational demand and the volume of data, today’s operating systems are undergoing significant changes, including moving from single machine towards thousands of machines, and from single CPU core to many heterogeneous cores. Designing and implementing such operating systems require an intelligent, clean combination of broad techniques, including distributed systems, advanced networking, high performance computing, security, and databases. This course will discuss hot research topics and present new designs on realizing such operating systems. This course will be particularly suitable for RPg students from systems, networking, database, and security groups.

COMP8501. Advanced Topics in Computer Graphics

This course will study advanced topics in modeling, animation and rendering as well as discuss current research problems in the field of computer graphics.

COMP8503. Advanced Topics in Visual Analytics

This course presents the theory, algorithms and applications of visual analysis and information visualization. Main topics to be included: basic charts and graphs; hierarchical structure visualization; graph drawing; network visualization; focus+context; database visualization; clustering; multidimensional scaling; manifold learning; anomaly detection.

COMP8504. Geometric Modelling and Computing

This course is designed to provide the students with systematic training to understand the state-of-the-art methods in geometric modelling and computing. It covers basic theories, such as affine geometry, differential geometry, algebraic geometry, as well as applications to shape modelling and process, including shape modelling, geometric processing, and mesh generation. The students will have opportunities to present and discuss recent advances in shape modelling and geometric computing. The students are encouraged to work on course projects that apply the concepts and techniques they learn in the course to solve problems in their own fields of research.

COMP8602. Bioinformatics Algorithms

This course presents important computational problems arising from the biology and genomics context, important algorithmic techniques and indexing data structures such as dynamic programming, graph/tree algorithms, hidden markov models, suffix tree/array, and Burrow-Wheeler transform (BWT), that are useful for solving these computational biological problems, data engineering techniques such as memory-efficient implementation of data structures and algorithms that are critical for memory and/or computational-intensive applications. Selected problems include, but not limited to: various assembling problems; biological sequence alignment; multiple sequence alignment; RNA secondary structural alignment/prediction; structural variation detection; and phylogenetic tree/network reconstruction.

COMP8603. Probabilistic Method and Randomized Algorithms

This course is designed for students who have a basic knowledge in algorithms and would like to study more advanced topics in the subject. NP-complete problems are believed to be not solvable in polynomial time and we study how approximation algorithms could give near optimal solutions. In particular, we will see that probability theory gives us a very powerful tool to tackle problems that are otherwise hard to solve. The surprising phenomenon that independent random sources can give rise to almost certain events is known as measure concentration, and this principle forms the basis of the analysis of many randomized algorithms. This course is taught in the style of a mathematics class and we put emphasis on understanding how the various techniques work. However, we explain the subject from the computer scientist’s viewpoint - our approach is rigorous, but not pedantic.

COMP8604. Algorithmic Game Theory

This course covers various topics at the interface of theoretical computer science and economics. Our main focus will be on algorithmic tools in mechanism design, price of anarchy in games, and algorithms and complexity theory for learning and computing Nash and market equilibria.

COMP8605. From Classical to Quantum Shannon Theory

The aim of this course is to introduce students to quantum information theory and to provide an overview of the main applications. The course will start with an overview of classical Shannon theory and will show how to extend the classical notions to the quantum model. Previous knowledge of physics is not required, while familiarity with probability theory and linear algebra are important for a smooth understanding of the main topics. The course complements the Computer Science curriculum with interdisciplinary topics at the interface between information theory and physics. Attending can be profitable also for students in other areas of Engineering, as well as from Physics and Mathematics.

COMP8802. Foundations on Digital Forensics and Security

This course presents the foundations of information security and digital forensics. Topics include: cryptography, system security, software security, steganography and watermarking, network security including Web security, authentication systems and access control, computer forensics models, different digital forensics techniques including real-time forensics, file system forensics, network forensics and mobile forensics.

Pre-requisites:
(1) CSIS0327/COMP3327 Computer and Network Security or equivalent
(2) CSIS0230/COMP3230 Principles of Operating Systems or equivalent