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:
For MPhil/PhD students registered between February 2013 and January 2017, 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:
COMP9102. Data Management and Information Retrieval
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.
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.
This course will discuss and study research topics and current problems of interest in the field of data engineering.
This course will discuss and study research topics and current problems of interest in the field of computer 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.
This course will study advanced topics in modeling, animation and rendering as well as discuss current research problems in the field of computer graphics.
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.
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.
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.
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.
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.
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.
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.