Spring 2022 CS Course Listings

This file contains the Spring 2022 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: Software Engineering and Programming Languages (SEPL)

Course description:
The goal of this course is to introduce how various analysis techniques can be used to manage software code quality. 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 testing and analysis techniques. The course requires prior 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:
Programming Assignments: 40%
Reading Assignment: Report, Presentation & Participation: 20%
Examination: 40%

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: Software Engineering and Programming Languages (SEPL)

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: Artificial Intelligence (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, learning theory), deep learning algorithms (feedforward neural networks, convolutional neural networks, adversarial attacks, Explainable AI, recurrent neural networks, Transformer and BERT), unsupervised learning algorithms (variational autoencoders, generative adversarial networks), 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):
* Introduction to Machine Learning
* 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
* Deployment Issues (This part will not be included in the final exam)
    * Adversarial Attacks
    * Explainable AI

Textbooks:

Reference books/materials:
o Andrew Ng. Lecture Notes on Machine Learning. Stanford. https://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

COMP5212 is a postgraduate level course. Most of the students enrolled in the course have taken a course on Machine Learning during their undergraduate studies already. It is hence designed as a second course on Machine Learning. Here is a comment on the course by a student from last year: “The course is very up-to-date and I have learned a lot from the course as a ML major PHD student. However, some classmates may found it difficult to follow without related background.” Perspective students are advised to consider this factor when deciding whether to take the course.


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: Artificial Intelligence (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: COMP5421
Course title: Computer Vision
Instructor: Prof Dan Xu
Room: 3505
Telephone: 2358 8837
Email:
WWW Page:

Area in which course can be counted: Vision and Graphics (VG)

Course description:
This course provides a comprehensive introduction to computer vision. Major topics include image processing, feature detection and matching, image classification and neural network, convolutional neural network, image transformation and homographies, geometry-based computer 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 A 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 Processing
3 Feature Detection and Matching
4 Image Classification and Neural Network
5 Convolutional Neural Network
6 Image Transformations and Homographies
7 Camera Model and Geometry-based Computer Vision
8 Deal with Motion
9 High-level Topics in Computer Vision

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:
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: COMP5631
Course title: Cryptography and Security
Instructor: Prof. Cunsheng Ding
Room: 2533
Telephone: 2358-7021
Email:
WWW Page: https://cse.hkust.edu.hk/faculty/cding/

Area in which course can be counted: Software Engineering and Programming Languages (SEPL)

Course description:
This course gives an in depth coverage of the theory and applications of cryptography, and system security. In the part about cryptography, basic tools for building security systems are introduced. The system security part includes electronic mail security, IP security, Web security, VPNs, and firewalls.

Course objective:
After completion of this course, students will display a breadth of knowledge of both the principles and practice of cryptography and systems security, and master basic tools for building security systems.

Course outline/content (by major topics):
History of cryptography, classical ciphers, design and analysis of block ciphers and stream ciphers, public-key cryptography, hash functions, digital signature, group signature, proxy signature, user and data authentication, data integrity, nonrepudiation, Key management, public key infrastructure, cryptographic protocols, email security, web security, network security, VPNs, distributed systems security.
Textbooks:
No textbook, but lecture slides will be posted online.

Reference books/materials:
• W. Stallings, Cryptography Theory and Network Security, Fourth/Fifth Edition, Pearson Education.

Grading scheme:
Assignments, course project, midterm and final examination.

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: A-


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: Theoretical Computer Science (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: Theoretical Computer Science (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: COMP6211H
Course title: Deep Learning in Medical Image Analysis
Instructor: Prof. Hao CHEN
Room: 3517
Telephone: 2358-8346
Email:
WWW Page:

Area in which course can be counted: Artificial Intelligence (AI) or Vision and Graphics (VG)

Course description:
Nowadays medical image analysis is rapidly growing and plays an indispensable role in healthcare. Recent advances of deep learning techniques have made significant breakthroughs in medical image analysis applications. This course will cover fundamental knowledge of medical imaging and various medical image analysis tasks, including computer-aided detection, segmentation, diagnosis and prognosis. Deep learning methods for solving these tasks will be introduced and state-of-the-art methods will be discussed. The remaining significant challenges and limitations will also be presented, including limited amount of labeled data, deep learning with interpretation and generalization issues, etc. This course will equip students with practical knowledge of medical imaging and analysis with deep learning techniques.

Background: Instructor's approval is required for undergraduate students to register the course for credits. Basic knowledge about image processing and machine learning are beneficial.

Course objective:
The objectives of the course are to help the students: * Obtain the basic knowledge of medical imaging techniques and various medical image analysis tasks.
* Learn the fundamentals in deep learning methods for medical imaging and analysis.
* Master and apply the skills of deep learning technologies in medical image analysis tasks, including computer-aided detection, diagnosis and prognosis, etc.
* Gain the current research and development trends in both academia and industry in the domain of medical imaging and analysis.


Course outline/content (by major topics):
1. Introduction to Medical Image Analysis; 2. Fundamentals of Deep Learning; 3. Medical Image Classification; 4. Medical Image Segmentation; 5. Medical Image Registration; 6. Label-efficient Learning in MIA; 7. Anomaly Detection in MIA; 8. Attention Mechanism in MIA; 9. Interpretability in MIA; 10. Domain Adaptation in MIA; 11. Federated Learning with Privacy-preserving; 12. Advances and Applications

Reference books/materials:
JToennies, Klaus D. Guide to medical image analysis. Springer London, 2017.
Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep learning. MIT press, 2016.
Dhawan, Atam P. Medical image analysis. Vol. 31. John Wiley & Sons, 2011.
Zhou, S. Kevin, Hayit Greenspan, and Dinggang Shen, eds. Deep learning for medical image analysis. Academic Press, 2017.
Grading scheme:
Paper review and In-class discussion 25%; In-class presentation 25%; Final project 50%.

Available for final year UG students to enroll: Yes

Minimum CGA required for UG students: B


Course code: COMP6613E
Course title: Theory of Types and Programming Languages
Instructor: Dr. Lionel Parreaux
Room: 3562
Telephone: 2358 8341
Email:
WWW Page: https://lptk.github.io/ttapl/

Area in which course can be counted: Software Engineering and Programming Languages (SEPL)

Course description:
This course studies types and programming languages from a type-theoretic perspective. Starting from lambda calculus, which is the foundation of functional programming languages, we will see how to design gradually more advanced type systems following the motto of "Well-typed programs do not go wrong", meaning that types should guard us, at compilation time, from wide classes of runtime errors. Taking this principle to the extreme, we will see how dependent type systems let us prove nontrivial properties of our programs, and how they relate to mathematical logic in a fundamental way. The knowledge acquired in this course has many practical applications in software engineering and computer science. It will sharpen the student's understanding of static types in modern programming languages, as well as their ability to construct correct and reliable programs.

Exclusion(s): N/A

Background: COMP 2711

Course objective::
- Evaluate existing features and design new features of statically-typed programming languages
- Understand the foundations and usage of functional and object-oriented programming languages
- Mathematically prove the soundness of simple type systems
- Implement type system and operational semantics specifications

Course outline/content (by major topics):
- untyped lambda-calculus
- simple types
- normalization, references, exceptions
- subtyping
- recursive and structural types
- polymorphism
- type inference, elaboration
- dependent types and logic foundations

Reference books/materials:
Main reference:
Pierce, B. C. (2002). Types and programming languages. MIT press.

Other references:
Pierce, B. C. (2005). Advanced topics in types and programming languages. MIT press.
Pierce, B. C., Casinghino, C., Gaboardi, M., Greenberg, M., Hriţcu, C., Sjöberg, V., & Yorgey, B. (2010). Software foundations.

Grading scheme:
Projects: 30%
Midterm exam: 30%
Final exam: 40%


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


Archive of past courses

Last modified on 2023-02-15.