PhD Course Descriptions

CS701 : Deep Learning and Vision


FACULTY TEACHING

Deep Learning and Vision is focused on deep convolutional neural network (DCNN) based algorithms that automatically learn visual patterns and train recognition models from visual data (images and videos). Example applications are image classification, object detection, image generation and semantic segmentation.

This course covers both the basic concepts and the practical implementations of deep learning models for computer vision tasks. First, we will cover the fundamentals in pre-processing images, such as normalization and augmentation, as well as in constructing DCNN, such as pooling, batch normalization and activation functions. Second, we will focus on the training and visualization methods of DCNN based on the most typical visual task, i.e., image classification. Last, we will cover a variety of deep learning models specifically designed for advanced visual tasks such as object detection, semantic segmentation, and image generation.

CS702 : Computational Interaction


Computational capabilities enable new ways to design and develop novel interaction technologies. At the same time, it allows us to evaluate and better understand users' behaviors.

In this course, we will:

  • Review topics on user-centered design and programming interactive systems that are necessary for completing assignments
  • Learn how to apply machine learning and optimization techniques like Gaussian process and integer programming for designing user interfaces and information visualizations
  • Use modern and emerging sensing technologies like speech recognition and gesture recognition to design novel input methods
  • Learn to model people's behaviors using statistical techniques like Bayesian methods

CS703 : Optimization and Computing


This course will introduce students to fundamentals of convex optimisation (such as the notions of convexity, convex sets and functions, linear and quadratic programs, optimality conditions, duality theory etc), and enable students to recognise and solve convex optimisation problems that arise in a variety of computing applications (particularly in the context of AI, machine learning and operations research). Mathematical optimization has become the backbone of several successful AI/ML applications (e.g., linear programming for solving Markov decision problems, quadratic programming for support vector machines, algorithms such as gradient descent for deep learning among several others). The course will endeavour to provide solid foundations in optimization basics that will enable students to understand a variety of such practical applications of mathematical optimization.

CS704 : Information Security


This course studies the key facets of information security, from theory to applications in a networked environment. Topics to be covered include symmetric key cryptosystems, number-theoretical foundations, public key cryptosystems, authentication, key exchange, access control, Internet security architecture, and emerging security standards.

CS705 : Algorithms and Optimization


FACULTY TEACHING

This course provides basic theory and foundations for algorithms and optimization.

It covers the following topics:

  • Computational Complexity and Algorithm Analysis
  • Data Structures: Heaps, Trees, Graphs and Networks
  • Algorithm design paradigms – Divide & Conquer, Greedy, Dynamic Programming
  • Graphs Algorithms and Network Flows
  • Theory of NP-Completeness / Hardness / Approximation
  • Mathematical Programming
  • Combinatorial Optimization, Branch & Bound
  • Local Search and Meta-Heuristics
  • Planning and Scheduling Models and Algorithms

CS706 : Software Mining and Analysis


This course introduces participants to advanced techniques and tools for mining and analyzing software data, which includes but not limited to source code, executable code, code repository records, code specifications, test cases, bug reports, execution profiles, and documentations. Major topics include static program analysis, dynamic program analysis, software repository mining, and specification mining. While not sidestepping mining and analysis theories, the course aims to equip participants with knowledge and skills that can be applied to resolve software issues in their own research and development projects.

CS708 : Mobile and Distributed Systems


This course studies the key challenges, design choices and core technologies for building some of the most widely-used mobile and Internet-scale distributed applications and services. The focus will be on understanding the key performance bottlenecks and challenges (e.g., energy overheads, workload spikes) that these systems face, and on analyzing and critiquing the various techniques to tackle these challenges. The course will also briefly touch on techniques for prototyping and evaluating user interaction with such systems.

CS711: Learning and Planning in Intelligent Systems


This course covers advanced topics in building these intelligent systems that make decisions or provide support to humans in making decisions. Furthermore, the topics explored are at the intersection of Artificial Intelligence, Machine Learning and Operations Research (Management Science). More specifically, we will provide real world applications and the theoretical underpinnings for the following topics:

  • Reasoning with Uncertainty
  • Reasoning with Multiple Agents (MAS)

CS712: Machine Learning


This course covers the fundamental concepts and algorithms for machine learning from several perspectives. In the first half, we will cover a range of supervised learning techniques of both generative and discriminative varieties. In the second half, we will cover unsupervised learning topics (clustering, dimensionality reduction, matrix completion). The intended audience for this course are graduate students, with an objective of providing a foundation to access academic papers on machine learning algorithms and their applications.

CS715: Systems Security


FACULTY TEACHING

This course introduces graduate students to advanced topics in systems security, which includes:

  • Software vulnerability and exploitation
  • User authentication in modern operation systems
  • Denial of service attacks and defenses
  • Intrusion detection
  • Common networking protocol security and Internet routing security

IS713: Foundations for Data Analytics


FACULTY TEACHING

The overall objective of this course is to familiarize the master and PHD students with data analytics and its applicability in a real business environment. Here, data analytics include the extensive use of data, statistical and quantitative analysis, exploratory and predictive models, and fact-based simulation. The class mainly deals with empirical fundamentals for data analytics. Knowing how to effectively use them (method for data analytics) to solve research problems will be very helpful in students’ future professional career.

We will study (1) how to systematically understand what you see and (2) how to make what you believe more persuasive. Data analytic tools will be very useful in many situations you are confronted with.

The class will be built on applied economics, statistics, and applied econometrics.