Artificial Intelligence

The field of Artificial Intelligence (AI) aims to build intelligent machines that can mimic human cognitive functions, such as seeing, learning, and problem-solving. Advances in the field of machine learning over the last ten years have made AI one of the most exciting and fast-moving fields in computer science. While there are still many unsolved questions, many AI techniques are now mature enough to be deployed and used in our daily lives, such as in voice-based assistants, self-driving cars, automatic photo organization.


Students interested in AI should first take CS3243 Introduction to Artificial Intelligence. This course gives students a broad overview of core AI topics, covering fundamental concepts and techniques such as intelligent agents; searching; constraint satisfaction; logic and inference; probabilistic reasoning; and learning. CS3244 Machine Learning supplements the knowledge with a focus on the algorithms to learn patterns and inferences from sample data. After taking CS3243, students can delve deep into two sub-topics of AI: CS4244 Knowledge Representation and Reasoning and CS4246 AI Planning and Decision Making.

Students can also learn how machines can understand human language via CS4248 Natural Language Processing and can perceive the world via CS4243 Computer Vision and Pattern Recognition.


Students can further strengthen their knowledge in AI by choosing from a wide range of electives. CS4269 Fundamentals of Logic in Computer Science and CS5215 Constraint Processing elaborates on core principles and practice of logic, inference, and constraint satisfaction. CS4277 3D Computer Vision extends CS4243 to cover machine perception in 3D, with applications to areas such as self-driving cars and robots. CS4278 Intelligent Robots: Algorithms and Systems explore horizontal integration and adaptation of various AI techniques for building intelligent robots. CS4261 Algorithmic Mechanism Design teaches algorithms where multiple agents can make optimal and fair decisions.

Students who are keen to understand the theoretical foundations behind machine learning can take CS5339 Theory and Algorithms for Machine Learning; while those who wish to learn about the state-of-the-art neural networks can take CS5242 Neural Networks and Deep Learning I and CS5260 Neural Networks and Deep Learning II. CS5340 Uncertainty Modeling in AI covers how a machine can model and reasons under uncertainty. CS4220 Knowledge Discovery Methods in Bioinformatics and CS5228 Knowledge Discovery and Data Mining covers methods to identify previously unknown patterns from a large dataset.