a) For MPhil/PhD students registered between February 2013 and January 2017, the coursework requirements are as follows:
b) For MPhil/PhD students registered from February 2017 onwards, the coursework requirements are as follows:
Below is the list of the Graduate Courses to be offered to MPhil/PhD students in the Department of Computer Science:
Course DescriptionsCOMP9102. Data Management and Information Retrieval 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. 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. 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.
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. COMP8505. Advanced Topics in Language Models This advanced course in language models provides a comprehensive exploration of the latest techniques and approaches in natural language processing (NLP) and large language models (LLMs). Students will delve into cutting-edge neural architectures, state-of-the-art training and inference algorithms, and the practical applications of these models. The curriculum includes hands-on experience with leading pre-trained models such as BERT, GPT-4, T5, PaLM, and LLaMA, alongside an analysis of recent research and innovations in the field. Ethical considerations, bias mitigation, and the integration of multimodal models like CLIP and DALL-E are also key components. By critically evaluating different language modeling approaches and developing independent research projects, students will gain the skills necessary to contribute to advanced NLP and LLM research and applications. 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. COMP8606. Quantum Computing: Algorithms and Implementation Quantum computing is a radical new approach to computer science, with applications in a variety of areas. In this course, we will see how to build a quantum computer, and how to run faster computations with a quantum computer. The course consists of four major parts: basics of quantum computing, quantum algorithms, realization of quantum computing, and near-term applications of quantum computing. We start by a gentle introduction to the core of quantum computing and then introduce representative quantum algorithms including the quantum algorithms for factorization, for searching, and for solving linear systems. Next, we will proceed with the state-of-the-art realizations of quantum computing, discussing how to cope with noises. At last, we will introduce algorithms that can be executed on a near-term quantum computer, with applications in finance, chemistry, and machine learning. Tutorials will also be offered on how to program a quantum computer and to design quantum algorithms. 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. |
November 15, 2023