Spring 2021 CS Course Listings

This file contains the Spring 2021 course listings for the Department of Computer Science and Engineering.

Archive of past courses


Course code: COMP5111
Course title: Fundamentals of Software Analysis
Instructor: Prof. Shing-Chi Cheung
Room: 2534
Telephone: 2358-7016
Email:
WWW Page:

Area in which course can be counted: ST

Course description:
The goal of this course is to introduce how various analysis techniques can be used to manage the quality of a software application. Students will acquire fundamental knowledge of fault analysis, test coverage, program instrumentation, test generation, fault localization, mutation analysis, program repair, pointer analysis, program abstraction, mining software repositories and vulnerability analysis. The course will also discuss how to carry out the empirical experimentation. Wherever applicable, concepts will be complemented by tools developed in academia and industry. This enables students to understand the maturity and limitations of various analysis and testing techniques. The course requires programming knowledge in Java.

Course objective:
Students will attain the following on completion of the course:
* knowledge of the software quality assurance;
* understanding of principles of software analysis and testing;
* ability to deploy software quality measures to real life projects;
* hands-on experience in applying software analysis and testing tools.

Course outline/content (by major topics):
Program Analysis, Testing, Fault Analysis, Tool Automation, Concurrency, Empirical Experimentation

Textbooks:

Reference books/materials:
* Conferences: Proceedings of ICSE, FSE, PLDI, OOPSLA, ISSTA and ASE.
* Journals: ACM TOSEM & IEEE TSE.
* Software Engineering, Ivan Marsic, Rutgers University, 2012.(Download here)
* Introduction to Software Testing, Paul Ammann and Jeff Offutt, Cambridge University Press, 2008.
* Software Testing and Analysis: Process, Principles and Techniques, Mauro Pezze and Michal Young, John Wiley and Sons, 2007.
* How Google Tests Software, James A. Whittaker, Jason Arbon, Jeff Carollo, Addison-Wesley, 2012.
* Head First Java, Kathy Sierra and Bert Bates, O'Reilly Media, Inc.

Grading scheme:
Participation in Lectures: 5%
Participation in Class Presentation: 5%
Assignments: 40%
Reading Report, Presentation & Participation: 15%
Examination: 35%

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: Permission of the instructor.


Course code: COMP5112
Course title: Parallel Programming
Instructor: Dr. Qiong Luo
Room: 3511
Telephone: 2358-6995
Email:
WWW Page:

Area in which course can be counted: ST

Course description:
Introduction to parallel computer architectures; principles of parallel algorithm design; shared-memory programming models; message passing programming models used for cluster computing; data-parallel programming models for GPUs; case studies of parallel algorithms, systems, and applications; hands-on experience with writing parallel programs for tasks of interest.

Exclusion(s): COMP 6111B, COMP 6511A, COMP 6611A

Background: COMP 3511 AND COMP 3711/COMP 3711H

Course objective:
Students will attain the following on completion of the course:
* knowledge of parallel computer architectures;
* understanding of principles of parallel algorithm design;
* knowledge of shared-memory and distributed-memory programming models;
* hands-on experience writing parallel programs of a task of interest.

Course outline/content (by major topics):
Introduction to parallel computer architectures;
principles of parallel algorithm design;
shared-memory programming models;
message passing programming models used for cluster computing;
data-parallel programming models for GPUs;
case studies of parallel algorithms, systems, and applications.

Reference books/materials:
* Introduction to Parallel Computing, Second Edition. Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta. Addison-Wesley, 2003, ISBN: 0201648652.
* Programming Massively Parallel Processors: A Hands-on Approach. Second Edition. David B. Kirk and Wen-mei W. Hwu. Elsevier 2012. ISBN: 978-0124159921.

Grading scheme:
project 50%, final exam 50%


Course code: COMP5212
Course title: Machine Learning
Instructor: Dr. Nevin Zhang
Room: 2541
Telephone: 2358-7015
Email:
WWW Page: https://cse.hkust.edu.hk/faculty/lzhang/

Area in which course can be counted: AI

Course description:
This course covers core and recent machine learning algorithms. Topics include supervised learning algorithms (linear regression, logistic regression, generative models for classification, support vector machines, learning theory), deep learning algorithms (feedforward neural networks, convolutional neural networks, adversarial attacks, recurrent neural networks, Transformer and BERT), unsupervised learning algorithms (mixture models, variational autoencoders, generative adversarial networks, mixture models), and reinforcement learning (classic RL, deep RL).

Background:
Computer science: object-oriented programming and data structures, design and analysis of algorithms Mathematics: multivariable calculus, linear algebra and matrix analysis, probability and statistics

Course objective:
Upon successful completion of the proposed course, students will be able to:
* Gain an overview of Machine Learning as a subject of study;
* Gain an understanding of the fundamental issues and principles in machine learning;
* Gain an understanding of core and recent machine learning algorithms;
* Gain an ability to apply core and recent machine learning algorithms to solve real-world problems.

Course outline/content (by major topics):
* Basics of Probability/Information Theory
* Supervised Learning
    * Polynomial Regression and Basic ML Issues
    * Logistic Regression and Basic Optimization
    * Generative Models and Naive Bayes
    * The Bias-Variance Decomposition
* Deep Learning
    * Deep Feedforward Networks
    * Convolutional Neural Networks
    * Adversarial Attacks
    * Explainable AI
    * Recurrent Neural Networks
    * Transformer and BERT
* Unsupervised Learning
    * Variational autoencoders
    * Generative adversarial networks
* Reinforcement Learning
    * Introduction to RL
    * Value-Based Deep RL
    * Policy-Based Deep RL

Textbooks:

Reference books/materials:
o Andrew Ng. Lecture Notes on Machine Learning. Stanford. http://cs229.stanford.edu/syllabus.html
o I Goodfellow, Y Bengio, A Courville (2016). Deep Learning. MIT Press. https://www.deeplearningbook.org/
o K. P. Murphy (2012). Machine Learning: A Probabilistic Perspective. MIT Press. (Available online via university library)
o E. Alpaydin (2014). Introduction to Machine Learning. Third Edition. MIT Press. (Available online via university library)
o C. M. Bishop (2006). Pattern Recognition and Machine Learning. Springer. (Available online via university library)
o R. Sutton and A. Barto (1998). Reinforcement Learning. MIT Press.

Workload and Grading:
o 4 Written Assignments: (4x4%)
o 4 Hands-on Assignments (4x4%)
o Term Project: (28%)
o Final examination: (40%)

Available for final year UG students to enroll: No

Minimum CGA required for UG students: N/A


Course code: COMP5214
Course title: Advanced Deep Learning Architectures
Instructor: Dr. Qifeng Chen
Room: 3508
Telephone: 2358-8838
Email:
WWW Page:

Area in which course can be counted: AI

Course description:
This course focuses on advanced deep learning architectures and their applications in various areas. Specifically, the topics include various deep neural network architectures with applications in computer vision, signal processing, graph analysis, and natural language processing. Different state-of-the-art neural network models will be introduced, including graph neural networks, normalizing flows, point cloud models, sparse convolutions, and neural architecture search. The students have the opportunities to implement deep learning models for some AI-related tasks such as visual perception, image processing and generation, graph processing, speech enhancement, sentiment classification, and novel view synthesis.

Course objective:
This course aims to achieve the following objectives:
* the students can have a broad knowledge of up-to-date advanced deep learning models in different areas;
* the students can utilize the deep learning architectures and techniques to solve the given programming assignments;
* the students can understand what problems can be addressed by deep learning models and solve a practical problem with deep learning through a course project;
* and the students can work in a team on a course project and present the work together.

Course outline/content (by major topics):
* Overview of deep learning: Basic architectures (CNN, RNN), Backpropagation, Loss functions
* Neural networks for image and video recognition tasks
* Neural networks for image and video processing tasks
* Deep 3D learning for point clouds, meshes, and volumetric data
* Deep 3D learning for stereo and multi-view data
* Graph neural networks for graph processing and analysis
* Sequential modeling and signal processing
* Deep generative models: Normalizing flow, GAN, Pix2pix, and CycleGAN
* Efficient neural networks
* Neural architecture search

Textbooks:

Reference books/materials:
o Zhang, A., Lipton, Z.C., Li, M. and Smola, A.J., 2019. Dive into deep learning. https://d2l.ai.
o Goodfellow, I., Bengio, Y., Courville, A. and Bengio, Y., 2016. Deep learning (Vol. 1, No. 2). Cambridge: MIT press.

Workload and Grading:
o Presentation: 5%
o Homework: 30%
o Final project: 35%
o Midterm: 30%

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: Permission of the instructor


Course code: COMP5311
Course title: Database Architecture and Implementation
Instructor: Prof. Dimitris Papadias
Room: 3555
Telephone: 2358-6971
Email:
WWW Page: https://cse.hkust.edu.hk/~dimitris/5311/5311.html

Area in which course can be counted: DB

Course description:
The course is divided in two parts: (i) background material taught by the instructor, (ii) specialized topics presented by students. In addition to their presentation, students have to submit a survey on the topic by the end of the semester.
Exclusion(s): COMP 3311

Course objective:
Introductory database class for graduate student that includes the relational model and SQL, disk and memory management, access methods, implementation of relational operators, query processing and optimization, transaction management and recovery. Moreover, students are expected to acquire presentation and writing skills.

Course outline/content (by major topics):
* E/R Model
* Relational Model and Algebra
* SQL
* Functional Dependencies and Relational Database Design
* File Systems
* Tree and Hash Indexes
* Query Processing and Implementation of Relational Operators
* Query Optimization
* Transactions

Textbooks:
Database System Concepts, A. Silberschatz, H. Korth, and S. Sudarshan.

Reference books/materials:
* Database Management Systems, Raghu Ramakrishnan and Johannes Gehrke.

Grading scheme: 50% final exam, 20% presentation, 20% survey, 10% class participation

Available for final year UG students to enroll: NO (UG students are encouraged to take COMP 3311)


Course code: COMP5421
Course title: Computer Vision
Instructor: Prof Dan Xu
Room: 3505
Telephone: 2358 8837
Email:
WWW Page:

Area in which course can be counted: VG

Course description:
This course provides a comprehensive introduction to computer vision. Major topics include image processing, detection and recognition, geometry-based and physics-based vision and video analysis. Students will learn basic concepts of computer vision as well as hands on experience to solve real-life vision problems.

Background:
Instructor's approval is required for undergrad students to register the course for credit. We require that enrolled undergrad students should have GPA 3.7 (and grad students as well) or above because the course is programming intensive and require good mathematics skills.
Data structures and algorithms (COMP 3711)
Linear algebra (MATH 2111)
Matrix algebra and applications (MATH 2121)
A good working knowledge of Python programming

Course objective:
Same as listed in the course catalogue/academic calendar.

Course outline/content (by major topics):
1 Introduction
2 Image filtering
3 Image pyramids and (some) Fourier transform
4 Hough transform
5 Corner detection
6 Feature descriptors and matching
7 2D transformations
8 Image homographies
9 Camera models
10 Two-view geometry
11 Stereo
12 Structure from motion
13 Radiometry and reflectance
14 Radiometry continued
15 Photometric stereo and shape from shading
16 Image processing pipeline
17 Introduction to recognition
18 Bag of words
19 Neural networks
20 Convolutional neural network
21 Optical flow
22 Alignment and tracking
23 Correlation filters
24 Temporal models and SLAM
25 Graph-based methods

Textbooks:
Computer Vision: Algorithms and Applications, by Richard Szeliski.

Reference books/materials:
• Multiple View Geometry in Computer Vision, by Richard Hartley and Andrew Zisserman.
• Computer Vision: A Modern Approach, by David Forsyth and Jean Ponce.
• Digital Image Processing, by Rafael Gonzalez and Richard Woods.

Grading scheme:
The breakdown is subject to change as a whole and adjustments on a per-student basis in exceptional cases. This is the general breakdown we'll be using:
Five programming assignments: 70%
Final Exam: 30%
Programming assignments are individual. Though you may discuss the problems with others, your answers must be your own.
There is no midterm. The final is comprehensive and is a closed-book-closed-notes exam.

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: A- and permission of the instructor


Course code: COMP5712
Course title: Introduction to Combinatorial Optimization
Instructor: Sunil Arya
Room: 3514
Telephone: 2358-8769
Email:
WWW Page: https://cse.hkust.edu.hk/~arya/

Area in which course can be counted: TH

Course description:
* An introduction to the basic tools of Combinatorial Optimization.
* Includes: Linear Programming, Matching, Network Flow, Approximation Algorithms.

Background: COMP3711 or equivalent + Linear Algebra

Course objective:
Upon completion of this course students will have been introduced to many of the most basic tools of combinatorial optimization and will be able to apply them towards designing efficient algorithms in their own research domains.

Course outline/content (by major topics):

Textbooks:

Reference books/materials:
Jiri Matousek and Bernd Gartner. Understanding and using linear programming, Springer, 2006.
Vijay Vazirani. Approximation algorithms, Springer, 2001.
David P. Williamson and David B. Shmoys. The design of approximation algorithms, Cambridge University Press, 2011
Jon Kleinberg and Eva Tardos. Algorithm design, Pearson/Addison-Wesley, 2006.

Grading scheme:
Homeworks, midterm and final examination.

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: Instructor Permission required.


Course code: COMP5713
Course title: Computational Geometry
Instructor: Prof Siu Wing Cheng
Room: 3551
Telephone: 2358-6973
Email:
WWW Page:

Area in which course can be counted: TH

Course description:
An introductory course in Computational Geometry. Algorithms for manipulating geometric objects. Topics include Convex Hulls, Voronoi Diagrams, Point Location, Triangulations, Randomized Algorithms, Point-Line Duality.

Background: COMP3711

Course objective:
To introduce postgraduate students to the area of computational geometry, the fundamental results and algorithms in the area.

Course outline/content (by major topics):
Basic problems and algorithms in the plane, convex hulls, arrangement and duality, Voronoi and Delaunay diagrams, randomized algorithms, approximation algorithms.

Grading scheme:
100% written assignment.

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: B


Course code: COMP6211G
Course title: Federated Learning
Instructor: Qiang Yang, Kai Chen, Yangqiu Song
Room: TBA
Telephone: 852-23587028
Email: , ,
WWW Page: https://ising.cse.ust.hk/fl

Area in which course can be counted: AI

Course description:
The goal of this course is to introduce the concept, technologies, systems and applications related to an emerging machine learning field, federated learning (FL). Students will acquire fundamental knowledge of data privacy and security, privacy-preserving machine learning and distributed AI. The course will discuss new research and application trends in federated learning and cover new challenges and open problems in this field. In particular, some of the lectures will be designed to provide real-world implementations and use cases of FL and to encourage students to explore limitations and maturity of FL technologies. Besides the basic FL theories, students are required to read and present latest FL papers and conduct projects in the FL direction.

Background needed:
Machine learning, Basic computer systems, Basic programming skills

Course objective:
Students will attain the following on completion of the course:
* knowledge of the basic concepts, architecture and applications of FL;
* understanding of new research and application trends in FL;
* ability to deploy real-world FL projects;
* hands-on experience in applying FL tools to solve privacy-preserving AI challenges.

Course outline/content (by major topics):
Distributed machine learning, Privacy-preserving AI computing, Horizontal/vertical federated learning, Federated learning systems design and implementation, Federated learning applications

Textbooks:
Q. Yang, Y. Liu, Y. Cheng, Y. Kang, H. Yu & T. Chen, Federated Learning, Morgan & Claypool Publishers 2019.
杨强, 刘洋, 程勇等,《联邦学习》,电子工业出版社 2020.

Reference books/materials:
open sourced-projects:
   FATE open-sourced project: https://fate.fedai.org
   Google TFF: https://www.tensorflow.org/federated
   FedML: https://github.com/FedML-AI/FedML

survey papers:
1. Q. Yang, Y. Liu, T. Chen & Y. Tong. Federated machine learning: Concept and applications. ACM Transactions on Intelligent Systems and Technology, vol. 10, no. 2, pp. 12:1–12:19 (2019).
2. P.Kairouz et al, Advances and Open Problems in Federated Learning, arXiv:1912.04977

paper lists:
    https://github.com/chaoyanghe/Awesome-Federated-Learning
    https://github.com/FederatedAI/research

Grading scheme:
Class Participation: 5%
Mid-term Exam: 30%
Paper Presentation: 15%
Project proposal, final presentation & report: 50%

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: Permission of the instructor


Course code: COMP6613B
Course title: Topics in Programming Languages: Semantics and Verification
Instructor: Amir Goharshady
Room:
Telephone:
Email:
WWW Page:

Area in which course can be counted: Software Engineering and Programming Languages / Theoretical Computer Science

Course description:
The first part of this course provides an introduction to the three main approaches for defining semantics of programming languages (operational, denotational, and axiomatic). It then illustrates how they can be utilized to prove basic program properties such as termination. The second part of the course looks into games on graphs and introduces game-based verification. It starts with algorithms for model-checking simple properties such as Safety and Buchi and ends with LTL verification from a logic-game-automaton perspective.

Background: An undergraduate course in programming languages, compilers or automata

Course objective:
The main objective of the course is to provide a strong background in formal verification. Detailed objectives are as follows:
• Ability to distinguish between the three major approaches of defining semantics for programming languages
• Ability to design formal semantics for domain-specific languages
• Ability to systematically rely on the semantics to formally prove basic properties of programs such as safety and termination
• Ability to formally reason about non-determinism and infinitely-branching behavior in programs
• Familiarity with the Linear Temporal Logic (LTL) and algorithms for LTL model checking
• Ability to easily code-switch between the automaton-based, game-based, and logical perspectives

Course outline/content (by major topics):
operational semantics, denotational and axiomatic semantics, proofs of correctness, safety and termination, Hoare logic, two-player games on graphs, reachability objectives, safety objectives, Buchi and coBuchi objectives, parity games, automata on infinite words (universal/non-deterministic), Linear Temporal Logic (LTL), LTL model checking

Textbooks: N/A

Reference books/materials:
We will use some chapters of “Handbook of Model Checking” by Clarke et al. The students will also be asked to read several classical research papers, including “Assigning meanings to programs” by Floyd and “An automata-theoretic approach to automatic program verification” by Vardi.

Grading scheme:
Homework assignments: 50%
Final exam: 50%

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: permission of the instructor (will be granted to anyone with a grade of A in “Principles of Programming Languages” or any theory course)



Course code: COMP6613C
Course title: Topics in Computer Security and Privacy
Instructor: Shuai Wang
Room: N/A
Telephone: 2358 8328
Email:
WWW Page: https://course.cse.ust.hk/comp6613c/

Area in which course can be counted: Topics in Applications of Computer Science and Engineering

Course description:
This course is a broad post-graduate-level course that covers fundamental components and cutting-edge topics in computer security and privacy. The course consists of reading, presenting, and discussing published research papers. Students also need to complete an original research project individually or in a small group.

Background needed:
There is no pre-requisite for this course. You don’t need to take any Cybersecurity UG-level course.

Course objective:
1) gain an understanding of the history and scope of cybersecurity research
2) get familiar with the trends in cybersecurity research
3) learn basic methods and skills for presenting and evaluating research articles in this filed.

Course outline/content (by major topics):
Security mindset, blockchain, smart contract, software security, reverse engineering, side channel, homomorphic encryption, machine learning security, web security

Textbooks: N/A

Reference books/materials:
* Conferences: Proceedings of ICSE, FSE, PLDI, OOPSLA, ISSTA and ASE, USENIX Security, CCS, IEEE Security and Privacy, NDSS
* Journals: TDSC, TSE.

Grading scheme:
Paper review 25%
In-class presentation and discussion 25%
Final project 50%

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: Instructor Permission required


Please visit Class Schedule & Quota (Spring 2021) for the timetable and quota.


Archive of past courses

Last modified by Xinchen Wan on 2021-01-13.