[ Click here to go : CS FOCUS AREA ]

 

Level 1 Modules

CS1010 Programming Methodology

CS1010E Programming Methodology

CS1010FC/X Programming Methodology  
CS1010J Programming Methodology CS1010S Programming Methodology

CS1101S Programming Methodology

CS1020 Data Structures and Algorithms I

CS1020E Data Structures and Algorithms I

CS1231 Discrete Structures

CS1280 Java to C++ (defunct)

CS1281 C++ to Java (defunct)

 
Level 2 Modules

CS2010 Data Structures and Algorithms II

CS2020 Data Structures and Algorithms Accelerated

CS2030 Programming Methodolgy II

CS2040 Data Structures and Algorithms

CS2040C Data Structures and Algorithms

 

CS2100 Computer Organisation

CS2101 Effective Communication for Computing Professionals (hosted by CELC)

CS2102 Database Systems CS2103 Software Engineering

CS2103T Software Engineering

CS2104 Programming Language Concepts

CS2105 Introduction to Computer Networks

CS2106 Introduction to Operating Systems

CS2107 Introduction to Information Security

CS2108 Introduction to Media Computing

CS2113 Software Engineering & Object- Oriented Programming CS2113T Software Engineering & Object- Oriented Programming

CS2220 Introduction to Computational Biology

CS2309 CS Research Methodology

IFS2200 Information Security Immersion Programme

Level 3 Modules

CS3103 Computer Networks Practice

CS3103L Computer Networks Laboratory

CS3201 Software Engineering Project I CS3202 Software Engineering Project II
CS3205 Information Security Capstone Project (upgrade to IFS4205)  

CS3210 Parallel Computing

CS3211 Parallel and Concurrent Programming

CS3212 Programming Languages

CS3213 Software Systems Design


CS3216 Software Product Engineering for Digital Markets

CS3217 Software Engineering on Modern
Application Platforms

CS3218 Multimodal Processing in Mobile Platforms

CS3219 Software Engineering Principles and Patterns CS3220 Computer Architecture

CS3221 Operating Systems Design and Pragmatics

CS3223 Database Systems Implementation

CS3225 Combinatorial Methods in Bioinformatics

CS3226 Web Programming and Applications

  CS3230 Design and Analysis of Algorithms

CS3231 Theory of Computation (upgrade to CS4232)

CS3233 Competitive Programming

CS3234 Logic and Formal Systems

CS3235 Computer Security

CS3236 Introduction to Information Theory
CS3240 Interaction Design

CS3241 Computer Graphics

CS3242 3D Modeling and Animation

CS3243 Introduction to Artificial Intelligence

CS3244 Machine Learning

CS3245 Information Retrieval

CS3246 Multimedia Content Analysis and Search

CS3247 Game Development  

CS3249 User Interface Development

 

CS3271 Software Engineering for Reactive Systems

CS3281 Thematic Systems Project I

CS3282 Thematic Systems Project II CS3283 Media Technology Project I

CS3284 Media Technology Project II

CS3343 Digital Media Production (defunct)

CS3882 Breakthrough Ideas for Digital Markets (defunct)

 

 
Level 4 Modules

CS4211 Formal Methods for Software Engineering

CS4212 Compiler Design

CS4214 Formal Semantics

CS4215 Programming Language Implementation

CS4216 Constraint Logic Programming

CS4217 Software Development Technologies

CS4218 Software Testing  

CS4220 Knowledge Discovery Methods
in Bioinformatics

CS4221 Database Applications Design and Tuning

CS4222 Wireless Networking

CS4223 Multi-core Architecture

CS4224 Distributed Databases
CS4225 Massive Data Processing Techniques in Data Science
CS4226 Internet Architecture  

CS4231 Parallel and Distributed Algorithms

CS4232 Theory of Computation

  CS4234 Optimisation Algorithms

CS4235 Computational Geometry

CS4236 Cryptography Theory and Practice

CS4237 Systems Modelling and Simulation

CS4238 Computer Security Practice

CS4239 Software Security  

CS4240 Interaction Design for Virtual and Augmented Reality

CS4241 Multimedia Information Retrieval

CS4242 Social Media Computing  

CS4243 Computer Vision and Pattern Recognition

CS4244 Knowledge-Based Systems

CS4245 Multimedia E-Learning Environments (no longer offered)

CS4246 AI Planning and Decision Making

CS4247 Graphics Rendering Techniques

CS4248 Natural Language Processing

CS4249 Phenomena and Theories of
Human-Computer Interaction

CS4257 Algorithmic Foundations of Privacy

 

 CS4271 Critical Systems and Their Verification (defunct)

CS4273 Embedded Software Design Project (defunct)

CS4274 Mobile and Multimedia Networking (defunct)

CS4275 Programming Real-time Systems

CS4340 Digital Special Effects (defunct)

CS4344 Networked and Mobile Gaming

CS4345 General-Purpose Computation on GPU

CS4346 Game Console Programming (defunct)

CS4347 Sound and Music Computing

CS4350 Game Development Project

CS4351 Real-time Graphics

 
 

IFS4102 Digital Forensics

 

IFS4201 Information Security Industry Capstone Project

IFS4202 Information Security Practicum Programme

 

IFS4205 Information Security Capstone Project

 
Wild-Card Undergraduate Modules
CSxxxxR  (e.g. CS3230R)        
 
Level 5 Modules

BT5110 Data Management and Warehousing

 

CS5214 Design of Optimising Compilers

CS5215 Constraint Processing

CS5218 Principles of Programme Analysis

CS5219 Automated Software Validation

CS5220 Databases and the Web (no longer offered)

CS5222 Advanced Computer Architecture

CS5223 Distributed Systems

CS5224 Cloud Computing

CS5225 Parallel & Distributed Database Systems (defunct)

 

CS5226 Database Tuning

CS5228 Knowledge Discovery and Data Mining

CS5229 Advanced Computer Networks

CS5230 Computational Complexity

CS5231 Systems Security

CS5232 Formal Specification & Design Techniques

CS5233 Simulation and Modelling Techniques

CS5234 Combinatorial and Graph Algorithms

CS5235 Approximation Algorithms (defunct)

CS5236 Advanced Automata Theory

CS5237 Computational Geometry and Applications  

CS5239 Computer System Performance Analysis

CS5240 Theoretical Foundation of Multimedia

CS5241 Speech Processing

CS5242 Neural Networks and Deep Learning

CS5243 3D Game Programming Technology (defunct)

CS5244 Digital Libraries (no longer offered, see CS6242)

CS5246 Text Processing on the Web

CS5247 Motion Planning and Applications (defunct, see CS6244)

CS5248 Systems Support for Continuous Media

CS5249 Audio in Multimedia Systems

CS5250 Advanced Operating Systems

 

CS5270 Verification of Real-Time Systems (defunct)

CS5271 Performance Analysis of Embedded Systems

CS5272 Embedded Software Design

CS5321 Network Security

CS5322 Database Security

CS5330 Randomized Algorithms

CS5331 Web Security CS5332 Biometric Authentication
CS5339 Theory and Algorithms for Machine Learning CS5340 Uncertainty Modelling in AI

CS5341 Computational Photography (defunct, see CS6243)

CS5342 Multimedia Computing and Applications

CS5343 Advanced Computer Animation

CS5344 Big-Data Analytics Technology

CS5345 Social and Digital Media Analytics

CS5346 Information Visualisation

 
Level 6 Modules
CS6101 Exploration of Computer Science Research  

CS6201 Software Reuse (no longer offered)

CS6202 Advanced Topics in Programming Languages

CS6203 Advanced Topics in Database Systems

CS6204 Advanced Topics in Networking

CS6205 Advanced Modelling & Simulation

CS6206 Advanced Topics in HCI

CS6207 Advanced Natural Language Processing

CS6208 Advanced Topics in AI

CS6209 Topics in Cryptography (no longer offered)

CS6210 The Art of Computer Science Research

CS6211 Analytical Performance Modelling for Computer Systems CS6212 Topics in Media

CS6213 Topics in Distributed Computing

 

CS6215 Advanced Topics in Program Analysis

CS6220 Advanced Topics in Data Mining

CS6221 Modeling and Analysis Techniques in
Systems Biology
(no longer offered)

CS6222 Special Topics in Computational Biology

CS6230 Topics in Information Security

CS6231 Topics in System Security

CS6234 Advanced Algorithms  

CS6240 Multimedia Analysis

CS6241 Advanced Topics in Computer Graphics

CS6242 Digital Libraries CS6243 Computational Photography
CS6244 Robot Motion Planning & Control  

CS6270 Virtual Machines

CS6280 Datacentre Software Dynamics

CS6281 Topics in Computer Science II

CS6282 Topics in Computer Science III

CS6283 Topics in Computer Science IV

CS6284 Topics in Computer Science IV

 

CS6285 Topics in Computer Science VI

 

CS6880 Advanced Topics in Software Engineering

 

Modules Descriptions

 

BT5110 Data Management and Warehousing

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Students must be in Master of Science in Business Analytics programme.
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide students with practical knowledge and understanding of basic issues and techniques in data management and warehousing with relational database management systems. The module covers data management concepts, conceptual (entity relationship model) and logical design (relational model) and database management (data definition, data manipulation, SQL) with relational database management systems. The module covers data warehousing concepts, data warehousing design and data warehousing with relational database management systems and tools. 

top

CS1010 Programming Methodology

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Nil
Preclusion(s): CG1101, CS1010E, CS1010FC, CS1010J, CS1010S, CS1101, CS1101C, CS1101S, . Engineering and Science students who require this module for their majors/minors are not allowed to read it as ULR-Breadth.
Cross-listing(s): Nil
This module introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing. It is also the first part of a three-part series on introductory programming and problem solving by computing, which also includes CS1020 and CS2010. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This module is appropriate for SoC students.

top

CS1010FC/X Programming Methodology

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Nil
Preclusion(s): CS1010 and its equivalents
Cross-listing(s): Nil
This module introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing and is equivalent to CS1010, CS1010S and CS1010E Programming Methodology. The module will be taught using the Python programming language and topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.

top

CS1010E Programming Methodology

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Nil
Preclusion(s): CS1010 and its equivalents
Cross-listing(s): Nil
This module introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing. It is also the first part of a three-part series on introductory programming and problem solving by computing, which also includes CS1020E and CS2010. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion.This module is appropriate for FoE students.

top

CS1010J Programming Methodology

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Nil
Preclusion(s): CS1010 and its equivalents
Cross-listing(s): Nil
This module introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing. It is also the first part of a three-part series on introductory programming and problem solving by computing, which also includes CS1020E and CS2010. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This module is appropriate for B.Comp.(IS) and B.Comp.(EC) students.

top

CS1010S Programming Methodology

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Nil
Preclusion(s): CS1010 or its equivalent
Cross-listing(s): Nil
This module introduces the fundamental concepts of problem solving by computing and programming using an imperative programming language. It is the first and foremost introductory course to computing and is equivalent to CS1010 and CS1010E Programming Methodology. Topics covered include problem solving by computing, writing pseudo-codes, basic problem formulation and problem solving, program development, coding, testing and debugging, fundamental programming constructs (variables, types, expressions, assignments, functions, control structures, etc.), fundamental data structures: arrays, strings and structures, simple file processing, and basic recursion. This module is appropriate for FoS students.

top

CS1101S Programming Methodology

Modular Credits: 5
Workload: 3-2-1-3-3
Prerequisite(s): No programming or computer science experience is required. GCE ‘A’ Level Mathematics or H2 Mathematics or MA1301/FC/X
Preclusion(s): CS1010, CS1010E, CS1010FC/X, CS1101, CS1101C, Engineering students
Cross-listing(s): Nil
This module introduces the concepts of programming from a functional perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two-part series on introductory programming, which also includes CS1102S. This series is characterised by the use of a minimalist syntax of functional languages that enables an emphasis on fundamental programming issues. Topics covered include: overview of programming languages and compilation process, procedural abstraction, recursion, data abstraction, algorithmic strategies, higher-order functions, state mutation, evaluation strategies, debugging and testing. Module activities include lectures, recitation, tutorial and laboratory exercises.

top

CS1020 Data Structures and Algorithms I

Modular Credits 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1010 or its equivalents
Preclusion(s): CS1020E, CS2020, CS2030, CS2040,CS2040C
Cross-listing(s): Nil
This module is the second part of a three-part series on introductory programming and problem solving by computing. It continues the introduction that begins in CS1010, and emphasises object-oriented programming with application to simple data structures. Topics covered include object-oriented problem modeling with concepts of objects, classes and methods, object-oriented problem formulation and problem solving, data structure implementation strageties, abstraction and encapsulation of data structures, object-oriented programming constructs, use of APIs and class libraries, exception handling, lists, linked lists, stacks, queues, hash tables and their algorithmic design, various forms of sorting and searching methods, recursive algorithms, and Big-O notation.This module is appropriate for SoC and FoS students.

top

CS1020E Data Structures and Algorithms I

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1010 or its equivalents
Preclusion(s): CS1020, CS2020, CS2030, CS2040, CS2040C
Cross-listing(s): Nil
This module is the second part of a three-part series on introductory programming and problem solving by computing. It continues the introduction that begins in CS1010E, and emphasises object-oriented programming with application to simple data structures. Topics covered include object-oriented problem modeling with concepts of objects, classes and methods, object-oriented problem formulation and problem solving, data structure implementation strategies, abstraction and encapsulation of data structures, object-oriented programming constructs, use of APIs and class libraries, exception handling, lists, linked lists, stacks, queues, hash tables and their algorithmic design, various forms of sorting and searching methods, recursive algorithms, and Big-O notation.This module is appropriate for FoE students.

top

CS1102 Data Structures and Algorithms (defunct)

Modular Credits: 5
Workload: 3-1-1-3-4
Prerequisite(s): CS1101
Preclusion(s): CS1102C, CS1102S. EEE & CPE students are not allowed to take this module.
Cross-listing(s): Nil
This module is the second part of a two-part series on introductory programming from an object-oriented perspective. It continues the introduction to object-oriented programming begun in CS1101, with an emphasis on data structures and algorithms. Topics covered include: abstraction and encapsulation for data structures, basic data structures such as lists, stacks, queues, and their algorithmic designs, various forms of sorting methods, trees, binary search tree, hash tables, order property, heap and priority queues, graphs representation and basic graph search algorithms (breadth-first search, depth-first search), and basic algorithmic analysis.

top

CS1102C Data Structures and Algorithms (defunct)

Modular Credits: 5
Workload: 3-1-1-3-4
Prerequisite(s): CS1101C
Preclusion(s): CS1102, CS1102S
Cross-listing(s): Nil
This module is the second part of a two-part series on introductory programming from an imperative paradigm perspective. It continues the introduction to programming begun in CS1101C, with an emphasis on data structures and algorithms. Topics covered include: abstraction and encapsulation for data structures, basic data structures such as lists, stacks, queues, and their algorithmic designs, various forms of sorting methods, trees, binary search tree, hash tables, order property, heap and priority queues, graphs representation and basic graph search algorithms (breadth-first search, depth-first search), and basic algorithmic analysis.

top

CS1231 Discrete Structures

Modular Credits: 4
Workload: 3-1-0-3-3
Prerequisite(s): GCE ‘A’ Level Mathematics or H2 Mathematics or MA1301 or MA1301FC or MA1301X
Preclusion(s): MA1100
Cross-listing(s): Nil
This module introduces mathematical tools required in the study of computer science. Topics include:
(i) Logic and proof techniques: propositions, conditionals, quantifications.
(ii) Relations and Functions: Equivalence relations and partitions. Partially ordered sets. Well-Ordering Principle. Function equality. Boolean/identity/inverse functions. Bijection.
(iii) Mathematical formulation of data models (linear model, trees and graphs).
(iv) Counting and Combinatoric: Pigeonhole Principle. Inclusion-Exclusion Principle. Number of relations on a set, number of injections from one finite set to another, Diagonalisation proof: An infinite countable set has an uncountable power set; Algorithmic proof: An infinite set has a countably infinite subset. Subsets of countable sets are countable.

top

CS1280 Java to C++

Modular Credits: 2
Workload: 2-0-1-0-3
Prerequisite(s): CS1020 or CS2020
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to train students who have learned data structures and algorithms in Java to programme in C++. Basic constructs common in the two languages will not be covered (e.g. if-else, loops etc). Topics covered include: Objects and classes in C++, fundamental data structures: arrays, strings, vectors, I/O, exception handling, sub-classing, inheritance, template function, template class, use of STL, and defining operator. Assessment of students in this module will be on either Satisfactory/Unsatisfactory (S/U) or Com-pleted Satisfactory/Completed Unsatisfactory (CS/CU) basis depending on students’ matriculation year. Students matriculated in AY2007/08 and after will be assessed on CS/CU basis. The duration of the course is six weeks, opening at beginning of semesters.

top

CS1281 C++ to Java

Modular Credits: 2
Workload: 2-0-1-0-3
Prerequisite(s): CS1020E
Preclusion(s): Nil
Cross-listing(s): Nil
The module aims to train students who have learned data structures and algorithms in C++ to programme in Java. Basic constructs common in the two languages will not be covered (e.g. if-else, loops etc). Topics covered include: Objects and classes in Java, fundamental data structures: arrays, strings, I/O, exception handling, use of APIs and class libraries, sub-classing, inheritance, abstract and interface class, new design concept using generic Java approach. Assessment of students in this module will be on either Satisfactory/Unsatisfactory (S/U) or Com-pleted Satisfactory/Completed Unsatisfactory (CS/CU) basis depending on students’ matriculation year. Students matriculated in AY2007/08 and after will be assessed on CS/CU basis. The duration of the course is six weeks, opening at beginning of semesters.

top

CS2010 Data Structures and Algorithms II

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1020 or CS1020E or CG1103
Preclusion(s): CS2020, CS2030, CS2040, CS2040C
Cross-listing(s): Nil
This module is the third part of a three-part series on introductory programming and problem solving by computing. It continues the introduction in CS1010 and CS1020, and emphasises object-oriented programming with application to complex data structures. Topics covered include trees, binary search trees, order property, prefix/infix/postfix expressions, heaps, priority queues, graphs and their algorithmic design, recursive algorithms, problem formulation and problem solving with applications of complex data structures, data structure design principles and implementation strategies, and algorithm analysis. Advanced data structures such as B-trees and AVL trees are also covered.

top

CS2020 Data Structures and Algorithms Accelerated

Modular Credits: 6
Workload: 4-2-2-4-3
Prerequisite(s): Obtain a grade of at least A− in either CS1010 or its equivalent
Preclusion(s): CS1020, CS1020E, CS2010, CS2030, CS2040, CS2040C
Cross-listing(s): Nil
This module is an accelerated version that combines CS1020 and CS2010. It continues the introduction in CS1010, and emphasises object-oriented programming with application to data structures. Topics covered include object-oriented problem modeling with concepts of objects, classes and methods, object-oriented problem formulation and problem solving, data structure design principles and implementation strageties, abstraction and encapsulation of data structures, object-oriented programming constructs, use of APIs and class libraries, exception handling, lists, linked lists, stacks, queues, hash tables, trees, graphs, and their algorithmic design, various forms of sorting and searching methods, recursive algorithms, and algorithm analysis.top

top

CS2030 Programming Methodology II

Modular Credits: 4
Workload: 2-0-2-3-3
Prerequisite(s): CS1010 or its equivalent
Preclusion(s): CS1020 or its equivalent
Cross-listing(s): Nil
This module is a follow up to CS1010. It explores two modern programming paradigms, object-oriented programming and functional programming. Through a series of integrated assignments, students will learn to develop medium-scale software programs in the order of thousands of lines of code and tens of classes using object-oriented design principles and advanced programming constructs available in the two paradigms. Topics include objects and classes, composition, association, inheritance, interface, polymorphism, abstract classes, dynamic binding, lambda expression, effect-free programming, first class functions, closures, continuations, monad, etc.

top

CS2040 Data Structures and Algorithms 

Modular Credits: 4
Workload: 3-0-1-3-3
Prerequisite(s): CS1010 or its equivalent
Preclusion(s): CS1020, CS1020E, CS2020, CS2010
Cross-listing(s): Nil
This module introduces students to the design and implementation of fundamental data structures and algorithms.  The module covers basic data structures (linked lists, stacks,queues, hash tables, binary heaps,trees, and graphs), searching and sorting algorithms, and basic analysis of algorithms. 

top

CS2040C Data Structures and Algorithms

Modular Credits: 4
Workload: 3-0-1-3-3
Prerequisite(s): CS1010 or its equivalent
Preclusion(s): CS1020, CS1020E, CS2020, CS2010, CS2040
Cross-listing(s): Nil
This module introduces students to the design and implementation of fundamental data structures and algorithms. The module covers basic data structures (linked lists, stacks, queues, hash tables, binary heaps, trees, and graphs), searching and sorting algorithms, basic analysis of algorithms, and basic object-oriented programming concepts. 

top

CS2100 Computer Organisation

Modular Credits: 4
Workload: 3-1-1-3-2
Prerequisite(s): CS1010 or its equivalent
Preclusion(s): CS1104 and students from the Department of ECE.
Cross-listing(s): Nil
The objective of this module is to familiarise students with the fundamentals of computing devices. Through this module students will understand the basics of data representation, and how the various parts of a computer work, separately and with each other. This allows students to understand the issues in computing devices, and how these issues affect the implementation of solutions. Topics covered include data representation systems, combinational and sequential circuit design techniques, assembly language, processor execution cycles, pipelining, memory hierarchy and input/output systems.

top 

CS2101 Effective Communication for Computing Professionals (hosted by CELC)

Modular Credits: 4
Workload: 0-4-0-4-2
Prerequisite(s): Students have to complete ES1000 and/or ES1102 (if required to take the module/s) before reading this module.
Co-requisite(s): Students have to read CS2103T Software Engineering at the same time as this module.
Preclusion(s): CG1413, EG1413, IS2101, ES2002, ES2007S and ES2007D
Cross-listing(s): Nil
This module aims to equip students with the skills needed to communicate technical information to technical and non-technical audiences, and to create comprehensible software documentation. A student-centric approach will be adopted to encourage independent and collaborative learning while engaging students in team-based projects. Students will learn interpersonal and intercultural communication skills as well as hone their oral and written communication skills. Assessment modes include a variety of oral and written communication tasks such as reports, software guides, oral presentations, software demonstrations and project blogs.

top

CS2102 Database Systems

Modular Credits: 4
Workload: 2-1.5-0.5-3-3
Prerequisite(s):(CS1020 or CS1020E or CS2020 or CS2030 or CS2040 or CS2040C) and (CS1231 or MA1100)
Preclusion(s): CS2102S, IT2002
Cross-listing(s): Nil
The aim of this module is to introduce the fundamental concepts and techniques necessary for the understanding and practice of design and implementation of database applications and of the management of data with relational database management systems. The module covers practical and theoretical aspects of design with entity-relationship model, theory of functional dependencies and normalisation by decomposition in second, third and Boyce-Codd normal forms. The module covers practical and theoretical aspects of programming with SQL data definition and manipulation sublanguages, relational tuple calculus, relational domain calculus and relational algebra.

top

CS2103 Software Engineering

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): (CS1020 or CS1020E or CS2020) or ((CS2030 and (CS2040 or CS2040C))
Preclusion(s): CS2103T, CS2113, CS2113T. 
Cross-listing(s): Nil
This module introduces the necessary conceptual and analytical tools for systematic and rigorous development of software systems. It covers four main areas of software development, namely object-oriented system analysis, object-oriented system modelling and design, implementation, and testing, with emphasis on system modelling and design and implementation of software modules that work cooperatively to fulfill the requirements of the system. Tools and techniques for software development, such as Unified Modelling Language (UML), program specification, and testing methods, will be taught. Major software engineering issues such as modularisation criteria, program correctness, and software quality will also be covered.

top

CS2103T Software Engineering

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): For SoC students only. (CS1020 or CS1020E or CS2020) or (CS2030 and (CS2040 or CS2040C))
Co-requisite(s): Students have to read CS2101 Effective Communication for Computing Professionals at the same time as this module.
Preclusion(s): CS2103, CS2113, CS2113T, IS2101 or its equivalent.
Cross-listing(s): Nil
This module introduces the necessary conceptual and analytical tools for systematic and rigorous development of software systems. It covers four main areas of software development, namely object-oriented system analysis, object-oriented system modelling and design, implementation, and testing, with emphasis on system modelling, design and implementation of software modules that work cooperatively to fulfill the system’s requirements. Tools for software development, such as Unified Modelling Language, program specification, and testing methods will be taught. Software engineering issues such as modularisation criteria, program correctness, and software quality will be covered. This module must be taken together with CS2101 Effective Communication for Technologists. 

top

CS2104 Programming Language Concepts

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1020 or CS1020E or CS2020 or CS2030 or CS2113/T
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces the concepts that serve as a basis for hundreds of programming languages. It aims to provide the students with a basic understanding and appreciation of the various essential programming-languages constructs, programming paradigms, evaluation criteria and language implementation issues. The module covers concepts from imperative, object-oriented, functional, logic, constraints, and concurrent programming. These concepts are illustrated by examples from varieties of languages such as Pascal, C, Java, Smalltalk, Scheme, Haskell, Prolog. The module also introduces various implementation issues, such as pseudo-code interpretation, static and dynamic semantics, abstract machine, type inferencing, etc.

top

CS2105 Introduction to Computer Networks

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1020 or CS1020E or CS2020 or CS2030 or CS2040 or CS2040C
Preclusion(s): IT2001, EE3204/E, EE4210. EEE, CEG & CPE students are not allowed to take this module.
Cross-listing(s): Nil
This course aims to provide a broad introduction to computer networks and some appreciations of network application programming. It covers a range of topics including basic data communication and computer network concepts, protocols, network computing concepts and principles, network applications development and network security. The emphasis of teaching is on the working principles and application of computer networks. As an integral part of the course, tutorials and practical assignments enforcing learning will also be given. These assignments provide an early exposure in network application programming and they should be able to complete by using personal computers and school’s network facilities.

top

CS2106 Introduction to Operating Systems

Modular Credits: 4
Workload: 2-1-1-0-4
Prerequisite(s): CS2100 or EE2007 or EE2024
Preclusion(s): CG2271 or EE4214. CEG students are not allowed to take this module.
Cross-listing(s): Nil
This module introduces the basic concepts in operating systems and links it with contemporary operating systems (eg. Unix/Linux and Windows). It focuses on OS structuring and architecture, processes, memory management, concurrency and file systems. Topics include kernel architecture, system calls, interrupts, models of processes, process abstraction and services, scheduling, review of physical memory and memory management hardware, kernel memory management, virtual memory and paging, caches, working set, deadlock, mutual exclusion, synchronisation mechanisms, data and metadata in file systems, directories and structure, file system abstraction and operations. Examples will be discussed from contemporary operating systems such as Unix/Linux and/or Windows.

top

CS2108 Introduction to Media Computing

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1020 or CS1020E or CS2020 or ((CS2030 or CS2113/T) and (CS2040 or CS2040C))
Preclusion(s): CS3246
Cross-listing(s): Nil
This module introduces students to (i) the fundamental principles, theory, algorithms, and data structures behind digital representation, compression, synchronization, and processing of image, audio, and video data types, and (ii) challenges and issues in developing media-rich applications, such as media streaming and media retrieval. Students will be exposed to the workings of common media file format and common manipulation techniques on media data. After taking the module, students should be confident enough in developing media applications and make appropriate trade-off and design decisions when dealing in media data in their software.

top

CS2107 Introduction to Information Security

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1010 or its equivalent)
Preclusion(s): Nil
Cross-listing(s): Nil
This module serves as an introductory module on information and computer system security. It illustrates the fundamentals of how systems fail due to malicious activities and how they can be protected. The module also places emphasis on the practices of secure programming and implementation. Topics covered include classical/historical ciphers, introduction to modern ciphers and cryptosystems, ethical, legal and organisational aspects, classic examples of direct attacks on computer systems such as input validation vulnerability, examples of other forms of attack such as social engineering/phishing attacks, and the practice of secure programming.

top

CS2113 Software Engineering & Object-Oriented Programming

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2040C or (CS2030 and CS2040)
Co-requisite(s):  Nil
Preclusion(s): Students exempted from CS2101 will take CS2113 which does not have CS2101 as co-req. Otherwise, CS2113 and CS2113T are identical.
Cross-listing(s): Nil
This module introduces the necessary skills for systematic and rigorous development of software systems. It covers  requirements, design, implementation, quality assurance, and project management aspects of small-to-medium size multi-person software projects. The module uses the Object Oriented Programming paradigm. Students of this module will receive hands-on practice of tools commonly used in the industry, such as test automation tools, build automation tools, and code revisioning tools will be covered.

top

CS2113T Software Engineering & Object-Oriented Programming

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2040C or (CS2030 and CS2040)
Co-requisite(s):  CS2101 is co-requisite for CS2113T.
Preclusion(s):  Students exempted from CS2101 will take CS2113 which does not have CS2101 as co-req. Otherwise, CS2113 and CS2113T are identical.
Cross-listing(s): Nil
This module introduces the necessary skills for systematic and rigorous development of software systems. It covers  requirements, design, implementation, quality assurance, and project management aspects of small-to-medium size multi-person software projects. The module uses the Object Oriented Programming paradigm. Students of this module will receive hands-on practice of tools commonly used in the industry, such as test automation tools, build automation tools, and code revisioning tools will be covered.

top

CS2220 Introduction to Computational Biology

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1020 or CS1020E or CS2020 or CS2040 or CS2040C 
Preclusion(s): Nil
Cross-listing(s): Nil
There are three aims in this course. First, the course provides, from programmers’ viewpoint, an overview of common computational techniques used in the field of bioinformatics, including similarity operations, clustering and classification techniques, and techniques in gene recognition. Second, the basic theory behind these techniques will be covered. Last, but not least, the course demonstrates the role of bioinformaticians as a bridge between the field of computer science and biology, and prepares students for advanced computer-science topics relevant to bioinformatics.

top

CS2271 Embedded Systems (defunct)

Modular Credits: 4
Workload: 2-1-2-3-3
Prerequisite(s): (CS1020 or CS1020E or CS1102 or CS1102C or CS1102S) and (CS1104 or CS2100) (for students admitted on or before AY2002/03) or EE2006 (for students admitted after AY2002/03), and students must have programming knowledge in C or have passed CS2281 Programming in UNIX
Preclusion(s): Nil
Cross-listing(s): Nil
The explosive growth of transistor density has moved the centre of gravity of computing from personal computers to numerous embedded computers hidden away inside our everyday electronic products. Designing embedded computing systems is unique in the sense that the traditional borderline between hardware and software vanishes here. This module aims to provide a broad overview of the techniques and challenges involved in designing embedded systems. Topics include: FPGAs, high-level programming of FPGAs, DSP, and embedded microprocessor, embedded software development, real-time operating systems, and hardware/software codesign.

top

CS2281 Programming in UNIX

Modular Credits: 4
Workload: 2-0-1-4-3
Prerequisite(s): CS1020 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to train students to be proficient in dealing with UNIX systems. Topics include: C programming: Variables, types, operators, expressions, control flow, functions, function arguments, recursion, pointers, address arithmetic, arrays, structures, standard input/output. Unix system interface: file/directory manipulation, system data files, Unix processes, process control, signals, inter-process communication (pipe, FIFO), terminal I/O. Unix tools: shell programming (Bourne shell), programming tools (Xemacs, gcc, make, ddd debugger), regular expressions and text utilities (grep, awk, sed).

top

CS2309 CS Research Methodology

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS2010 or CS2020 or ((CS2030 or CS2113/T) and (CS2040C or CS2040)) and (CS1231 or MA1100)
Preclusion(s): CS2305S
Cross-listing(s): Nil
In this module, students will learn thinking and problem-solving skills, read and present research papers, write research reports, and do a substantial project within the computing area. Topics include logical and deductive reasoning, doing proofs, inductive reasoning and statistical analysis, fallacies and psychological traps, survey skills, abstraction and modelling, problem-solving heuristics, creative thinking, decision making and reading of research papers from various computing sub-areas. In addition, students will also do an in-depth study of a computing area through independent study and project work.

top

CS3103 Computer Networks Practice

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS2105 or EE3204/E
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide an opportunity for the students to learn commonly-used network protocols in greater technical depth with their implementation details than a basic networking course. Students will perform hands-on expriments in configuring and interconnecting LANs using networking devices/technologies (e.g., routers, switches, SDN switches, and hubs), networking protocols (e.g., DHCP, DNS, RIP, OSPF, ICMP, TCP, UDP, wireless LAN, VLAN protocols, SIP, SSL, IPSec-VPN) and networking tools (e.g, tcpdump, netstat, ping, traceroute). Students will learn higher-layer network protocols and develop network applications (client/server, P2P) via socket programming.

top

CS3103L Computer Networks Laboratory (defunct)

Modular Credits: 2
Workload: 0-0-2-0-3
Prerequisite(s): Co-read CS3103
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of the module is to augment the concepts learnt in the area of networking through hands on experiments, and thus maximising the educational experience of students. It provides an opportunity for students to interconnect LANs in the laboratory using switches, routers, terminal servers etc., and conduct various experiments relating to TCP/IP protocol stack. Students perform hands-on experiments in subnetting, dial-up service, DHCP, DNS, Multicast, RIP, OSPF, router based firewall, TCP handshaking and congestion mechanism.

top

CS3201 Software Engineering Project I

Modular Credits: 4
Workload: 1-1-0-5-3
Prerequisite(s): (CS2103 or its equivalent) and (CS2101 or IS2101)
Co-requisite(s): CS3202
Preclusion(s): CS3215
Cross-listing(s): UIS3955R
This module is the first part of a two-part series on the practice of software engineering in Software Development Life Cycle (SDLC). These two modules together provide the students with hands-on experience in working in project groups through a complete SDLC to develop a well-designed, well-tested, large-scaled software system. This first part focuses on applying best software engineering practices on the analysis and design of software system. The students will practice analysis of user’s needs, formulation of computing requirements to meet the user’s needs, modeling and design of the computer systems according to the requirements, and evaluation of the design.

top

CS3202 Software Engineering Project II

Modular Credits: 4
Workload: 1-1-0-5-3
Prerequisite(s): CS2103 or its equivalent
Co-requisite(s): CS3201
Preclusion(s): CS3215
Cross-listing(s): UIS3956R
This module is the second part of a two-part series on the practice of software engineering in Software Development Life Cycle (SDLC). These two modules together provide the students with hands-on experience in working in project groups through a complete SDLC to develop a well-tested, large-scaled software system. This second part focuses on applying best software engineering practices on the implementation and testing of the software system. The students will practice efficient implementation of software components, system integration, software version control, and rigorous testing.

top

CS3205 Information Security Capstone Project

Modular Credits: 8
Workload: 0-0-0-20-0
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides students an active learning opportunity to work independently in a group on significant information security-related projects. Project activities can include analyzing the security requirements, designing and implementing security systems, and attacking and defending a system. Students get to apply what they learn in the classroom and gain hands-on experience on solving significant information security problems.

top

CS3210 Parallel Computing

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2100 or CG2007 or EE2024
Preclusion(s): Nil
Cross-listing(s): Nil
The aim of this module is to provide an introduction to the field of parallel computing with hands-on parallel programming experience on real parallel machines. The module is divided into four parts: parallel computation models and parallelism, parallel architectures, parallel algorithm design and programming, and new parallel computing models. Topics includes: theory of parallelism and models; shared-memory architectures; distributed-memory architectures; data parallel rchitectures; interconnection networks, topologies and basic of communication operations; principles of parallel algorithm design; performance and scalability of parallel programs, overview of new parallel computing models such as grid, cloud, GPGPU.

top

CS3211 Parallel and Concurrent Programming

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2106 or CG2271
Preclusion(s): Nil
Cross-listing(s): Nil
A concurrent system consists of a set of processes that executes simultaneously and that may collaborate by communicating and synchronising with one another. Examples of concurrent systems are parallel programmes that describe sets of collaborating processes. This module introduces the design, development and debugging of parallel programmes. It will build on the concurrency concepts gained from the Operating Systems module. It covers concepts and modelling tools for specifying and reasoning (about the properties of) concurrent systems and parallel programmes. It also covers principles of performance analysis, asynchronous and asynchronous parallel programming, and engineering concurrent systems and parallel programmes.

top

CS3212 Programming Languages

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2010 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides the students with theoretical knowledge and practical skill in design and implementation of programming languages. It discusses the theory behind the fundamental programming paradigms (imperative, functional, logic, and object-oriented) and behind basic programming language concepts such as binding, scope, parameter-passing mechanisms and types. It introduces the language processing techniques of interpretation and compilation. A discussion of virtual machines highlights that programme execution almost always uses both, often in a multi-level hierarchical architecture. The course covers automatic memory management as a feature of programming systems and its implementation.

top

CS3213 Software Systems Design (defunct)

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisites: CS2103
Preclusion(s): Nil
Cross-listing(s): Nil
Software design is a life cycle activity in which software requirements are analyzed to produce a description of the software’s internal structure that serves as the basis for its construction. Software design consists of two activities that fit between software requirements analysis and software construction: software architectural design and software detailed design. Typical outcomes are the software architecture and the interfaces between components, specified in a design document. This module covers both levels of design and aims to equip students with the knowledge and skills for generating design documents and evaluating design alternatives in an iterative software development process.

top

CS3215 Software Engineering Project (defunct)

Modular Credits: 8
Workload: 1-1-0-10-8
Prerequisites: CS2103 and CS2301
Preclusion(s): Nil
Cross-listing(s): UIS3955R
The module requires students to work through, in groups, a complete Systems Development Life Cycle to develop a well-tested, production-quality large-scale software system. Students will apply best software engineering practices taught in CS2103 and CS3215. They will also sharpen their communication skills through close team interactions, consultations, and formal presentations. The module emphasises engineered design, efficient implementation and rigorous testing of software, as well as effective communications among students. Students will be assessed based on their understanding and ability to apply and communicate what they have learned in CS2103 and CS3215 on a real-life application system.

top

CS3216 Software Product Engineering for Digital Markets

Modular Credits: 5
Workload: 2-1-0-8-2
Prerequisites: CS2103/CS2103T or with special approval from instructor. Students will submit personal statements to apply for a place in the course instead of bidding through the CORS system.
Preclusion(s): Nil
Cross-listing(s): Nil
In this module, students will practice software product engineering by working in small teams to develop well-tested, user-friendly, production-quality software for the real world. To support this goal, students work closely with users to understand their problems, gather their requirements, and obtain their feedback through a rapid, iterative, application design and development process. Students will also be exposed to practical issues for digital markets such as growing the user base of their application, deployment of the application on the Web or in the cloud system, and validating the UI design and UX of the application.

top

CS3217 Software Engineering on Modern Application Platforms

Modular Credits: 5
Workload: 1-1-0-9-2
Prerequisites: CS2103 or with special approval from instructor. Students will submit personal statements to apply for a place in the course instead of bidding through the CORS system.
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces students to the practice of software engineering on modern application platforms such as mobile devices, the Web and cloud systems. Students will work in small project teams to develop well-tested, production-quality software. This module focuses on building core software engineering skills and competencies in programming modern application platforms. It also trains students to work well in project teams. Students will be assessed on both their individual programming competencies and their software engineering skills in final team project.

top

CS3218 Multimodal Processing in Mobile Platforms

Modular Credits: 4
Workload: 2-1-1-2-4
Prerequisites: (MA1102R or MA1505 or MA1521) and (MA1101R or MA1506) and (CS2108 or EE3206)
Preclusion(s): Nil
Cross-listing(s): Nil
Modern mobile platforms such as smart phones and tablets are equipped with an increasing number of sensing modalities. In addition to traditional components such as keyboards and touch screens, they are also equipped with cameras, microphones, inertial sensor, and GPS receivers. With these modalities all packed into a single platform, it is important to empower application developers with basic knowledge and practical skills in dealing with these modalities. This module introduces the students to basic theories, concept and practical skills needed in input, processing and output of multimodal data on mobile platforms.

top

CS3219 Software Engineering Principles and Patterns

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisites: CS2103/T
Preclusion(s): CS3213
Cross-listing(s): Nil
This module provides an in-depth, hands-on experience in key aspects of software engineering that accompany the development of software. Based on proven principles and best practices, this module focuses on software architectural design from the perspective of the software process. It covers techniques for requirement elicitation and specification that provide sound base for architectural design. The module covers design decision exploration as well as patterns that explicate principles and best practices in replicable form.

top

CS3220 Computer Architecture

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2106
Preclusion(s): EEE & CPE students are not allowed to take this module.
Cross-listing(s): Nil
The objective of this module is concerned with design techniques involving the use of parallelism to improve the performance of computer systems. The module is divided into three parts. Part I considers the fundamental methods to improve the performance of single processor systems. Topics include the design principle of instruction set, memory hierarchy, pipeline design techniques, RISC and vector computer. In Part II, multi-processor systems using shared memory are examined in detail, and Part III, multi-processor systems that do not use shared memory are examined.

top

CS3221 Operating Systems Design and Pragmatics

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS1020 or its equivalent) and CS2106
Preclusion(s): Nil
Cross-listing(s): Nil
This module builds upon the conceptual foundation formed in CS2106 and extends it to the study of real-life operating systems. The focus is to understand how actual operating systems work including the pragmatics, system architecture and design and implementation. Details will be drawn from contemporary operating systems such as Unix/Linux and Windows. Topics include kernel architecture and interfaces, computer architecture issues, process APIs and implementation, threads, scheduling, physical and kernel memory management, virtual memory, synchronisation and interprocess communication mechanisms, multi-processor issues, device characteristics and management, file system implementation, memory mapped files, special purpose file systems.

top

CS3223 Database Systems Implementation

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2010 or CS2020 or CS2040 or CS2040C) and CS2102
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides an in-depth study of the concepts and implementation issues related to database management systems. It first covers the physical implementation of relational data model, which includes storage management, access methods, query processing, and optimisation. Then it covers issues and techniques dealing with multi-user application environments, namely, transactions, con-currency control and recovery. The third part covers object-database systems that are useful extension of relational databases to deal with complex data types. The last part covers database technologies required for modern decision support systems, including data warehousing, data mining and knowledge discovery and online analytical processing.

top

CS3225 Combinatorial Methods in Bioinformatics

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (CS2010 or CS2020 or CS2040 or CS2040C) and (CS2220 or LSM2104)
Preclusion(s): Nil
Cross-listing(s): Nil
After the complete sequencing of a number of genomes, we are in the stage to understand the mystery of our body, that is, we need to understand the information encoded in the genome and its relationship with RNA and protein. This aim of this module is to cover algorithms related to this stage. In the module, we will cover the algorithms related to genome annotation, motif identification, proteomics, population genetics, microarray, etc.

top

CS3226 Web Programming and Applications

Modular Credits: 4
Workload: 2-0-2-2-4
Prerequisite(s): (CS2010 or CS2020 or CS2030 or CS2113/T)
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces students to software development on the Web platforms. Students will be exposed to important computer science concepts, including networking, databases, computer security, user interface design, programming languages, and software engineering. These concepts will be tied together through hands-on practice in building a Web-based application using the current Web development technology. At the end of the module, students are expected to be able to design and develop a Web application, to appreciate the underlying technology needed to build a Web application, and to develop a fundamental understanding of related computer science concepts.

top

CS3230 Design and Analysis of Algorithms

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2010 or CS2020 or CS2040 or CS2040C) and (CS1231 or MA1100)
Preclusion(s): EEE and CPE students can only take this module as a technical elective to satisfy the programme requirements or UEM but not CFM/ULR-Breadth.
Cross-listing(s): Nil
This module introduces different techniques of designing and analysing algorithms. Students will learn about the framework for algorithm analysis, for example, lower bound arguments, average case analysis, and the theory of NP-completeness. In addition, students are exposed to various algorithm design paradigms. The module serves two purposes: to improve the students’ ability to design algorithms in different areas, and to prepare students for the study of more advanced algorithms. The module covers lower and upper bounds, recurrences, basic algorithm paradigms (such as prune-and-search, dynamic programming, branch-and-bound, graph traversal, and randomised approaches), amortised analysis, NP-completeness, and some selected advanced topics.

top

CS3233 Competitive Programming

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): At least grade A- in (CS2010 or CS2020 or (both CS2030 and CS2040)) or special permission
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to prepare students in competitive problem solving. It covers techniques for attacking and solving challenging computational problems. Fundamental algorithmic solving techniques covered include divide and conquer, greedy, dynamic programming, backtracking and branch and bound. Domain specific techniques like number theory, computational geometry, string processing and graph theoretic will also be covered. Advanced AI search techniques like iterative deepening, A* and heuristic search will be included. The module also covers algorithmic and programming language toolkits used in problem solving supported by the solution of representative or well-known problems in the various algorithmic paradigms.

top

CS3234 Logic and Formal Systems

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1231 or MA1100; Programming experience is preferred.
Preclusion(s): Nil
Cross-listing(s): Nil
This module focuses on the deductive and algorithmic aspects of both classical and non-classical logics. It introduces logic as a means for specifying, verifying and reasoning about computer programmes. It emphasizes, in contrast to other similar logic courses, on how logic can be used to represent computational problems, how these representations can be proven correct and how they can be executed on a computer. Topics covered include classical logic theories, logic programming, modal logic, and an introduction to non-standard logics. Treatments of predicate calculus and temporal logic are fully covered with emphasis on their specification, verification, deductive and algorithmic aspects.

top

CS3235 Computer Security

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2105 or EE3204) and (CS2106 or CG2271) and CS2107
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to provide a broad understanding of computer security with some in-depth discussions on selected topics in system and network security. This module covers the following topics: intrusion detection, DNS security, electronic mail security, authentication, access control, buffer overflow, memory and stack protection, selected topics in application security, for instance, web security, and well-known attacks.

top

CS3236 Introduction to Information Theory

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS1231 or MA1100) and (ST2334 or ST2131)
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces the basics of modern information theory. It covers how information can be quantified, and what this quantification tells us about how well we can compress and transmit information without error. It discusses basic error correcting techniques, and information-theoretic cryptography. Topics covered include: mathematical techniques, entropy measures, fundamental limits to data compression and noisy-channel coding, examples of error-correcting codes, examples of information theoretic cryptography (commitments, secure computation, key distribution, randomness extraction).

top

CS3240 Interaction Design

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1020 or CS1020E or CS2020 or CS2030 or CS2113/T; CNM students: NM2217
Preclusion(s): Nil
Cross-listing(s): Nil
This course is intended for students in computing and related disciplines whose work focuses on human-computer interaction issues in the design of computer systems. The course stresses the importance of user-centred design and usability in the development of computer applications and systems. Students will be taken through the analysis, design, development, and evaluation of human-computer interaction methods for computer systems. They will acquire hands-on design skills through laboratory exercises and assignments. The course also covers HCI design principles and emphasizes the importance of contextual, organisational, and social factors in system design.

top

CS3241 Computer Graphics

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2010 or CS2020 or ((CS2030 or CS2113/T) and (CS2040 or CS2040C))
Preclusion(s): EEE and CPE students can only take this module as a technical elective to satisfy the programme requirements or UEM but not CFM/ULR-Breadth.
Cross-listing(s): Nil
This module teaches some graphics hardware devices, reviews the mathematics related to the understanding, and discusses the fundamental areas of computer graphics. After completing the course, students are expected to understand the basic computer graphics terminology and concepts, and to be able to design and implement simple 2D and 3D interactive computer graphics related programmes. As an enrichment part of the course, students are introduced the state-of-the-art development in computer graphics by viewing interesting video clips and experimenting with demo programme made available in the course web.

top

CS3242 3D Modelling and Animation

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS3241 and (PC1221 or PC1221X) and (MA1102R or MA1505 or (MA1511 and MA1512) or MA1521) and (MA1101R or MA1311 or MA1506 or MA1508E)
Preclusion(s): CS4342
Cross-listing(s): Nil
This module aims to provide fundamental concepts in 3D modelling and animation. It also serves as a bridge to advanced media modules. After taking this module, students should be able to use these concepts to easily build or work with digital models, manipulate the models by means of computer deformation and animation, and use lighting and rendering techniques to create appealing scenes. Topics include coordinate spaces, transforms, 3D model representations, hierarchical structures, deformation, procedural modelling, particle systems, character animation, shading networks, lighting, and scripting concepts.

top

CS3243 Introduction to Artificial Intelligence

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): (CS2010 or CS2020 or CS2040 or CS2040C) and (CS1231 or MA1100)
Preclusion(s): EEE and CPE students can only take this module as a technical elective to satisfy the programme requirements or UEM but not CFM/ULR-Breadth.
Cross-listing(s): Nil
The module introduces the basic concepts in search and knowledge representation as well as to a number of sub-areas of artificial intelligence. It focuses on covering the essential concepts in AI. The module covers Turing test, blind search, iterative deepening, production systems, heuristic search, A* algorithm, minimax and alpha-beta procedures, predicate and first-order logic, resolution refutation, non-monotonic reasoning, assumption-based truth maintenance systems, inheritance hierarchies, the frame problem, certainly factors, Bayes’ rule, frames and semantic nets, planning, learning, natural language, vision, and expert systems and LISP.

top

CS3244 Machine Learning

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): (CS2010 or CS2020 or CS2040 or CS2040C) and (ESP1107 or ESP2107 or ST1232 or ST2131 or ST2132 or ST2334) and (MA1101R or MA1311 or MA1506 or MA1508E) and (MA1102R or MA1505 or (MA1511 and MA1512) or MA1521)
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces basic concepts and algorithms in machine learning and neural networks. The main reason for studying computational learning is to make better use of powerful computers to extract knowledge (or regularities) from the raw data. The ultimate objective is to build self-learning systems to relieve humans from some programming tasks. At the end of the course, students are expected to be familiar with the theories and paradigms of computational learning, and capable of implementing basic learning systems.

top

CS3245 Information Retrieval

Modular Credits: 4
Workload: 2-1-0-5-2
Prerequisite(s): CS2010 or CS2020 or (CS2030 or CS2113/T) and (CS2040 or CS2040C)
Preclusion(s): Nil
Cross-listing(s): Nil
This module discusses the basic concepts and methods of information retrieval including capturing, representing, storing, organizing, and retrieving unstructured or loosely structured information. The most well-known aspect of information retrieval is document retrieval: the process of indexing and retrieving text documents. However, the field of information retrieval includes almost any type of unstructured or semi-structured data, including newswire stories, transcribed speech, email, blogs, images, or video. Therefore, information retrieval is a critical aspect of Web search engines. This module also serves as the foundation for subsequent modules on the understanding, processing and retrieval of particular web media.

top

CS3246 Multimedia Content Analysis and Search (defunct))

Modular Credits: 4
Workload: 2-1-1-2-4
Prerequisite(s): CS2108
Preclusion(s): CS4341
Cross-listing(s): Nil
This module presents techniques for the representation, compression, storage, analysis and retrieval of Web-scale digital multimedia information, and their implementation as media search engines. The module is divided into 2 parts. The first part discusses the characteristics, mathematical foundation, compression, processing and applications of digital multimedia data including: text, image and video. It also covers standards in digital multimedia data such as JPEG, MPEG & H261, etc. The second part covers the analysis and retrieval of multimedia contents, including text, image and video. The course will also introduce modern architecture for text and image search engines.

top

CS3247 Game Development

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS3241 and PC1221
Preclusion(s): CS4213
Cross-listing(s): Nil
The module focuses on the design of interactive computing systems that enhance and support the cognitive and creative processes of their users. It emphasizes the creative design of innovative solutions. Throughout the course, students will learn the design principles and interactive solutions in application domains such as safety, security, surveillance, biomedical informatics and healthcare, or in specific technological areas such as interactive and digital media, social computing, tangible user interface, human robot interaction, and mobile HCI. They will put into practice various design principles through small-scaled design assignments. They will also learn use user-centred evaluation methods for evaluating the design.

top

CS3249 User Interface Development

Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS2103 or CS2103T
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims at providing students with technical skills and hands-on experience of user interface development. It focuses on the design and implementation of user interfaces in general, including graphical user interface. It covers essential topics including user interface models, psychology of humans and computers, user interface style, layout guidelines, GUI programming with widget toolkits, interaction models, event handling, multithreading, interacting with multimedia hardware, usability testing. Selected advanced topics such as geometric transformation, and 3D user interfaces, multiple-user interaction and real-time interaction are also covered.

top

CS3271 Software Engineering for Reactive Systems

Modular Credits: 4
Workload: 2-1-2-3-2
Prerequisite(s): CG2271 or CS2271
Preclusion(s): EE3304, EE/CPE students
Cross-listing(s): Nil
Reactive systems are real-time systems that continuously interact with the environment. This module introduces students to the software engineering principles for designing systems such as controllers and signal processors that are used in a wide variety of settings, including industrial plants, chemical reactors, flight and automotive controllers and robots. Topics to be covered will include fundamentals of control software, programming languages for real-time controllers, and verification and optimisation of software for digital control systems. Apart from a variety of programming assignments, this course will also introduce students to some relevant research topics in this area.

top

CS3281 Thematic Systems Project I

Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): (CS2103 or its equivalent) and have passed at least one primary module in a CS focus area. Student selection process will be enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This module is the first part of a two-part series on the development of large-scaled computer systems to solve real-world problems under specific themes such as healthcare, security and surveillance, tourism, etc. Students with complementary technical expertise will form project teams to work on real-world projects under the supervision of CS professors and industrial partners. This first part focuses on the analysis of the real-world problems, formulation of the computing requirements of the desired solution that meets the user’s needs, design of the computer systems according to the requirements, and evaluation of the design.

top

CS3282 Thematic Systems Project II

Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): CS3281 and have passed at least two primary modules in a CS focus area. Student selection process will be enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This module is the second part of a two-part series on the development of large-scaled computer systems to solve real-world problems under specific themes such as healthcare, security and surveillance, tourism, etc. Students with complementary technical expertise will form project teams to work on real-world projects under the supervision of CS professors and industrial partners. This second part focuses on the development of algorithms required for the systems, implementation and testing of the algorithms and the systems, and evaluation of the systems according to the users’ requirements.

top

CS3283 Media Technology Project I

Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): (CS2103 or CS2103T) and (CS3218 or CS3240 or CS3241 or CS3242 or CS3245 or CS3246 or CS3247 or CS3248 or CS3249 or module approved by Department of Computer Science.
Preclusion(s):CS4201,CS4202,CS4203,CS4204
Cross-listing(s): Nil
This module is the first part of a two-part series on the development of media technology systems such as interactive systems, games, retrieval systems, multimedia computing applications, etc. Students will form project teams to work on media technology projects. This first part focuses on the analysis of the user’s needs, formulation of the computing requirements of the desired solution that meets the user’s needs, design of the systems according to the requirements, implementation of first-cut prototype for evaluation purpose, and evaluation of the design.
top

top

CS3284 Media Technology Project II

Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): CS3283
Preclusion(s): CS4201,CS4202,CS4203,CS4204
Cross-listing(s): Nil
This module is the second part of a two-part series on the development of media technology systems such as interactive systems, games, retrieval systems, multimedia computing applications, etc. Students will form project teams to work on media technology projects. This second part focuses on the development of algorithms required for the systems, implementation and testing of the algorithms and the systems, and evaluation of the systems according to the users’ requirements.

top

CS3343 Digital Media Production  (defunct)

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): SoC students: CS1020 or its equivalent; CNM students: NM2208 or NM2217
Preclusion(s): Nil
Cross-listing(s): Nil
Development of digital media products such as videos, games, animations and digital special effects require both technical skills and artistic creativity. Common to these different media is the process of digital media production. This module aims at introducing the process of digital media production, in particular, video production. It covers pre-production, production and post-production processes, focusing on main activities such as storyboarding, camera, lighting, audio/sound, directing, recording and digital editing. The students will learn both artistic expression and the technical skills of using digital equipment and software tools. They will also engage in hands-on practice of digital video production.

top

CS3882 Breakthrough Ideas for Digital Markets

Modular Credits: 4
Workload: 2-0-0-7-1
Prerequisite(s): Read and passed 80 MCs of modules. Students from Engineering, Science, and FASS with sufficient computing background and have read and passed 80 MCs of module may also apply to read. Student selection process will be enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides students the opportunity to explore and conceptualise new digital products or services that will impact people and enterprises. Students will cultivate the importance of thinking “design” for the purpose of developing valuable, captivating and usable digital products or services. The module will provide students with insights into the innovation process and case studies of successful innovation. Exposure to ideas from leading companies and serial entrepreneurs will motivate ideation. Students will be required to benchmark their ideas for competitive positioning.

top

CS4211 Formal Methods for Software Engineering

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2103 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
Before software can be designed, its requirements must be well understood. Before requirements can be expressed the application domain must be similarly well understood. This course will cover some of the advanced and sound formal techniques of the three major phases of Software Engineering: Domain Engineering (e.g. ontology), Requirements Engineering (e.g. precise specifications), and Software Design (e.g. analyzable models and reasoning tools).

top

CS4212 Compiler Design

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2104
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to introduce the principal ideas behind programme compilation, and discusses various techniques for programme parsing, programme analysis, programme optimisation, and run-time organisation required for programme execution. Topics covered include regular expressions, context-free grammars, lexical analysis, syntax analysis; different algorithms for parsing codes, such as top-down parsing, bottom-up parsing; translation to abstract syntax using modern parser generator technology, intermediate representation, semantics analysis, type system, un-optimised code generation, code optimisation, data-flow analysis, instruction scheduling.

top

CS4214 Formal Semantics

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS2104 or CS3212 or CS3234
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this course is to provide the basic mathematical techniques to study the semantics and logical reasoning of programmes and programming languages. This enables the students the ability to understand semantics specifications and to develop new ones for new languages. The course also describes and compares various advanced programming language features. The course combines theory and practice. Topics covered include axiomatic, denotational and operational semantics, type systems, template meta-programming, staged/generic programming, XML and XML processing.

top

CS4215 Programming Language Implementation

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS2010 or CS2020 or ((CS2040 or CS2040C) and (CS2030 or CS2113/T))
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides the students with theoretical knowledge and practical skill in the implementation of programming languages. It discusses implementation aspects of fundamental programming paradigms (imperative, functional and object-oriented), and of basic programming language concepts such as binding, scope, parameter-passing mechanisms and types. It introduces the language processing techniques of interpretation and compilation and virtual machines. The lectures are accompanied by lab sessions which will focus on language processing tools, and take the student through a sequence of programming language implementations. This module also covers automatic memory management, dynamic linking and just-in-time compilation, as features of modern execution systems.

top

CS4216 Constraint Logic Programming

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS2104
Preclusion(s): Nil
Cross-listing(s) : Nil
This course introduces the programming methodology of Constraint Logic Programming (CLP). It first covers programming in PROLOG, the basic CLP programming language. The main part of the course covers modelling of complex problems using constraints and rules, and the use of advanced algorithms that are supported by the constraint solvers in modern CLP systems. Also covered are the mathematical foundations of CLP. Throughout the course, practical exercises are performed using a modern CLP system such as CLP(R) or Eclipse.

top

CS4217 Software Development Technologies (no longer offered)

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS3213
Preclusion(s): Nil
Cross-listing(s) : Nil
This module aims to provide students with an appreciation of the technologies and tools available in support of the software development life cycle. Through assignments and projects, students will learn various technologies and tools that dramatically improve the productivity of the development process and the quality of product. They will also gain an appreciation of how choosing the wrong technologies and tools can be disastrous to the project, and the pitfalls and opportunities for automation of software development. Topics include cost benefit analysis of using automation tools, tool selection, implementation success criteria, tool evaluations, piloting tools and tool demos.

top

CS4218 Software Testing

Modular Credits: 4
Workload: 2-0-1-2-5
Prerequisite(s): CS3219
Preclusion(s): Nil
Cross-listing(s) : Nil
This module covers the concepts and practice of software testing including unit testing, integration testing, and regression testing. Various testing coverage criteria will be discussed. Debugging methods for finding the root-cause of errors in failing test cases will also be investigated. The use of testing and analysis for performance prediction, performance clustering and performance debugging will be studied. Students will acquire crucial skills on testing and debugging through hands-on assignments.

top

CS4220 Knowledge Discovery Methods in Bioinformatics

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS2220 or LSM2104
Preclusion(s): Nil
Cross-listing(s): Nil
The advent of high throughput technologies (e.g. DNA chips, microarray, etc), biologists are being overloaded with lots of information (e.g., gene expression data). To be able to make sense out of these data, there is a need to have a systematic way to analyse them. This course is introduced to provide students with knowledge of techniques that can be used to analyse biological data to enable them to discover new knowledge. At the end of the course, students will be able to identify the relevant techniques for different biological data to uncover new information. Topics include: Clustering analysis, classification, association rule mining; support vector machines; Hidden Markov Models.

top

CS4221 Database Applications Design and Tuning

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
This module addresses the design and performance tuning of database applications. The syllabus focusses on relational database applications implemented with relational database management systems. Topics covered include normalisation theory (functional, multi-valued and join dependency, normal forms, decomposition and synthesis methods), entityrelationship approach and SQL tuning (performance evaluation, execution plan verification, indexing, de-normalization, code level and transactions tuning). The syllabus optionally includes selected topics in the technologies, design and performance tuning of non-relational database applications (for instance, network and hierarchical models and nested relational model for an historical
perspective, as well as XML and NoSQL systems for a modern perspective).

top

CS4222 Wireless Networking

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): (CS2105 or EE3204/E) and (ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide solid foundation for students in the area of wireless networks and introduces students to the emerging area of cyber-physical-system/Internet-of-Things. The module will cover wireless networking across all layers of the networking stack including physical, link, MAC, routing and application layers. Different network technologies with different characteristic will also be covered, including cellular networks, Wi-Fi, Bluetooth and ZigBee. Some key concepts that cut across all layers and network types are mobility management, energy efficiency, and integration of sensing and communications. The module emphasizes on exposing students to practical network system issues through building software prototypes.

top

CS4223 Multi-core Architecture

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): (CS2106 or CG2271) and (CS3210 or CS3220 or CG3207)
Preclusion(s): Nil
Cross-listing(s): Nil
The world of parallel computer architecture has gone through a significant transformation in the recent years from high-end supercomputers used only for scientific applications to the multi-cores (multiple processing cores on a single chip) that are ubiquitous in mainstream computing systems including desktops, servers, and embedded systems. In the context of this exciting development, the aim of this module is to examine the design issues that are critical to modern parallel architectures. Topics include instruction-level parallelism through static and dynamic scheduling, shared memory, message-passing, and data parallel computer architectures, cache coherence protocols, hardware synchronization primitives, and memory consistency models.

top

CS4224 Distributed Databases

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
This module studies the management of data in a distributed environment. It covers the fundamental principles of distributed data management and includes distribution design, data integration, distributed query processing and optimization, distributed transaction management, and replication. It will also look at how these techniques can be adapted to support database management in emerging technologies (e.g., parallel systems, peer-to-peer systems, cloud computing).

top

CS4225 Massive Data Processing Techniques in Data Science

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
Data science incorporates varying elements and builds on techniques and theories from many fields, including statistics, data engineering, data mining, visualization, data warehousing, and high performance computing with the goal of extracting meaning from data and creating data products. Data science seeks to use all available and relevant data to effectively tell a story that can be easily understood by non-practitioners. In this module, students will learn various massive data processing techniques that are used in data science with emphasis on the algorithmic and mathematical properties of these techniques.

top

CS4226 Internet Architecture

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (CS2105 or EE3204) and (ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to focus on advanced networking concepts pertaining to the modern Internet architecture and applications. It covers a range of topics including network performance (throughput, delay, Little’s Law and M/M/1 queuing formula), and resource allocation and buffer management (max-min fair, round-robin and RED), intra- and inter-domain routing (RIP, OSPF and BGP), congestion control and modern variations of TCP (AIMD and Cubic TCP), peer-to-peer applications and content delivery networks (BitTorrent, Skype, Akamai), and data center networking and management (SDN and OpenFlow).

top

CS4231 Parallel and Distributed Algorithms

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3230 or CS3210
Preclusion(s): Nil
Cross-listing(s): Nil
This course will examine some fundamental issues in parallel programming and distributed computing, and the relationships between the two. Parallel programming: mutual exclusion, semaphores, consistency, wait-free synchronisation. Distributed computing: time, global state, snapshots, message ordering. Relationships: consensus, fault-tolerance, transactions, self-stabilisation.

top

CS4232 Theory of Computation

Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1231 or any Level-2000 MAxxxx offered by Mathematics Department
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to provide students with a theoretical understanding of what can be computed, and an introduction to the theory of complexity. It aims to introduce
(i) some standard formal models of computation so as to develop an understanding of what can or cannot be computed by various computing devices;
(ii) some reasoning techniques commonly used in computer science; these include model equivalence, non-determinism, digitalisation, simulation and reduction; and
(iii) the mathematical formulation of objects in computer science so as to study their properties.

top

CS4234 Optimisation Algorithms

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS3230 and (MA1101R or MA1311 or MA1506 or MA1508E)
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers common algorithmic techniques for solving optimisation problems, and introduces students to approaches for finding good-enough solutions to NP-hard problems. Topics covered include linear and integer programming, network flow algorithms, local search heuristics, approximation algorithms, and randomized algorithms. Through analysis and application of the techniques to a variety of canonical problems, students develop confidence to (i) appropriately model a given optimisation problem, (ii) apply appropriate algorithmic techniques to solve the problem, (iii) analyse the properties of the problem and candidate algorithms, such as time and space complexity, convergence, approximability, and optimality bound.

top

CS4235 Computational Geometry

Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): CS3230 and (MA1101R or MA1506)
Preclusion(s): Nil
Cross-listing(s): Nil
Computational geometry is the study of algorithms for solving geometric problems. This course introduces the main topics and techniques in this field. They will be presented in connection with applications in CAD, databases, geographic information systems, graphics and robotics. Students will learn the main algorithmic techniques for solving geometric problems and the related discrete geometric structures. At the end of this module, students will be able to design and analyse geometric algorithms and data structures, and to apply these techniques to solve problems arising in applications.

top

CS4236 Cryptography Theory and Practice

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1231 and CS2107 and (CS2010 or CS2020 or CS2040 or CS2040C)
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to introduce the foundation, principles and concepts behind cryptology and the design of secure communication systems. The emphasis is on the formulation and techniques of various cryptographic primitives, and on the secure usage of such primitives to achieve the goals of confidentially, integrity, and authenticity in both theoretical settings and practical scenarios. Basic topics include pseudorandom functions, symmetric key encryption, public key encryption, message authentication codes, hash functions, digital signatures, key exchange and PKI. Selected topics may include: secret sharing, TCP/IP security, Kerberos, SSL, trusted computing, side-channel attacks.

top

CS4237 Systems Modelling and Simulation

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (ST1232 or ST2131 or ST2334) and (CS1020 or its equivalent). Preferably read CS3103 or CS3224 or CS3220 or CS4223.
Preclusion(s): Industrial Systems Engineering (ISE) students
Cross-listing(s): Nil
This course covers the methodology and techniques in systems modelling and the design of computer simulation models. At the end of the course, the students should be able to carry out a study of a system using computer simulation. Topics include: ways to study a system; modelling and simulation lifecycle; principles of discrete-event modelling and simulation; input data modelling, model development and programming; model verification and validation; model output analysis, design of simulation experiments; comparison and evaluation of system design alternatives; applications of simulation in computer science.

top

CS4238 Computer Security Practice

Modular Credits: 4
Workload: 2-0-1-3-4
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
This is a lab-based module with emphasis on hands-on experiences of computer security. The objective of this module is to familiarize the students with common attacks and protection mechanisms, as well as general system administration and development of secured software. Topics covered include network security, operating system security, and application security such as DNS attacks, memory-error exploits, and web application attacks. Students will learn through project assignments and defense competitions.

top

CS4239 Software Security

Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisite(s): (CS2103 or its equivalent) and CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
Software engineering processes need to include security considerations in the modern world. This module familiarizes students to security issues in different stages of the software life-cycle. At the end of the module, the students are expected to understand secure programming practices, be able to analyse and check for impact of malicious inputs in programs, and employ specific testing techniques which can help detect software vulnerabilities.

top

CS4240 Interaction Design for Virtual and Augmented Reality

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS3240 and (MA1301 or A-level / H2 Mathematics)
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to expose students to the human-centered principles of designing and building virtual reality (VR) and augmented reality (AR) applications. Students will learn about the fundamentals of VR and AR, human perceptions of reality, and the design patterns and guidelines for user interactions within VR/AR applications. Students will gain hands on experience building VR/AR applications applying these interaction principles.

top

CS4241 Multimedia Information Retrieval

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3245 and CS3246
Preclusion(s): Nil
Cross-listing(s): Nil
With the proliferation digital media, more and more information is available in non-textual forms. The ability to index, manage and retrieve media contents is of paramount importance. This module introduces the theory, design and technologies of media search. It covers the design of media search engine, the extraction of media features and their indexing, media concept annotation, media search paradigms, and interactive search. It also covers the applications of media search in social media, enterprise and personal media.

top

CS4242 Social Media Computing

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2108 and CS3245
Preclusion(s): Nil
Cross-listing(s): Nil
The emergence of WWW, smart mobile devices and social networks has revolutionised the way we communicate, create, disseminate, and consume information. This has ushered in a new era of communications that involves complex information exchanges and user relationships. This module aims to provide students with a good understanding of the social network phenomena and computational skills for analysing the complex social relation networks between users, the contents they shared, and the ways contents and events are perceived and propagated through the social networks. The analysis will provide better understanding of the concerns and interests of users, and uncover live and emerging events that will affect the community.

top

CS4243 Computer Vision and Pattern Recognition

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS1020 or CS1020E or CS2020 or (CS2030 or CS2113/T) and (CS2040 or CS2040C)) and (MA1101R or MA1311 or MA1506 or MA1508E) and (MA1102R or MA1505 or (MA1511 and MA1512) or MA1521), and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
In this module, various methods for computers to understand and interpret the contents of images are investigated. The objective is to expose the students to the basic concepts underlying various computer vision techniques and the application of current techniques for problem solving. Topics covered include morphological operations, convolution and cross correlation, edge and corner detection, colour, texture, motion, image registration and mosaicking, 3D vision, camera calibration and 3D reconstruction, eigenface and pattern recognition. Laboratory exercises and projects are included for the students to solve practical problems using computer vision and image processing software packages.

top

CS4244 Knowledge-Based Systems

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3243
Preclusion(s): Nil
Cross-listing(s): Nil
This is a module that contains both the theory and practice of building knowledge-based systems. The aim of this module is to prepare students so that they can design and build knowledge-based systems to solve real-world problems. The module starts with motivations, background and history of knowledge-based system development. The main content has five parts: rule-based programming language, uncertainty management, knowledge-based systems design, development and life cycle, efficiency in rule-based language and knowledge-based systems design examples.

top

CS4245 Multimedia E-Learning Environments (defunct)

Modular Credits: 4
Workload: 2-1-1-4-3
Prerequisite(s): CS3240 and CS3248
Preclusion(s): Nil
Cross-listing(s): Nil
This course teaches students how to design and develop multimedia and Internet-based learning environments to support effective online learning and training. It has two main parts. The first part addresses the issue of pedagogy in learning and training. The second part deals with different types of educational technologies, such as interactive learning environments, tutoring systems, and simulation-based learning environments. It will also address the design, development, and appropriate use of computing technologies for instruction and learning. Special emphasis will be given to multimedia and Internet-based learning environments. Students will be required to complete a project using an appropriate authoring tool.

top

CS4246 AI Planning and Decision Making

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (MA2216 or ST2131 or ST2334) and CS3243
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces the major concepts and paradigms in planning and decision making in complex environments. It examines issues, challenges, and techniques in problem representation, goal or objective specification, response selection, and action consequence for a wide range of strategic and tactical planning and decision making situations. Topics covered include deterministic and non-deterministic planning, practical planning and acting under resource constraints and uncertainty, expected utility and rational decision making, decision networks, Markov decision processes, elementary game theory, and multi-agent planning and decision making.

top

CS4247 Graphics Rendering Techniques

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3241
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides a general treatment of real-time and offline rendering techniques in 3D computer graphics. Specific topics include the raster graphics pipeline, viewing and transformation, real-time mapping techniques, real-time shadow algorithms, local reflection models, global illumination, distributed ray tracing, photon mapping, radiosity, volume rendering, image-based rendering and modelling, and strategies for anti-aliasing and photo-realism.

top

CS4248 Natural Language Processing>

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS3243 or CS3245) and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This module deals with computer processing of human languages, emphasising a corpus-based empirical approach. The topics covered include:
(i) Linguistic essentials.
(ii) Basic techniques and algorithms: Hidden Markov model, Viterbi algorithm, supervised learning algorithms.
(iii) Words: part-of-speech tagging.
(iv) Syntax: noun phrase chunking, named entity tagging, parsing (top down, bottom up, probabilistic).
(v) Semantics: word sense disambiguation.
(vi) Pragmatics: discourse, co-reference resolution.
(vii) Applications: text categorisation, text summarisation, language identification, information extraction, question answering, machine translation.

top

CS4249 Phenomena and Theories of Human-Computer Interaction

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): SoC Students: CS3240; CNM students: NM2216
Preclusion(s): Nil
Cross-listing(s): Nil
This module teaches the underlying science of Human-Computer Interaction (HCI) and its application to user interface design. It surveys a wide range of psychological theories beginning with organizational behaviour approaches, understanding of work and workflow within organizations, and moving on to understanding human psychological architecture and processing constraints. It demonstrates via a combination of scientific theory understanding and engineering modelling the solutions of design problems facing a user interface designer. It also covers new design methods and techniques available and the new conceptual mechanisms used in HCI such as the metaphors for describing user interaction.

top

CS4257 Algorithmic Foundations of Privacy
Modular Credits: 4
Workload: 2-0-0-5-3
Prerequisite(s): (ST1232 or ST2131 or ST2334) and CS3230 and CS2107
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers algorithmic foundations of computation and communication privacy. It provides a thorough methodology for analysis of privacy against inference attacks using techniques from statistics, probability theory, and machine learning. Students will learn how to reason quantitatively about privacy, and evaluate it using the appropriate metrics. The module will help students to design privacy-preserving mechanisms for a range of systems from anonymous communication to data analytics. After this module, students should be able to identify privacy vulnerabilities in a system, design inference attacks, and propose effective countermeasures in a systematic manner.

top

CS4271 Critical Systems and Their Verification

Modular Credits: 4
Workload: 2-0-1-3-3
Prerequisite(s): (CS1104 or CS2100 or EE2006 or EE2020) and (CS1231 or MA1100)
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to introduce formal verification techniques for validating safety critical reactive systems with specific focus on embedded systems. It covers an automated formal verification technique called Model Checking, which is based on state space search. The different parts of the course will touch upon:
i. formal modelling
ii. verification via Model Checking
iii. state space reduction techniques to make model checking space/time efficient and
iv. specific issues in validation of reactive embedded systems.

 

top

CS4273 Embedded Software Design Project (defunct)

Modular Credits: 4
Workload: 1-1-2-5-1
Prerequisite(s): (CG2271 or CS2271) and (CS3215 or CS3202)
Preclusion(s): Nil
Cross-listing(s): Nil
This module will cover the design, construction and validation of embedded systems. Students will embark on a good-sized embedded system project on an ARM-based platform, which will include producing detailed specifications and design documents, implementing the application system, and demonstrating that their prototype meets the specifications. Students will gain hands-on experience of working in teams to build a complete embedded system and understand the interplay between the hardware platform, real-time operating systems (RTOS) and the embedded software. Experience accrued will include adapting RTOS to specific embedded environments, and low level device programming. Example projects include calculators, MP3 players, and digital clocks.

top

CS4274 Mobile and Multimedia Networking (defunct)

Modular Credits: 4
Workload: 2-1-2-3-2
Prerequisite(s): CG3204L or CS3103
Preclusion(s): Nil
Cross-listing(s): Nil
The first part of this module deals with mobility and wireless technology. It introduces the development of the mobile IP protocol, and addresses the practical application of mobile IP in real-world networking environments. It looks at advanced mobile IP features, including NAT traversal, integration with IPSec, and network mobility. In the second part, the module deals with computer and multimedia networks, and applications associated with multimedia networking. Characteristics of real-time and multimedia traffic and concepts of QoS for multimedia data transmission are discussed. It also deals with transmission of multimedia traffic over various networks, related protocols, services, and applications.

top

CS4275 Programming Real-time Systems (defunct)

Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisite(s): (CS1020 or its equivalent) and CS2106
Preclusion(s): Nil
Cross-listing(s): Nil
Developing applications for real-time embedded systems require programming languages and abstractions which are substantially different from those used for developing desktop applications. This module will introduce different real-time programming models, programming languages corresponding to these models and techniques for programming with real-time operating systems. The topics to be covered will include principles of synchronous programming using Lustre, the time-triggered programming model and the recently developed Giotto language, and programming languages based on the model of scheduled computation such as Real-Time Java. This module will be suitable for senior undergraduates and graduate students interested in embedded systems and programming languages.

top

CS4340 Digital Special Effects  (defunct)

Modular Credits: 4
Workload: 2-0-1-5-2
Prerequisite(s): CS4243 or CS4247 or CS3242
Preclusion(s): CS5245
Cross-listing(s): Nil
This module aims at teaching multimedia techniques for creating digital specia effects video. It allows the students to explore their creativity while extending their skills in multimedia technologies. Topics covered include elements of special effects, camera work, storyline and storyboard, digital compositing, matchmoving, video effects, CG effects, 2D/3D morphing, realistic rendering, sound effects, case studies. The students are required to analyse and critique special effects in movies. The module culminates in a short video project that demonstrates the students’ creativity and innovation in using various techniques to create a captivating and stunning digital special effects video.

top

CS4344 Networked and Mobile Gaming

Modular Credits: 4
Workload: 2-1-2-0-5
Prerequisite(s): (CG2271 or CS2106) and (CG3204L or CS3103))
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims at providing students a deep understanding of various technical issues pertaining to the development of networked games and mobile games. Students will be exposed to concepts from distributed systems, operating systems, security and cryptography, networking and embedded systems. In particular, issues such as game server architectures (mirrored, centralised, peer-to-peer etc.), consistency management (bucket synchronisation, dead reckoning etc.), interest management, scalability to large number of clients (C10K problem), cheat prevention and detection, power management, will be discussed.

top

CS4345 General-Purpose Computation on GPU

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3241
Preclusion(s): Nil
Cross-listing(s): Nil
With the advancements in the technology of graphics processing units (GPUs), many computations can be performed faster on the GPUs than the CPUs. They are also programmable, making them useful for not just computer graphics processing but also general-purpose computations. Therefore, they are a natural choice as high-speed coprocessors to the CPUs in various applications. This module introduces the architecture of GPU, programme-writing on GPU using high-level language such as Cg, and the use of GPU in applications including computer graphics, games, scientific computation, and image processing.

top

CS4346 Game Console Programming (defunct)

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS4213
Preclusion(s): Nil
Cross-listing(s): Nil
This module will dissect hardware, software and development cycles for one or more leading game consoles available in the industry. The objective is to expose students to concepts of systems architecture, resource management, threading, streaming, and content optimisation for high throughput and constrained memory/power platforms. Students will be exposed to hands-on programming assignments and mini-projects on selected consoles with SDKs secured under Non Disclosure Agreement with console manufacturers.

top

CS4347 Sound and Music Computing

Modular Credits: 4
Workload: 2-0.5-0.5-4-3
Prerequisite(s): CS2108 and (MA102R or MA1505 or (MA1511 and MA1512) or MA1521) and (MA1101R or or MA1311 or MA1506 or MA1508E)
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces the fundamental technologies employed in sound and music computing which are grouped into three major areas: Sound, Music, and Interaction. It begins with an introduction to sound production, propagation and perception, followed by digital sound recording, editing, post-processing and compression. Its core components consist of the analytic and synthetic approaches of sound and music. The analytic approach pertains to analysis and understanding, whereas the synthetic approach pertains to generation and processing. Interaction aspects include multimodal mobile music interface and sound interaction design. Finally, music information retrieval will be introduced as an application of analytic techniques.

top

CS4350 Game Development Project

Modular Credits: 4
Workload: 0-2-0-6-2
Prerequisite(s): CS3247 or NM3216 
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this project-based module is to provide an opportunity for the students to work in a group to design and develop a game following the main stages of game development process. The module will focus on the design of core dynamic, game mechanics, strategy, progression, balancing, game levels, interface and technical features including 3D graphics, animation, AI, physics, and networking. In addition, software engineering principles will be practised in developing the game software.

top

CS4351 Real-time Graphics

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS3241 
Preclusion(s): Nil
Cross-listing(s): Nil
Real-time graphics is driving many interactive computer applications, such as 3D games, VR, 3D modelling, and data visualization. Recent rendering techniques have been heavily exploiting the powerful graphics hardware to achieve unprecedented performance and effects. In this module, students study the modern real-time rendering pipeline and GPU architecture, learn about modern and traditional real-time rendering techniques, and write shaders to implement these techniques for the GPU. The syllabus includes multiple-pass rendering; shading and reflection models; procedural texture-mapping and shading; lights and shadows; noise and natural materials; non-photorealistic rendering; volume rendering; deferred shading; scene management; post-rendering processing; performance analysis and optimization.

top

CS4880 Digital Entrepreneurship

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisites: Students in their 3rd year of study in science, technology or business
Preclusion(s): Nil
Cross-listing(s): Nil
The course will cover trends in the digital marketplace and emerging high-growth opportunities for digital businesses. The course will highlight issues facing companies with new products and services in an ever-changing digital marketplace. While the course will provide an overview on structuring of new ventures, the primary focus will be on opportunity identification and sources of competitive differentiation, particularly as they relate to digital innovation. To hone these skills the students will communicate by crafting a business plan.

top

CSxxxxR (e.g. CS3230R)

Modular Credits: 1
Workload: 0-0-0-2-1
Prerequisites: Co-read host module. Student selection process is enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This 1-MC module adds a research component to the host module, enabling students to acquire more in-depth understanding of the research issues pertaining to the subject matter.

top

BT5110 Data Management and Warehousing
Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): Students must be in Master of Science in Business Analytics programme.
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide students with practical knowledge and understanding of basic issues and techniques in data management and warehousing with relational database management systems.
The module covers data management concepts, conceptual (entity relationship model) and logical design (relational model) and database management (data definition, data manipulation, SQL) with relational database management systems.The module covers data warehousing concepts, data warehousing design and data warehousing with relational database management systems and tools. 

top

CS5214 Design of Optimising Compilers

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3212 or CS4212
Preclusion(s): Nil
Cross-listing(s): Nil
The performance gap between optimised and unoptimised code continues to widen as modern processors evolve. Notably, the emerging explicitly parallel instruction computing (EPIC) processors are significantly dependent on a range of aggressive programme optimisations to yield performance. This module provides an in-depth study of code optimisation techniques used in compilers for state-of-the-art processors. Topics covered include structure of an optimising compiler, the programme dependence graph, front end optimisations, instruction scheduling, register allocation, compiling for EPIC processors including predicated execution and software pipelining with hardware support, loop optimisations, dataflow analysis and optimisation, optimisations for the memory hierarchy, and automatic parallelisation.

top

CS5215 Constraint Processing

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS2104
Preclusion(s): Nil
Cross-listing(s): Nil
Constraint programming is an alternative approach to computing in which the programming process is limited to a generation of requirements (constraints) and to solving of them by general methods and domain dependent methods. This module discusses the basic aspects of constraint programming, focusing on how to model and solve the constraints. Students will learn problem modelling by means of constraints and the main techniques used to solve such systems of constraints. The module focuses on the fundamental notions of constraint satisfaction problems, local consistency, constraint propagation, complete and incomplete constraint solvers, and various search methods.

top

CS5218 Principles of Programme Analysis

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS4212 or CS4215
Preclusion(s): Nil
Cross-listing(s): Nil
Programme analysis are static (compile-time) techniques for computing approximate and yet reliable information about the dynamic behaviour of programmes. This module lays the foundation for study of programme analysis. It covers the essential mathematics upon which programme analyses are built, and provides an overview of different approaches to programme analysis. Topics include: Partially ordered sets, induction and co-induction, data flow analysis, constraint based analysis, abstract interpretation, and type and effect systems. Students with interest in programming language design and compiler design will find this module beneficial.

top

CS5219 Automated Software Validation

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS2104
Preclusion(s): Nil
Cross-listing(s): Nil
The immense growth in the complexity of software has increased the scope of errors, which are often critical. The nature of these errors is diverse, resulting from the diversity of the various classes of software: sequential, multithreaded, reactive and real-time. In this course, we will study techniques for verification, run-time monitoring and debugging of software which help us to give certain guarantees against such errors. The focus will be on automated validation techniques. This is a research-oriented course in programme validation and verification, but parts of it are useful for graduate students working in other areas.

top

CS5220 Databases and the Web (defunct))

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS3223 or an equivalent course on database system implementation
Preclusion(s): Nil
Cross-listing(s): Nil
This course covers novel application of database concepts and techniques to the processing, dissemination, and integration of data on the Web. Students will learn about the research issues and state-of-the-art techniques that arise from the intersection of database and Web technologies. Topics to be covered include Web technologies (XML, specification languages such as DTD and XML Schema, query languages such as XPath, XQuery) and the application of database technologies (query optimisation and evaluation techniques) to manage and process data in Web-based applications.

top

CS5222 Advanced Computer Architecture

Modular Credits: 4
Workload2-0-0-4-4
Prerequisite(s): CS3220 or CS4223
Preclusion(s): Nil
Cross-listing(s): Nil
The aim of this module is to introduce the state-of-the-art architectural advances underlying the current generation of computing systems. A review of pipelined processor design and hierarchical memory design is followed by advanced topics including exploitation of instruction-level parallelism through dynamic instruction scheduling and speculation, exploiting thread-level parallelism through multiprocessors, and optimizations for memory and storage subsystems. Throughout the module, particular emphasis will be placed on cost-performance-power-reliability trade-offs in designing the different architectural components.

top

CS5223 Distributed Systems

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3211
Preclusion(s): Nil
Cross-listing(s): Nil
The topic of Distributed Systems is now garnering increasing importance, especially with the advancement in technology of the Internet and WWW. The aim of this module is to provide students with basic concepts and principles of distributed operating systems, interprocess communications, distributed file systems, shared data, and the middleware approach. The module is taught in seminar style, and several case studies are included, e.g. CORBA. Topics: Introduction — Characteristics of Distributed Systems; Process Management Communication in Distributed Systems; Distributed Synchronisation; Distributed Real-time Systems; File Systems; Naming Security; Fault Tolerant Distributed Systems; Distributed Simulation; WWW as an application of Distributed System.

top

CS5224 Cloud Computing

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide an overview of the design, management and application of cloud computing. The topics include managing virtualization, cloud computing environments, cloud design patterns and use cases, data centre architectures and technologies, cloud services fulfillment and assurance, orchestration and automation of cloud resources, cloud capacity management, cloud economics, case studies.

top

CS5225 Parallel & Distributed Database Systems (defunct)

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
This module addresses issues in management of large volume shared data in parallel and distributed environment. Topics covered include: Overview of database and computer network concepts; Transparency in a distributed DBMS; Distributed DBMS architecture. Distributed database design: Alternative design strategies; Distributed design issues; Fragmentation; Data allocation. Distributed query processing: Factors governing query optimisation; Centralised query optimisation; Ordering of fragment queries; Distributed query optimization algorithms. Concurrency control: Concurrency control in centralised database systems; Concurrency control in DDBSs; Distributed concurrency control algorithms; Deadlock management. Parallel Database: Parallel architectures; parallel query processing and optimisation; load balancing.

top

CS5226 Database Tuning

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
This module is concerned with the performance-related database administration issues. The topics include: an overview of query optimisation techniques, physical data base design, system configuration, buffer management, performance analysis and tuning techniques.

top

CS5228 Knowledge Discovery and Data Mining

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS2102 and CS3243 and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This course introduces fundamental principles behind data mining and efficient techniques for mining large databases. It provides an overview of the algorithmic aspect of data mining: its efficiency (high-dimensional database indexing, OLAP, data reduction, compression techniques) and effectiveness (machine learning involving greedy search, branch and bound, stochastic search, parameter optimisation). Efficient techniques covered include association rules mining (Apriori algorithm, correlation search, constrained association rule discovery), classifier induction (decision trees, RainForest, SLIQ; Support vector machine; Naive Bayesian; classification based on association / visualisation), cluster analysis (kmeans, k-mediods, DBSCAN, OPTICS, DENCLUE, STING, CLUSEQ, ROCK etc), and outliers/deviants detection (LOF, Distance-based outlier etc).

top

CS5229 Advanced Computer Networks

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS4226 or EE4210
Preclusion(s): Nil
Cross-listing(s): Nil
This course covers advanced fundamental principles of computer networks and techniques for networking. The goal of this course is to teach these fundamentals/ techniques that will remain important and relevant regardless of the hot topics in networks and networking. Briefly, the topics include advanced network architecture and design principles, protocol mechanisms, implementation principles and software engineering practices, network algorithmic, network simulation techniques and tools, performance analysis and measurement, and protocol specification/verification techniques.

top

CS5230 Computational Complexity

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS4232
Preclusion(s): CS4230
Cross-listing(s): Nil
The aim of this module is to study the various measures of difficulty of problem-solving in computing, and to introduce some techniques in theoretical computer science such as nondeterminism, digitalisation, simulation, padding, reduction, randomisation and interaction.
Topics covered include: space and time complexity - the classes P, NP, co-NP, PSPACE, EXP, etc.; tape compression; linear speedup; polynomial reduction; Cook’s theorem; Savitch’s theorem; translation lemma; Gap theorem; NP-completeness and NP-hard problems; probabilistic complexity classes; approximation algorithms; and interactive protocols.

top

CS5231 Systems Security

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces fundamental notions and requirements in computer security, such as the concepts of confidentiality, integrity and availability, and the mechanisms that provide security in various systems and applications. To illustrate relevant concepts, selected topics in information security, including symmetric key cipher and PKI, operating system security, network security, web security, and database security will be covered. Case studies of existing systems, international standards such as IPSec, and well-known attacks like phishing and buffer overflow will also be covered.

top

CS5232 Formal Specification & Design Techniques

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS1231 or MA1100) and (CS2103 or CS2103T)
Preclusion(s): Nil
Cross-listing(s): Nil
The primary role of the formal specification is to provide a precise and unambiguous description of a computer system. A formal specification allows the system designer to verify important properties and detect design error before system development begins. The objective of this course is to study various formal specification and design techniques for modelling (1) object-oriented systems, (2) realtime distributed systems, and (3) concurrent reactive systems. The course will focus on the state-based notations Z/Object-Z, event-based notation CSP/Timed-CSP. Graphical modelling notations, such as StateChart and UML (Unified Modelling Language) will also be addressed.

top

CS5233 Simulation and Modelling Techniques

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS4231 and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This course aims to provide students with a working knowledge of applying simulation techniques to model, simulate and study complex systems. It covers techniques in simulation model design, model execution and model analysis. Model design techniques include conceptual models, declarative models, functional models, constraint models, and multi-models. Model execution techniques include serial and parallel discrete-event simulation algorithms. Topics in model analysis include input-output analysis and experiment design. Students will have hands-on experience using a simulation package that we have developed.

top

CS5234 Combinatorial and Graph Algorithms

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3230
Preclusion(s): CS4234
Preclusion(s): Nil
Cross-listing(s): Nil
This course presents advanced material on the design and analysis of combinatorial algorithms with emphasis on efficient algorithms and data structures. This course is meant for students who intend to (i) do research in computer science in general and algorithm design in particular or (ii) do advanced application/ software development in other areas of computer science. (It assumes that the student has already done one course on design and analysis of algorithms equivalent to CS3230.)

top

CS5235 Approximation Algorithms (defunct)

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS3230 and (MA1101R or MA1506)
Preclusion(s): Nil
Cross-listing(s): Nil
Many optimisation problems are known to be NP-hard. Therefore it seems unlikely that efficient algorithms to solve them will ever be found. One way of dealing with these problems is to design polynomial time algorithms that give a provably good approximation of the optimal solution. This module will introduce the main techniques for designing such algorithms. The main topics covered are greedy algorithms, layering, polynomial time approximation schemes, (randomised) rounding and LP-relaxation. These notions will be applied to various combinatorial optimisation problems, including set cover, shortest superstring, MAX-SAT, multiway cut and metric TSP.

top

CS5236 Advanced Automata Theory

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS4232
Preclusion(s): Nil
Cross-listing(s): Nil
In computer science, automata are an important tool for many theoretical investigations. Various types of automata have been used to characterise complexity classes. This module covers automata theory in depth, describes the Chomsky hierarchy, and introduces various advanced topics including automata structures, automata on infinite words, automata on trees and the learnability of classes of regular languages from queries and positive data.

top

CS5237 Computational Geometry and Applications

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3230
Preclusion(s): Nil
Cross-listing(s): Nil
The course aims to provide students with a geometric viewpoint in problem-solving. It lays a foundation for solving problems with computational geometric methods, and bridges the gap between theoretical computer science and the real applications by introducing application areas, such as bio-geometric modelling, computer graphics and mesh generation, as well as other engineering problems such as reverse engineering. Topics include: convex-hull algorithms, simplicial complexes, union of balls, Voronoi diagram, Delaunay triangulation, lifting and projecting, alpha shape, surface reconstruction, sphere algebra, orthogonality and complementarity, molecular skin surfaces, curvatures and surface meshing, deformation and morphing, etc.

top

CS5238 Advanced Combinatorial Methods in Bioinformatics

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3230
Preclusion(s): Nil
Cross-listing(s): Nil
Biology data are too enormous. Handling them using brute-force approaches becomes impossible and efficient algorithms are required. This module is an in-depth study of some of these advanced algorithms. Through the course, students are not only taught to understand these algorithms in detail, but are also given chances to solve some research problems in this field. Topics include sequence comparison, structure comparison and prediction, phylogenetic tree reconstruction and comparison, sequencing by hybridisation, Genome rearrangements, gene network, microarray.

top

CS5239 Computer System Performance Analysis

Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1020 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to provide students a working knowledge of computer performance evaluation and capacity planning. They will be able to identify performance bottlenecks, to predict when performance limits of a system will be exceeded, and to characterise present and future workload to perform capacity planning activities. Topics include: performance analysis overview; measurement techniques and tools including workload characterisation, instrumentation, benchmarking, analytical modelling techniques including operational analysis, stochastic queuing network analysis; performance of client-server architectures; capacity planning; case studies.

top

CS5240 Theoretical Foundation of Multimedia

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS1020 or its equivalent) and (MA1102R or MA1505 or (MA1511 and MA1512) or MA1521) and (MA1101R or MA1311 or MA1506 or MA1508E) and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
The module lays the theoretical foundation for graduate students to do research in multimedia: images, videos, audio, speech, graphics and text documents. The module covers the main theoretical issues common to various multimedia research. These issues provide a general framework within which specific techniques in particular research areas can be understood. Topics include: vector and signal representations of multimedia, spatial and frequency analyses, models and parameter estimation methods. Examples will be drawn from different types of media. Upon completion, students will be well-grounded to pursue further research in computer vision, graphics, natural language processing, audio analysis and multimedia applications.

top

CS5241 Speech Processing

Modular Credits: 4
Workload: 2-0-0-3-5
Prerequisite(s): (CS1020 or its equivalent) and CS1231 and (MA1102R or MA1505 or MA1521) and (MA1101R or MA1506)
Preclusion(s): Nil
Cross-listing(s): Nil
This module exposes the graduate students to the fundamental theory of speech processing, focusing primarily on automatic speech recognition. Upon completion of this module, students should be able to perform research on speech recognition topics and commercial speech technology development. Topics covered by this module include: speech signal processing, automatic speech recognition (ASR), continuous speech recognition, acoustic modelling using the Hidden Markov Model (HMM), language modelling for ASR and advanced speech recognition techniques for state-of-the-art large vocabulary continuous speech recognition (adaptation and robustness, discriminative training and decoding strategies).

top

CS5242 Neural Networks and Deep Learning

Modular Credits: 4
Workload: 2-0-0-5-3
Prerequisite(s): CS3244
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides students with the knowledge of deep neural network and enables them to apply deep learning methods effectively on real world problems. The module emphasizes on the understanding of the principles of neural networks and deep learning; practical guidelines and techniques for deep learning; and their applications. Through assignments and projects, students will design, develop, and evaluate deep learning-based solutions to practical problems, such as those in the areas of computer vision, bioinformatics, fintech, cybersecurity, and games.

top

CS5243 3D Game Programming Technology (defunct)

Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS3241
Preclusion(s): Nil
Cross-listing(s): Nil
This module focuses on techniques employed in 3D game engines to achieve real-time rendering. Major topics include game engine architecture; object representations and scene graph; level-of-detail control; terrain processing; visibility computation; image-based rendering; collision detection; real-time shadowing; rendering effects and GPU programming; modelling, sound, lighting and interactive control; animation and dynamic; networked multi-player games; and AI techniques. Upon completing the module, students will be able to design and build game engines from scratch, and to research and develop new game engine techniques.

top

CS5246 Text Processing on the Web

Modular Credits: 4
Workload: 2-0.5-0-5.5-2
Prerequisite(s): CS2103 and (MA1101R or MA1311 or MA1506 or MA1508E) and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
Most information on the web is in the form of encoded free-text formats. Current trends are towards high-level and semantic encoding of text information, and towards the integration of wired and wireless web environments. There is a need to classify and abstract information for display on wide variety of devices with wide ranging processing power and display capabilities. This module introduces the concepts and techniques for the analysis, representation, retrieval, classification and summarisation of unstructured textual information. Upon completion, the students should have the competence to design and implement text processing and mining systems and search engines on the web.

top

CS5247 Motion Planning and Applications (defunct)

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): (CS1020 or its equivalent) and (MA1101R or MA1506)
Preclusion(s): Nil
Cross-listing(s): Nil
Motion is ubiquitous in the physical world. How many manoeuvres does it take to park a car in a tight spot? How can the motion of digital movie actors be synthesized automatically? What can robots do to avoid running into people walking around? How do molecules change shapes over time? This module presents a coherent computational framework for this type of questions. The foundation of the framework and the state-of-the- art algorithms are illustrated in the context of several important applications, including robotics, computational biology, and computer animation. The module covers both classic results and, selectively, advances from recent research.

top

CS5248 Systems Support for Continuous Media

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS2106 and CS4226
Preclusion(s): Nil
Cross-listing(s): Nil
This module is targeted at computer science graduate students and covers the major aspects of building streaming media applications -- from coding to transmission to playback. Issues such as transport protocols, control protocols, caching, buffering, synchronization and adaptations will be examined.

top

CS5249 Audio in Multimedia Systems

Modular Credits: 4 Workload: 2-0-0-6-2 Prerequisite(s): (CS1020 or its equivalent) and CS1231 and (MA1102R or MA1505 or MA1505C or MA1521) and (MA1101R or MA1506) Preclusion(s): Nil Cross-listing(s): Nil This module aims at providing students with an in-depth understanding of modern audio technologies, ranging from low-level audio representation to high-level content analysis; and from basic waveform to advanced audio compression and compressed domain processing. Upon completion of this module, students should be able to perform research such as narrowing the semantic gap between low-level features and high-level concepts. Topics include: discretisation, sampling, audio formats, audio synthesis, spatial audio, feature extraction, speech recognition, audio segmentation and summarisation, source separation, and audio compression.

top

CS5250 Advanced Operating Systems

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CG2271 or CS2106
Preclusion(s): Nil
Cross-listing(s): Nil
The module covers a broad range of issues in the design and implementation of modern advanced operating systems. The topics covered in this module includes OS design strategies (including microkernels, mobile, embedded and real-time operating systems and the component’s interfaces), priority and resource allocation strategies; scheduling algorithms (including for multi-core, multi-processors); naming, protection and security; UI and windowing systems; file system implementations (including network and distributed file systems); failure and recovery; and virtualization and the Internet-ready OS. They extend and provide in-depth coverage of material in earlier prerequisite OS modules.

top

CS5270 Verification of Real-Time Systems (defunct)

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CG3207 or CS4223) and CS3234
Preclusion(s): Nil
Cross-listing(s): Nil
This one-semester first-year graduate course will provide an introduction to the analysis and verification of hard real-time systems. These are systems typically running embedded distributed applications that must meet their temporal constraints in a range of anticipated load and fault scenarios. The course will concentrate on specification and verification aspects of distributed real-time applications. The focus will be on the tools and techniques based on timed automata using, which one can verify that the scheduled behaviour of a realtime distributed system will meet its critical timing constraints. The overall goal is to provide the student with the current scientific and engineering insights that are relevant for the analysis and verification of distributed embedded real-time systems.

top

CS5271 Performance Analysis of Embedded Systems

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): (CS2271 or CG2271 or CS3220 or CS4223) and CS4212
Preclusion(s): Nil
Cross-listing(s): Nil
Modern embedded systems are heterogeneous collections of multiple hardware and software components, which might be designed by different vendors and have different interfaces. This heterogeneity, coupled with the complexity of embedded software and the complex features of modern processors make performance analysis of such systems a difficult problem. In recent years, there has been a lot of work in this area, especially because of its practical importance. In this course, we will discuss some of this work with the aim of getting a broad overview of this area. These will include formal models, algorithms, various simulation techniques, tools and case studies in the specific context of embedded systems, which significantly differ from techniques used for the performance analysis of general computer systems. Our focus will be on system-level design techniques, with the aim of critically accessing known models and methods in terms of their generality and ability at different stages of an embedded system design process. This course will be suitable for both graduate students and honours-year undergraduate students, who are interested in the general area of Computer Engineering. The projects/assignments will consist of a mix of theory and implementation and there will be enough flexibility to incline more towards one or the other direction.

top

CS5272 Embedded Software Design

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): (CG2271 or CS2106) and (CS2103 or its equivalent)
Preclusion(s): Nil
Cross-listing(s): Nil
This course focuses on the design and implementation of software for programmable embedded systems. Embedded computing systems hidden inside everyday electronic devices such as handphones, digital cameras etc. are becoming more and more prevalent. However, the heterogeneous nature of the underlying hardware as well as tight constraints on size, cost, power, and timing pose significant challenges to embedded software development. This course presents techniques that address these distinctive characteristics of embedded software implementation. Topics include embedded software development for programmable processors and reconfigurable hardware, component-based design, optimasations for performance, power, code size, operating system issues, and case studies of available systems.

top

CS5321 Network Security and Management

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to introduce students to the various issues that arise in securing and managing the networks, and study the state-of-the-art techniques for addressing these challenges. A number of most damaging attacks on computer systems involve the exploitation of network infrastructure. This course provides an in-depth study of network attack techniques and methods to defend against them. Topics include basic concepts in network security and management; firewalls and virtual private networks; network intrusion detection; denial of service (DoS); traffic analysis; secure routing protocols; protocol scrubbing; and advanced topics such as wireless network security.

top

CS5322 Database Security

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
Database security has a great impact on the design of today’s information systems. This course will provide an overview of database security concepts and techniques and discuss new directions of database security in the context of Internet information management. Topics covered include: Access control models for DBMSs, Inference controls, XML database security, Encrypted databases, Digital credentials and PKIs, Trust in open systems, and Peer-to-peer system security.

top

CS5330 Randomized Algorithms

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): CS3230
Preclusion(s): Nil
Cross-listing(s): Nil
The module will cover basic concepts in the design and analysis of randomized algorithms. It will cover both basic techniques, such as Chernoff bounds, random walks, and the probabilistic method, and a variety of practical algorithmic applications, such as load balancing, hash functions, and graph/network algorithms. The focus will be on utilizing randomization to develop algorithms that are more efficient and/or simpler than their deterministic counterparts.

top

CS5331 Web Security

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to prepare graduate students for understanding the security of the latest web platform and its interplay with operating systems and the cloud infrastructure. The topics covered include the design of web browsers and web applications, vulnerabilities in web applications and web browsers, design of web scanners, authentication in web-based platforms, security policies and enforcement mechanisms. This module also coverssecurity topics on the interface between the web platform and the backend systems, such as the underlying database systems and cloud infrastructure.

top

CS5332 Biometric Authentication

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): (CS2040 or its equivalent) and (MA1102R or MA1505 or MA1505C or MA1521) and (MA1101R or MA1506) and (ST1232 or ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers authentication methods, different types of biometrics, pattern recognition, performance measurement, spoofing attacks, as well as issues such as privacy, user acceptance, and standards compliance. Students will gain a solid understanding of the fundamentals of the technology underlying biometric authentication, and the key issues to be addressed for successful deployment. Both the theoretical and practical aspects of biometrics authentication will be discussed.

top

CS5339 Theory and Algorithms for Machine Learning

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS3244
Preclusion(s): Nil
Cross-listing(s): Nil
The module aims to provide a broad theoretical understanding of machine learning and how the theory guides the development of algorithms and applications. Topics covered include the approximation capabilities of common function classes used for machine learning, such as decision trees, neural networks, and support vector machines, the sample complexity of learning different function classes and methods of reducing the estimation error such as regularization and model selection, and computational methods used for learning such as convex optimization, greedy methods, and stochastic gradient descent.

top

CS5340 Uncertainty Modelling in AI

Modular Credits: 4 Workload: 3-0-0-3-4 Prerequisite(s): CS3243 and (ST1232 or ST2131 or ST2334) Preclusion(s): Nil Cross-listing(s): Nil The module covers modelling methods that are suitable for reasoning with uncertainty. The main focus will be on probabilistic models including Bayesian networks and Markov networks. Topics include representing conditional independence, building graphical models, inference using graphical models and learning from data. Selected applications in various domains such as speech, vision, natural language processing, medical informatics, bioinformatics, data mining and others will be discussed. 

top

CS5341 Computational Photography (defunct)

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS4243
Preclusion(s): Nil
Cross-listing(s): Nil
This course covers the exciting new area of “Computational photography” which refers to a broad group of imaging and processing techniques that enhances or extends the capabilities of digital photography to produce new photographs that could not have been taken by a traditional camera. Computational photography promises to change the way we think about photography.

top

 CS5342 Multimedia Computing and Applications

Modular Credits: 4
Workload: 2-0-0-6-2 Prerequisite(s): CS3246 or CS4341 Preclusion(s): Nil Cross-listing(s): Nil This course lays the foundation for graduate students to do research in multimedia systems comprising images, videos, speech, and audio. The module covers the main topics common to multimedia computing applications, i.e., multimedia representation, processing, analysis, and synthesis. By teaching the topics together with the computational tools commonly used in multimedia research, it aims to strike a balance between theoretical considerations and practical applications. Upon completion, the students should be able to understand the foundations of multimedia computing, and apply computational tools to the processing of multimedia data in order to create specific applications.

top

CS5343 Advanced Computer Animation

Modular Credits: 4
Workload: 2-0-1-5.5-1.5
Prerequisite(s): (CS2010 or CS2020) and MA1101R, MA1521, CS3241.
Good-to-have background: CS4342, CS5240, Physics I, Multivariable Calculus, Machine Learning. Good-to-have skills: strong in Programming; comfortable with math, reading, and public presentation.
Preclusion(s): Nil
Cross-listing(s): Nil
From the covert digital water in Titanic to the mixed real and virtual actors in Avatar, from the arm-controllable Wii games to the completely full-body-play Xbox Kinect games, computer animation technologies have advanced significantly during the past decades, both in the movie and the game industries. This module reveals all the exciting behind-the-scene techniques that make these movies and games possible, including but not limited to motion capture, fluid animation, facial animation, and full-body character animation. This is a project-based course that aims to provide strong foundation on advanced computer animation methods and prepare students for research in animation.

top

CS5344 Big-Data Analytics Technology

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): BT5110
Preclusion(s): Nil
Cross-listing(s): Nil
This module analysis of data which can not fit in main memory and application of such analysis to web applications. The topics covered include: map-reduce as a tool for creating parallel algorithms that operate on very large amount of data, similarity search, data-streaming processing, search engine technology, clustering of very large, high-dimensional datasets.

top

CS5345 Social and Digital Media Analytics

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
There is a proliferation of social and digital media content data today generated by both consumers and firms. This module aims to introduce concepts, methods and tools for social and digital media analytics, and in the application and management of such analytics efforts in industry sectors such as telecommunications and consumer retail. Topics covered include network data in social and digital media, formal methods for social network analysis, analytics and visualization tools, population and structural models for network dynamics, and various industry case studies on social and digital media analytics. Instructional methods will include lectures, case analyses, assignments and projects.

top

CS5346 Information Visualisation

Modular Credits: 4
Workload: 2-0-2-2-4
Prerequisite(s): (CS2040 or its equivalent) and CS2102 and CS3240 and (ST1232 or ST2132 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to bring together individual pedagogies of design, information, and computation, for teaching the analysis and representation of data for visualisation. Students will learn the methodology of developing and evaluating an information visualisation solution, common information visualisation techniques (such as those for topical, spatial, hierarchical, temporal, and relational data), and methods for scaling up interactive visualisation with big data. After the module, students should be able to use the existing visualisation tools for building useful, interactive, information visualisation to facilitate complex data analytics, exploration, understanding, and pattern discovery.

top

CS6101 Exploration of Computer Science Research

Modular Credits: 4
Workload: 0-2-0-1-7
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces CS graduate students to various research areas in Computer Science. Study groups are organised for major research areas. Each study group provides a forum for students to read, present and discuss research papers, and acquire the basic research skills for literature review and critical comparison of existing work. Students will also gain a first experience in technical presentation and writing.

top

CS6201 Software Reuse (defunct)

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS3214 or CS3215) and CS4211
Preclusion(s): Nil
Cross-listing(s): Nil
This module is based around reading of papers on software re-engineering and reuse. Topics of programme understanding, reverse engineering, domain modelling, design for and with reuse will be covered. The objective is to familiarise students with principles, practicalities and key research issues in areas of software re-engineering and reuse. The business context of re-engineering and reuse are emphasised. Issues of implementing reuse in a company are discussed and relations between software re-engineering methods and software reuse are examined.

top

CS6202 Advanced Topics in Programming Languages

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3211 or CS3212 or CS4212
Preclusion(s): Nil
Cross-listing(s): Nil
This module discusses the contemporary concepts in the design and implementation of major programming languages and systems. It aims to provide students with advanced technical knowledge in evaluating, designing, and implementing an efficient and expressive programming language/system. Topics are selected from a group of contemporary issues that has substantial impact in the development of programming languages/systems, either in terms of performance efficiency or programming expressivity. These include, but not restricted to, computational models, programme semantics, concurrency theory, garbage collection techniques, programme analysis, type inference, programme calculation and transformation, run-time profiling, implementation models, meta-programming.

top

CS6203 Advanced Topics in Database Systems

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3223
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers the topics in database management systems with current research and industrial interests and importance. Examples of topics include multimedia data management, object-oriented database technology, data warehousing and data mining, integration of heterogeneous and legacy systems.

top

CS6204 Advanced Topics in Networking

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS5229 or permission from lecturer
Preclusion(s): Nil
Cross-listing(s): Nil
This graduate level course covers a broad range of the latest developments in computer networking and telecommunications in terms of new techniques and technologies, trends, open research issues and some related new principles and approaches in networking. Selected topics covered via class lectures and assigned readings include developments in the past three years. Upon completion of this course, the student will be able to understand the latest issues and proposed solutions in networking, and acquire the skills and methodology for identifying research problems. This course will help prepare students towards a research career in networking.

top

CS6205 Advanced Modelling & Simulation

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS4237
Preclusion(s): Nil
Cross-listing(s): Nil
The aim of this course is to provide students with the ability to model, simulate and analyse complex systems in a reasonable time. This course is divided into three parts and covers advanced techniques in simulation model design, model execution and model analysis. A selection of model design techniques such as conceptual models, declarative models, functional models, constraint models, and multi-models will be discussed. Model execution techniques include discussion of serial and parallel discrete-event simulation algorithms. For model analysis, topics include input-output analysis, variance reduction techniques and experimental design.

top

CS6206 Advanced Topics in HCI

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3240
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers advanced topics in human computer interaction that are of current research or application interests. Its aim is to examine both the theoretical bases that underlie the design of interfaces and advanced technologies for human computer interactions. A wide range of topics may be covered including psychological theories, organizational behaviour, virtual reality, augmented reality, and computer-supported cooperative work. The module illustrates where and when the theories are applicable, demonstrates the solutions using a combination of scientific theory understanding and engineering modelling. It also illustrates advanced technologies that form part of the solutions.

top

CS6207 Advanced Natural Language Processing

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS4248
Preclusion(s): Nil
Cross-listing(s): Nil
The module aims to prepare students to embark on research in natural language processing (NLP). At the end of the course, the students will have experience in reading and critiquing research papers, and will have undertaken a substantial project on some aspects of NLP research. Topics covered include: Statistical parsing, Word sense disambiguation, SENSEVAL, co-reference resolution, machine translation, question answering.

top

CS6208 Advanced Topics in AI

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3243
Preclusion(s): Nil
Cross-listing(s): Nil
This module covers advanced topics in artificial intelligence that are of current research or application interests. A wide range of topics may be covered including soft computing (fuzzy logic, genetic algorithms, etc.), data mining, machine learning, image and video processing, artificial life, robotics, etc. The exact topics to be taught will depend on the lecturers teaching the module.

top

CS6209 Topics in Cryptography

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to provide a systematic treatment to cryptography techniques. Topics covered include: mathematical foundations; information theory; classical cryptographic systems: substitution cipher, shift cipher, affine cipher, hill ciphers, permutation cipher, etc.; design and analysis of block ciphers; pseudorandom numbers and sequences; design and analysis of stream cipher cryptosystems; identification and entity authentication; key management techniques; Rabin public-key encryption; McEliece publickey encryption; signature schemes: RSA, EIGamal, and digital signature standard; design and analysis of hash functions; cryptographic protocols; and efficient implementations.

top

CS6210 The Art of Computer Science Research

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3230
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide the meta-skills for research in computer sceience. How does one discover great research problems? What are the good strategies for solving research problems? How does one write papers or give presentations with great impact? Students will seek answers to these questions by critically examining and assessing successful and less successful examples of research.

top

CS6211 Analytical Performance Modelling for Computer Systems

Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (ST2131 or ST2334) and CS2105 and CS2106
Preclusion(s): Nil
Cross-listing(s): Nil
Constructing simple mathematical models to describe a computer system can help in analysis and understanding of the characteristics, behavior, and performance of the system.  This module introduces students to the modelling techniques, commonly used models, applications of the models to performance modelling of computer systems, and experimental validation of the models.  After completing the module, students are expected to have the confidence to construct, analyze, and validate a performance model for a computer system that they are interested in.

top

CS6212 Topics in Media

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Nil
Cross-listing(s): Nil
There is a surge in both the industrial interest and the advancement of media technology. This course aims to bring in the latest advanced development in media technology to the postgraduates.

top

CS6213 Topics in Distributed Computing

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3211 or CS4231
Preclusion(s): Nil
Cross-listing(s): Nil
Since computer networks and clusters are becoming more and more ubiquitous, the use of parallelism is no longer restricted to privilege access to powerful supercomputers. The main aim of this module is to provide an in-depth study of some of the recent advances in distributed computing. Topics covered include HLA (High Level Architecture) distributed simulation, performance issues in distributed systems, scalable web servers and some issues in peer-to-peer distributed computing. This is a project-based module and students will have extensive hands-on experience using the software tools we have developed in our research.

top

CS6215 Advanced Topics in Program Analysis

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3230 and CS4212
Preclusion(s): Nil
Cross-listing(s): Nil
Program analysis techniques allow one to automatically analyse the behaviour of a computer program, to identify bugs and performance bottlenecks. This graduate level module covers advanced topics in program analysis that are of current research or application interests. Students will explore the state-of-the-art techniques and systems for program analysis. After taking the module, students will be able to apply advanced automated program analysis tools and techniques to verify, test, and debug programs, as well as be better prepared for conducting research in program analysis and apply them in related research areas.

top

CS6220 Advanced Topics in Data Mining

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS5228
Preclusion(s): Nil
Cross-listing(s): Nil
With the rapid advances of computer and internet technologies, a large amount of data accumulates. Discovering knowledge from the data will give us a competitive advantage. The process of knowledge discovery involves preprocessing the data, mining or discovering patterns from the data, and post-processing the discovered patterns. In this course, we will review and examine the present techniques and the theories behind them and explore new and improved techniques for real world knowledge discovery applications. The course is designed to encourage active discussion, creative thinking, and hands-on project development.

top

CS6221 Modeling and Analysis Techniques in Systems Biology (defunct)

Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisite(s): MA1521 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This course provides an introduction to modeling and analysis techniques relevanttosystems biology with a focus on the dynamics of biochemical networks. We shall introduce models such as ordinary differential equations, Petri nets, Markov chains and dynamic Bayesian networks and show how they can be used to describe and analyse metabolic, signaling and gene regulatory networks. Self-study, tool-based modeling assignments and guest lectures by biologists will also be key components of the course. The core lectures will be largely self-contained and students with diverse backgrounds are expected and welcome to attend.

top

CS6222 Special Topics in Computational Biology

Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS2220
Preclusion(s): Nil
Cross-listing(s): Nil
This lecture/seminar-based module introduces some biological investigations enabled by the latest experimental technologies in biology. We focus on the role of computing in helping biologists with these investigations. Students are expected to attend lectures, give seminars, and do projects. The seminars require the students to read papers related to the selected biological investigations, the enabling experimental technologies, and associated computational solutions. For the projects, students need to develop some methods/algorithms, integrate existing tools, or enhance existing tools with new functions.

top

CS6230 Topics in Information Security

Modular Credits: 4
Workload: 2-0-0-3-5
Prerequisite(s): CS4233 or CS5231
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to prepare graduate students for research and development in information security, by investigating selected topics in cryptography and information theoretic security. Selected topics may include classical issues such as provable security, design of symmetric key ciphers, and public key cryptography, as well as emerging topics, such as pairing-based cryptography, homomorphic encryption, privacy-preserving methods, information hiding, and data forensic. Other topics of current research interests may also be included.

top

CS6231 Topics in System Security

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS3235 or CS4236 or CS5231
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to prepare PhD students for research and development in system security by investigating security issues in various computer science areas such as computer architecture, cloud, networks, machine learning, etc. It addresses security concepts and design principles from an adversarial perspective. Selected topics in system security are covered, such as web security, language-based analysis, privacy-preserving cloud computation, and design of mobile OS. Emerging topics of current research interests may be included as well.

top

CS6234 Advanced Algorithms

Modular credits: 4
Workload: 2-0-0-5-3
Prerequisite(s): CS5234
Preclusion(s): Nil
Cross-listing(s): Nil
This module is aimed at graduate students who are doing or intend to do advanced research in algorithms design and analysis in all areas of computer science. The module covers advanced material on combinatorial and graph algorithms with emphasis on efficient algorithms, and explores their use in a variety of application areas. Topics covered include, but are not restricted to, linear programming, graph matching and network flows, approximation algorithms, randomised algorithms, online algorithms, local search algorithms, algorithms for large datasets. The module will be a seminar-based module that will expose students to current research in these areas.

top

CS6240 Multimedia Analysis

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS4243 or CS5240
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to provide a comprehensive and rigorous treatment of the main approaches in multimedia (document, image, video, and graphics) analysis. Three main themes are covered: (i) representation and modelling of multimedia entities using various modeling approaches, (ii) matching of a model with an input entity, and (iii) derivation of a model from sample entities. It focuses on the nonvector- space approach, which complements the vector-space approach to multimedia analysis.

top

CS6241 Advanced Topics in Computer Graphics

Modular Credits: 4
Workload: 3-0-0-3-4
Preclusion(s): Nil
Cross-listing(s): Nil
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
This course aims to familiarise graduate students with the ongoing research works in interactive 3D graphics. Topics covered may include: interactive technologies, graphics data structures (shape representation), image-based modelling and rendering, creation of artistic artefacts, viewing large models, and interactive modelling.

top

CS5244/6242 Digital Libraries

Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS3245 and CS3246 or their equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This module is targeted to graduate students of computer science and information systems wishing to understand the issues in building, using and maintaining large volumes of knowledge in digital libraries. Fundamentals of modern information retrieval is assumed. The course will focus on how such information retrieval technology operationalises traditional information finding skills of the librarian/cataloger/ archivist, organised around 5S framework for digital library education. Areas within digital libraries that will be covered include collection development, knowledge organisation, DL architecture, user behavior, services, preservation, management and evaluation and DL education and research. Students will round out their knowledge with case studies of how different disciplines (e.g. music, arts, medicine and law) impose different search, usability and maintenance requirements on the digital library.

top

 top

CS6243 Computational Photography

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS4243
Preclusion(s): Nil
Cross-listing(s): Nil
This course covers the exciting new area of “Computational photography”, which refers to a broad group of imaging and processing techniques that enhances or extends the capabilities of digital photography to produce new photographs that could not have been taken by a traditional camera. Computational photography promises to change the way we think about photography.

top

CS6244 Robot Motion Planning & Control

Modular Credits: 4
Workload: 2-0-0-5-3
Prerequisite(s): CS3230 and (MA1101R or MA1311 or MA1506 or MA1508E) and (ST2131 or ST2334)
Preclusion(s): Nil
Cross-listing(s): Nil
An array of new robots with amazing capabilities appeared in the last decade, e.g., self-driving cars, humanoids, and robot vacuum cleaners. They will gradually, but surely, transform our ways of life in the near future. This course presents the key algorithmic ideas and implementation techniques that enable autonomous robot planning and control. It covers the geometric, probabilistic, and dynamic models and the associated methods commonly used in robotics. Application to related fields, such as computer animation and computation biology, will also be discussed.

top

CS6270 Virtual Machines

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS3220 or CS4223
Preclusion(s): Nil
Cross-listing(s): Nil
Virtual machines (VMs) are increasingly being seen as a convenient vehicle for managing heterogeneous resources (e.g. server consolidation) and for solving problems related to mobile code and security. Commercial VMs from VMware and language-level VMs such as the Java Virtual Machine and Microsoft’s .NET framework have become highly popular. This module will summarise the state-of-the-art in virtualisation technology and discuss techniques for designing and implementing modern VMs, hardware-level, operating system-level and language-level VMs, CPU virtualisation concepts, paravirtualisation and binary translation techniques, techniques for memory and input/output virtualisation, and applications of VMs in solving problems related to security and software distribution.

top

CS6280 Datacentre Software Dynamics

Modular Credits: 4
Workload: 2-0-0-4-4
Preclusion(s): Nil
Cross-listing(s): Nil
Prerequisite(s): (CS2010 or CS2020) and CS2100 and CS3211
Datacenter computing favors response time over throughput. Controlling slow response times results in more efficient server use, which is worth literally millions of dollars within the datacenter industry.  This module focuses on understanding and controlling the sources of latency in a datacentre, especially the long-tail delays that ruin a user experience.  The module offers a hands on component where students will perform measurement studies on the latency of various software and hardware subsystems, and investigate the unexpected ways that these layers interact.

top

CS6281 Topics in Computer Science II

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Nil
Cross-listing(s): Nil
Topics will be of an advanced computer science nature and will be selected by the Department.

top

CS6282 Topics in Computer Science III

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Variable, depending on the choice of topics or departmental approval.
Cross-listing(s): Nil
Topics will be of an advanced computer science nature and will be selected by the Department. Refer to the course website or details.

top

CS6283 Topics in Computer Science IV>

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Variable, depending on the choice of topics or departmental approval.
Cross-listing(s): Nil
Topics will be of an advanced computer science nature and will be selected by the Department. Refer to the course website for details.

top

CS6284 Topics in Computer Science V

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Variable, depending on the choice of topics or departmental approval.
Cross-listing(s): Nil
Topics will be of an advanced computer science nature and will be selected by the Department. Refer to the course website for details.

top

CS6285 Topics in Computer Science VI

Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Variable, depending on the choice of topics or departmental approval.
Preclusion(s): Variable, depending on the choice of topics or departmental approval.
Cross-listing(s): Nil
Topics will be of an advanced computer science nature and will be selected by the Department. Refer to the course website for details.

top

CS6880 Advanced Topics in Software Engineering

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS2103
Preclusion(s): Nil
Cross-listing(s): Nil
This module discusses contemporary concepts in software engineering, ranging from domain analysis, requirement analysis and software architectures; formal methods, analysis, design and implementation. It aims to provide students with advanced technical and managerial knowledge in evaluating, designing, and implementing big-scale software. These include: Specialised methods for specific application domains (such as embedded systems or Web systems), in-depth study of software engineering sub-disciplines (such as testing or maintenance), as well as the issues of programming language support for software engineering. The module also provides students the opportunity to understand the methodology involved in software-engineering research.

top

IFS2200 Information Security Immersion Programme

Modular Credits: 6
Workload: 0-0-0-40-0
Prerequisite(s): Completed at least 40 MCs.
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to equip students with a first exposure to working in industry with theories, methods and applications of information security learnt during the first year of university education. Their progress on internship projects will be monitored during internship period, and their performance will be assessed through a Completed Satisfactory/Completed Unsatisfactory (CS/CU) grade at the end of the internship. The internship duration will be approximately 12 weeks full-time.

 

top

IFS4102 Digital Forensics

Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS3235
Preclusion(s): Nil
Cross-listing(s): Nil
Digital forensics encompasses the recovery and investigation of material found in digital devices in relation to cyber crime and other crimes where digital evidence is relevant. This module gives an introduction to principles, techniques, and tools to perform digital forensics. Students will gain a good understanding of the fundamentals of digital forensics; key techniques for performing evidence extraction and analysis on UNIX/Linux systems, Windows systems, networks, Web applications, and mobile devices; and gain exposure to available tools. Some legal aspects of digital forensics will also be discussed.

top

IFS4201 Information Security Industry Capstone Project

Modular Credits: 8
Workload: 0-0-0-40-0
Prerequisite(s): CP3880
Preclusion(s): IFS4205 (InfoSec capstone project); CS3205 (old code) has been changed to IFS4205
Cross-listing(s): Nil
This module aims to equip students with a final exposure to working in industry with theories, methods and applications of information security. Students put their knowledge into practice solving security related problems to a specific, sizable industry project. Students will also sharpen communication skills through close team interactions, consultations, and formal presentations. Students will be jointly guided by supervisors from both the companies/organisations and the school. Their progress will be monitored during the internship period, and their performance will be assessed through letter grades at the end of internship. The project duration is expected to be approximately 16 weeks (full-time).

top

IFS4202 Information Security Practicum Programme

Modular Credits: 6
Workload: 0-0-0-40-0
Prerequisite(s): IFS4201
Preclusion(s): Nil
Cross-listing(s): Nil
This module aims to equip students with a final exposure to working in industry with theories, methods and applications of information security learnt. Students put their knowledge into practice solving security related problems to a specific, sizable industry project. Students will also sharpen communication skills through close team interactions, consultations, and formal presentations. Students will be jointly guided by supervisors from both the companies/organisations and the school. Their progress will be monitored during the internship period, and their performance will be assessed through letter grades at the end of internship. The internship duration will be approximately 12 weeks full-time.

 

top

IFS4205 Information Security Capstone Project

Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): CS3235
Preclusion(s): Students who have taken and passed CS3205 will not be allowed to take IFS4205.
Cross-listing(s): Nil
This module provides students an active learning opportunity to work independently in a group on significant information security-related projects. Project activities can include analyzing the security requirements, designing and implementing security systems, and attacking and defending a system. Students get to apply what they learn in the classroom and gain hands-on experience on solving significant information security problems.


[1] CS3103 must be read together with CS3103L Computer Networks Laboratory. CS3103 and CS3103L together count as one Area Primary.

top