CS modules are organised into Focus Areas of coherent modules according to technical areas of study. A CS Focus Area is satisfied by completing 3 modules from the Area Primaries, with at least one module at level-4000 or above. CS Foundation Modules (CFM) that appear in the Area Primaries can be counted as one of the 3 modules towards satisfying a Focus Area. In this case, a student has to read just two other modules in the Area Primaries to satisfy the Focus Area. Elective modules are grouped into the Focus Areas as a guide for indicating their related areas of study.

The following CS focus areas are applicable to new cohorts from AY2015-16 onwards:

  1. Algorithms & Theory
  2. Artificial Intelligence
  3. Computer Graphics and Games
  4. Computer Security
  5. Database Systems
  6. Multimedia Information Retrieval
  7. Networking and Distributed Systems
  8. Parallel Computing
  9. Programming Languages
  10. Software Engineering

The following CS focus areas are applicable to cohorts admitted before AY2015-16:

  1. Algorithms & Theory
  2. Artificial Intelligence
  3. Computer Graphics and Games (new area)
  4. Computer Networks (renamed to Networking and Distributed Systems from AY2015-16)
  5. Computer Security
  6. Database Systems
  7. Information Retrieval (renamed to Multimedia Information Retrieval from AY2015-16)
  8. Interactive Media
  9. Parallel Computing
  10. Programming Languages
  11. Software Engineering
  12. Visual Computing

Algorithms & Theory

The theoretical foundations of computing. Read more ..

Primaries*

  • CS3230 Design and Analysis of Algorithms (CFM)
  • CS3236 Introduction to Information Theory
  • CS4231 Parallel and Distributed Algorithms
  • CS4232 Theory of Computation
  • CS4234 Optimisation Algorithms

*: CS3231 is upgraded to CS4232 and replaces CS4235 Computational Geometry in Algorithms and Theory area.


Electives
^

  • CS3233 Competitive Programming
  • CS5230 Computational Complexity
  • CS5234 Combinatorial and Graph Algorithms
  • CS5236 Advanced Automata Theory
  • CS5237 Computational Geometry and Applications
  • CS5238 Advanced Combinatorial Methods in Bioinformatics
  • CS5330 Randomized Algorithms

^: Students who have taken CS5206 Foundation in Algorithms before AY2011-2012 may count it towards Algorithms & Theory area.


Artificial Intelligence

Artificial Intelligence (AI) is the branch of computer science that aims to create intelligent machines. Read more ..

Primaries

  • CS3243 Introduction to Artificial Intelligence
  • CS3244 Machine Learning
  • CS4244 Knowledge-Based Systems
  • CS4246 AI Planning and Decision Making

Electives

  • CS4216 Constraint Logic Programming
  • CS4220 Knowledge Discovery Methods in Bioinformatics
  • CS4248 Natural Language Processing
  • CS5209 Foundation in Logic & AI
  • CS5215 Constrained Programming
  • CS5228 Knowledge Discovery and Data Mining
  • CS5247 Motion Planning and Applications
  • CS5340 Uncertainty Modelling in AI
  • CS5339 Theory and Algorithms for Machine Learning

 

Computer Graphics and Games

( for new and existing cohorts)

Computer-generated images and videos now permeate our daily life. From the entertainment industry (e.g., movies and video games) to the healthcare industry (e.g., 3D ultrasound imaging); from your computing desktop (e.g., displaying a window) to graphing calculator (e.g., plotting a line), computer graphics algorithms are in action to decide what pixel value to display onto the screen, based on the underlying model of the "world" and the mathematics and science of geometry, light, color, and mechanics. Read more ..

Primaries

  • CS3241 Computer Graphics
  • CS3242 3D Modelling and Animation
  • CS3247 Game Development
  • CS4247 Graphics Rendering Techniques
  • CS4350 Game Development Project

Electives

  • CS3218 Multimodal Processing in Mobile Platforms
  • CS3240 Interaction Design
  • CS3249 User Interface Development
  • CS3343 Digital Media Production
  • CS4243 Computer Vision and Pattern Recognition
  • CS4249 Phenomena and Theories of HCI
  • CS4340 Digital Special Effects
  • CS4344 Network and Mobile Gaming
  • CS4345 General-Purpose Computation on GPU
  • CS5237 Computational Geometry and Applications
  • CS5240 Theoretical Foundation of Multimedia
  • CS5343 Advanced Computer Animation

 

Computer Security

In our Internet age, as more and more personal information goes online and more and more computing devices (computers, smart phone, and even home appliances) are interconnected, our daily computing experience is subjected to the high risk of malicious attacks, as well as information theft. Read more..

Primaries

  • CS2107 Introduction to Information Security^
  • CS3235 Computer Security
  • CS4236 Cryptography Theory and Practice
  • CS4238 Computer Security Practices^

Electives

  • CS3221 Operating Systems Design and Pragmatics
  • CS4239 Software Security
  • CS5231 Systems Security
  • CS5250 Advanced Operating Systems
  • CS5321 Network Security
  • CS5322 Database Security
  • CS5331 Web Security
  • IFS4101 Legal Aspects of Information Security

Unrestricted Electives

  • IS3230 Principles of Information Security
  • IS4231 Information Security Management
  • IS4232 Topics in Information Security

^: Students may use CS2106 Introduction to Operating Systems and CS5231 Systems Security as CFM and primary elective respectively for this focus area if these modules are taken before AY2011-2012.


Database Systems

Database programming, design, management and administration are among the most promising specialties in an uncertain job market in times of challenges for the economy. Read more ..

Primaries

  • CS2102 Database Systems
  • CS3223 Database Systems Implementation
  • CS4221 Database Applications Design and Tuning
  • CS4224 Distributed Databases+

Electives

  • CS4220 Knowledge Discovery Methods in Bioinformatics
  • CS4225 Massive Data Processing Techniques in Data Science
  • CS5226 Database Tuning
  • CS5228 Knowledge Discovery and Data Mining
  • CS5322 Database Security

+ CS4224 Distributed Databases replaces CS5226 Database Tuning as primary module with effective from semester 1, AY2013-14. CS5226 Database Tuning will be listed as elective.


Multimedia Information Retrieval

With the proliferation of text and multimedia information, users are now able to find answers to almost any questions on the Web. Read more ..

Primaries

  • CS2108 Introduction to Media Computing&
  • CS3245 Information Retrieval
  • CS4242 Social Media Computing
  • CS4248 Natural Language Processing

 

Electives

  • CS4347 Sound and Music Computing
  • CS5246 Text Processing on the Web
  • CS5241 Speech Processing
  • CS6242 Digital Libraries

&: CS3246 Multimedia Content Analysis and Search can be considered as primary for students who have taken it before the revision

 

Interactive Media

(applicable to cohorts admitted before AY2015-16 only)

Primaries

  • CS3241 Computer Graphics
  • CS3242 3D Modelling and Animation
  • CS3247 Game Development
  • CS4344 Network and Mobile Gaming
  • CS4350 Game Development Project
  • CS3240 Interaction Design
  • CS3249 User Interface Development
  • CS4249 Phenomena and Theories of HCI
  • CS4347 Sound and Music Computing

Electives

  • CS3218 Multimodal Processing in Mobile Platforms
  • CS3343 Digital Media Production
  • CS4340 Digital Special Effects
  • CS4243 Computer Vision and Pattern Recognition
  • CS4247 Graphics Rendering Techniques
  • CS5241 Speech Processing
  • CS5342 Multimedia Computing and Applications

 

Networking and Distributed Systems

We live in a networked world today. Smart as well as "dumb" devices are interconnected, both by wires and over the air, so that there can be flawless interchange of information and the extension of one's reach. Read more ..

Primaries

  • CS2105 Introduction to Computer Networks (CFM)
  • CS3103 Computer Networks Practice
  • CS4222 Wireless Computing
  • CS4226 Internet Architecture
  • CS4274 Mobile and Multimedia Networking (discontinued from sem 1, AY2015-16)

Electives

  • CS4231 Parallel and Distributed Algorithms
  • CS4344 Networked and Mobile Gaming
  • CS5223 Distributed Systems
  • CS5229 Advanced Computer Networks
  • CS5248 Systems Support for Continuous Media
  • CS5321 Network Security


Parallel Computing

Microprocessors have enjoyed a period of tremendous advance in terms of speed and design. Read more ..

Primaries

  • CS3210 Parallel Computing
  • CS3211 Parallel and Concurrent Programming
  • CS4231 Parallel and Distributed Algorithms
  • CS4223 Multi-core Architecture

Electives

  • CS4237 Systems Modelling and Simulation
  • CS4271 Critical Systems and Their Verification
  • CS4345 General-Purpose Computation on GPU
  • CS5207 Foundation in Operating Systems
  • CS5222 Advanced Computer Architectures
  • CS5223 Distributed Systems
  • CS5239 Computer System Performance Analysis
  • CS5250 Advanced Operating Systems

Note that CS3220 Computer Architecture and CS3221 Operating Systems Design and Pragmatics previously taken by students can be considered as elective in this focus area.

 

Programming Languages

Programming languages are artificial languages designed to make it easy to create "programs" which are the concrete algorithms which the computer executes.

Primaries

  • CS2104 Programming Language Concepts
  • CS3211 Parallel and Concurrent Programming
  • CS4215 Programming Language Implementation
  • CS4212 Compiler Design

Electives

  • CS3234 Logic and Formal Systems
  • CS4216 Constraint Logic Programming
  • CS5205 Foundation in Programming Languages
  • CS5232 Formal Specification & Design Techniques
  • CS5214 Design of Optimising Compilers
  • CS5215 Constrained Programming
  • CS5218 Principles of Program Analysis

 

Software Engineering

While programming languages is about how one instructs the computer, software engineering is about methods of designing programs. Read more ..

Primaries

  • CS2103/T Software Engineering (CFM)
  • CS3213 Software Systems Design
  • CS3219 Software Engineering Principles and Patterns
  • CS4211 Formal Methods for Software Engineering
  • CS4218 Software Testing#

Electives

  • CS3216 Software Development on Evolving Platforms
  • CS3217 Software Engineering on Modern Application Platforms
  • CS3226 Web Programming and Applications (old code: CP3101B)
  • CS3234 Logic and Formal Systems
  • CS3882 Breakthrough Ideas for Digital Markets
  • CS4217 Software Development Technologies#
  • CS4271 Critical Systems and Their Verification
  • CS5219 Automatic Software Validation
  • CS5232 Formal Specification & Design Techniques
  • CS5272 Embedded Software Design

Unrestricted Electives

  • IS2102 Requirements Analysis and Design
  • IS2104 Software Team Dynamics

#: CS4218 replaces CS4217 as the primary module. For students who have already taken CS4217 in AY2012-2013 or before, they can still count CS4217 as a primary module in Software Engineering focus area.

 

Visual Computing

(applicable to cohorts admitted before AY2015-16 only)

Visual Computing encompasses many aspects of images, videos and graphics, including their creation, manipulation, storage, distribution, analysis, and search. Read more..

Primaries

  • CS3241 Computer Graphics
  • CS3242 3D Modeling and Animation
  • CS4243 Computer Vision and Pattern Recognition
  • CS4247 Graphics Rendering Techniques

Electives

  • CS3218 Multimodal Processing in Mobile Platforms
  • CS3343 Digital Media Production
  • CS4340 Digital Special Effects
  • CS4345 General-Purpose Computation on GPU
  • CS5237 Computational Geometry and Applications
  • CS5240 Theoretical Foundation of Multimedia
  • CS6243 Computational Photography

Others

The following module(s), not fitting any focus area above, can be considered as elective(s) to make up CS Breadth and Depth Requirement.

  • CS5233 Simulation and Modeling Techniques