SoC Module Desc2013
SoC Module Desc2013
Deans Office
The aim of this module is to provide a platform for innovative topics in computing that are not part of the regular
curriculum to be presented to the students. This may include topics that are taught due to the availability of a visiting
expert, new developments in an area, or a particular event such as a competition that can be used to impart
appropriate education to the students. The module may be offered as graded or Completed Satisfactory or Completed
Unsatisfactory (CS/CU) as appropriate to the topic.
CP3101A Global Open Source Project
Modular Credits: 4
Workload: 1-1-0-8-0
Prerequisite(s): CS2103 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This module is a part of an experimental global software engineering education initiative spearheaded by
Stanford/Facebook. It is offered as part of the CP3101 Topics in Computing series. Student teams will be associated
with a select group of open source software projects. These projects are characterized by being active in both
development and utilization as well as being open to new and relatively inexperienced committers. They are also
projects that are deemed to be relevant in today's software ecosystem. We also believe there is value in seeding
awareness of how to contribute to open source projects like these among future technology leaders. Ideally there will
also be some value from the development work student teams contribute back to the project as well.
CP3106 Independent Project
Modular Credits: 4
Workload: Nil
Prerequisite(s) :[(CS2102 or CS2102S) and CS2105 and read (CS3214 or CS3215)] or IS3102 or IS4102 or CS3201 or CS3281 or
CS4201 or CS4203
Preclusion(s): Nil
Cross-listing(s): UIS3953R
259
The objective of this project module enables students to undertake substantial project work over a period of six months. Students
may work individually or in groups on projects proposed by staff. They will have good opportunity to apply what they have learnt on
practical problems, be it research-oriented or software development. At the end of the project, the students must submit a report to
their respective supervisors describing in detail what they have accomplished.
CP3108A Independent Work
Modular Credits: 2
Workload: 0-0-0-5-0
Prerequisite(s): Nil
Preclusion(s): CS3108A
Cross-listing(s): Nil
This module allows students to explore their interest areas within the computing field and at the same time learn how to take
initiative, plan and think critically, through the process of independent work. Students have to find a faculty mentor for the
independent work and submit for approval a proposal outlining the learning objectives, schedule and evaluation criteria. The module
will be graded by the faculty mentor and course coordinator as Completed Satisfactory/Completed Unsatisfactory (CS/CU). Credit
will be given for CP3108A (2MC) depending on the workload proposed.
CP3108B Independent Work
Modular Credits: 4
Workload: 0-0-0-10-0
Prerequisite(s): Nil
Preclusion(s): CS3108B
Cross-listing(s): Nil
This module allows students to explore their interest areas within the computing field and at the same time learn how to take
initiative, plan and think critically, through the process of doing independent work. Students have to find a faculty mentor for the
independent work and submit for approval a proposal outlining the learning objectives, schedule and evaluation criteria. The module
will be graded by the faculty mentor and course coordinator as Completed Satisfactory/Completed Unsatisfactory (CS/CU). Credit
will be given for CS3108B (4MC) depending on the workload proposed.
CP3109 Overseas Exploratory Project
Modular Credits: 2
Workload: 0-0-0-2.5-2.5
Prerequisite(s): Nil
Preclusion(s): CS3109
Cross-listing(s): Nil
This module enables students to explore the operations of IT companies through educational visits to various sectors of IT industry.
The visit enables students to develop global perspective of IT operations, and issues related to global IT services, management and
engineering. The visit will be at least one week. Students are required to attend a pre-visit workshop (to attain basic technical
knowledge required to appreciate the visit), organise the visit, and attend a post-visit workshop (to share and report their findings
during the visit). They are also required to submit a report on their accomplishment of educational objectives from the trip. The
module is evaluated as Completed Satisfactory/ Completed Unsatisfactory (CS/CU) based on the continual assessment and final
report.
CP3200 Internship
Modular Credits: 6
Workload: 0-0-0-15-0
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The IT industry and related businesses are developing rapidly. As such, students need to have an opportunity to expose themselves
to the latest industry developments. This internship module requires students to work in a company for a period of three months.
Their progress on projects will be monitored during attachment, and their performance will be graded as Completed
Satisfactory/Completed Unsatisfactory (CS/CU) at the end of the attachment, based on the final project report. During the
attachment, students are not expected to take other modules offered by the university.
CP3201 Industry Seminar
Modular Credits: 2
Workload: 2-0-0-2-1
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The information technology (IT) industry is in an ever-changing state of evolvement and innovation. This module aims to acquaint
students with the latest Information Technology (IT) innovation, practices, and developments. Prominent leaders and practitioners in
260
the IT industry will be invited to impart their knowledge and insights into the latest IT trends and developments from various industry
arenas, such as the finance, healthcare, consulting, manufacturing, and entertainment industries. Students' performance will be
graded as "Completed Satisfactory/Completed Unsatisfactory (CS/CU)" at the end of the module based on the coursework.
CP3208 Undergraduate Research in Computing I
Modular Credits: 4
Workload: Nil
Prerequisite(s): Pass 60 MCs and with approval from respective department.
Preclusion(s): CS3208
Cross-listing(s): UIS3951R
The module (together with CS3209) is part of the UROP (Computing) project. The objective of this module, and the UROP
(Computing) project in general, is to provide an opportunity for talented students to undertake a substantial research project under
the supervision of faculty members of the School of Computing. Through this research collaboration, the student will get to
experience first-hand the challenges and exhilaration of research, discovery and invention. This module should be followed by
CS3209 to complete the UROP (Computing) project.
CP3209 Undergraduate Research in Computing II
Modular Credits: 4
Workload: Nil
Prerequisite(s): CS3208 or CP3208 or UIS3951R
Preclusion(s): CS3209
Cross-listing(s): UIS3952R
The module follows CP3208 and completes the requirements of the UROP (Computing) project. Please see CS3208 for description.
CP3880 Advanced Technology Attachment Programme
Modular Credits: 12
Workload: Nil
Prerequisite(s): [IS2101 and (CS2103 or IS2103 or IS2150)] and preferably completed [IS3102 or (CS3201 and CS3202) or
(CS3281 and CS3282) or IS4102 or (CS4201 and CS4202) or (CS4203 and CS4204)]. Student Selection process will be enforced.
Preclusion(s): CS3880
Cross-listing(s): Nil
This module enables students to apply the computing knowledge they have assimilated in class to industrial projects through sixmonth attachments to companies/organisations. Students under attachment will be jointly guided by supervisors from both the
companies/organisations and the school. Their progress on projects will be monitored during attachment, and their performance will
be assessed on "Completed Satisfactory/ Completed Unsatisfactory (CS/CU) basis at the end of the attachment, based on the
interim and final project reports. During the attachment, students are not expected to take other modules offered by the university.
CP3881 Incubation Project
Modular Credits: 12
Workload: 0-0-0-0-15
Prerequisite(s): Business proposal must be accepted by Evaluation Committee of SoC Incubation Centre
Preclusion(s): CS3881
Cross-listing(s): Nil
This one-year module aims to nurture technopreneurship among students. It enables students to start up a company while studying
in NUS. The start-ups will be placed in the SoC Incubation Centre, through which students receive assistance from the Centre in
managing and operating their companies. Students are required to submit an interim report six months into their business, and a
final report one year into their business. The reports will be assessed by the Incubation Centre Review Committee for students
ability in managing and operating their companies. The module is assessed on Completed Satisfactory/Completed Unsatisfactory
(CS/CU) basis.
CP4101 B.Comp. Dissertation
Modular Credits: 12
Workload: 0-0-0-15-0
Prerequisite(s): Attain at least 70% of the MC requirement for the respective degree
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to enable students to work on an individual research project spanning two semesters, with
approximately 400 hours of work. Students learn how to apply skills acquired in the classroom and also think of innovative ways of
solving problems, and learn to work in a research environment. The project demonstrates a students work ethic, initiative,
determination, and ability to think independently. On completion of the project, the student has to submit a dissertation describing
the project work, and give an oral presentation before a panel of examiners.
261
2.
262
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.
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
Preclusion(s): CG1101, CS1010, CS1010E, CS1101, CS1101C, CZ1102, IT1002, 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. 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.
CS1020 Data Structures and Algorithms I
Modular Credits 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1010 or its equivalent
Preclusion(s): CG1102, CG1103, CS1020E, CS1102, CS1102C, CS1102S, CS2020
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 modelling with concepts of objects, classes and methods, object-oriented problem
formulation and problem solving, data structure implementation strategies, abstraction and encapsulation of data structures, objectoriented 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.
CS1020E Data Structures and Algorithms I
Modular Credits 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1010E
Preclusion(s): CG1102, CG1103, CS1020, CS1102, CS1102C, CS1102S, CS2020
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.
263
Topics covered include object-oriented problem modelling with concepts of objects, classes and methods, object-oriented problem
formulation and problem solving, data structure implementation strategies, abstraction and encapsulation of data structures, objectoriented 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.
CS1231 Discrete Structures
Modular Credits: 4
Workload: 3-1-0-3-3
Prerequisite(s): GCE A Level Mathematics or H2 Mathematics or MA1301
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.
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
Completed 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.
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 Completed 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.
CS2010 Data Structures and Algorithms II
Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): CS1020 or CS1020E or CG1103
Preclusion(s): CG1102, CS1102, CS1102C, CS1102S, CS2020
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.
264
265
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.
CS2103T Software Engineering
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): For SoC students only. CS1020 or its equivalent,
Co-requisite(s): Students have to read CS2101 Effective Communication for Computing Professionals at the same time as this
module.
Preclusion(s): CS2103, 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 systems requirements. Tools for software development, such as Universal 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.
CS2104 Programming Language Concepts
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1020 or its equivalent
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 pseudocode interpretation, static and dynamic semantics, abstract machine, type inferencing, etc.
CS2105 Introduction to Computer Networks
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1020 or its equivalent
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 to network application programming and students should
be able to complete them by using personal computers and the schools network facilities.
CS2106 Introduction to Operating Systems
Modular Credits: 4
Workload: 2-1-1-0-4
Prerequisite(s): CS2100 or EE2007 or EE2024
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 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.
CS2107 Introduction to Information and System Security
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS1010 or its equivalent)
266
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.
CS2220 Introduction to Computational Biology
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1020 or its equivalent. LSM1102 highly recommended.
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.
CS2281 Programming in UNIX
Modular Credits: 3
Workload: 2-0-1-3-2
Prerequisite(s): CS1020 or its equivalent
Preclusion(s): CS1101C or CS1102C
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).
CS2309 CS Research Methodology
Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (CS2010 or its equivalent) 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.
CS3103 Computer Networks and Protocols
Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (CS2105 or EE3204/E) and co-read CS3103L
Preclusion(s): EE4210.
Cross-listing(s): Nil
This module focuses mainly on TCP/IP protocol stack and discusses the design of various protocols in the stack, their semantics
and interoperability issues including concepts behind designing such protocols. The Internet technology protocols like ARP, ICMP,
IP, DHCP, DNS, TCP, UDP, Routing protocols like OSPF and new IP protocol version IPv6 are discussed in detail. The dynamics of
the TCP protocol is discussed in detail including congestion control and its behaviour in the wireless and mobile network
environment. The client server communication paradigm is introduced and students are given the opportunity to develop distributed
application using sockets and/or RPC-XML.
CS3103L Computer Networks Laboratory
Modular Credits: 2
Workload: 0-0-2-0-3
Prerequisite(s): Co-read CS3103
Preclusion(s): Nil
267
Cross-listing(s): Nil
The objective of the module is to augment the concepts learnt in the area of networking through hands on experiments, 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.
CS3201 Software Engineering Project I
Modular Credits: 4
Workload: 1-1-0-5-3
Prerequisite(s): CS2103 and (CS2301 or IS2101)
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-scale software system. This first part focuses on applying best software engineering
practices on the analysis and design of software system. The students will practise analysis of users needs, formulation of
computing requirements to meet the users needs, modelling and design of the computer systems according to the requirements,
and evaluation of the design.
CS3202 Software Engineering Project II
Modular Credits: 4
Workload: 1-1-0-5-3
Prerequisite(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-scale 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.
CS3210 Parallel Computing
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisites: CG2007 or CS2100
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 architectures; 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.
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.
CS3212 Programming Languages
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2010 or its equivalent
Preclusion(s): Nil
268
Cross-listing(s): Nil
This module provides the students with theoretical knowledge and practical skill in the design and implementation of programming
languages. It discusses the theory behind the fundamental programming paradigms (imperative, functional, logic, and objectoriented) 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.
CS3213 Software Systems Design
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 softwares
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.
CS3216 Software Development on Evolving Platforms
Modular Credits: 5
Workload: 2-1-0-8-2
Prerequisites: CS3217. Students without the prerequisite (in particular non-computer science students) but with strong design
knowledge and skills can still take this course with the approval of the instructor.
Preclusion(s): Nil
Cross-listing(s): Nil
This module is a follow-up of CS3217 on 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 the design and rapid iterative development of real-world applications. Students will analyse user needs,
design and develop applications that meet user needs, and address user feedback of the applications. Students will also learn rapid
development using APIs, Open Source tools and other modern tools, and deployment of the applications in the Web or cloud
system.
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.
CS3218 Multimodal Processing in Mobile Platforms
Modular Credits: 4
Workload: 2-1-1-2-4
Prerequisites: (MA1521 and MA1101R and CS1020) or their equivalents
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.
CS3220 Computer Architecture
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS2106
269
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.
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.
CS3223 Database Systems Implementation
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2010 or its equivalent) and (CS2102 or CS2102S)
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 extensions 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.
CS3225 Combinatorial Methods in Bioinformatics
Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): (CS2010 or its equivalent) and (CS2220 or LSM2104)
Preclusion(s): Nil
Cross-listing(s): Nil
After the complete sequencing of a number of genomes, we are at the stage of understanding 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.
CS3230 Design and Analysis of Algorithms
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2010 or its equivalent) 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.
CS3233 Competitive Programming
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): At least grade A- in (CS2010 or its equivalent) or special permission
270
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.
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, 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.
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.
CS3236 Introduction to Information Theory
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): MA1521 and ST2334 and their equivalents
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).
CS3240 Interaction Design
Modular Credits: 4
Workload: 2-1-1-3-3
Prerequisite(s): (CS1020 or its equivalent) or 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 humancomputer 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.
CS3241 Computer Graphics
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): CS1020 or its equivalent
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.
271
Cross-listing(s): Nil
This module teaches some graphics hardware devices, reviews the mathematics related to the understanding of such devices, 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 to the state-of-the-art development in
computer graphics by viewing interesting video clips, and experimenting with demo programmes made available in the course web.
CS3242 3D Modelling and Animation
Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CS3241 and PC1221 and MA1521 and MA1101R.
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.
CS3243 Introduction to Artificial Intelligence
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): (CS2010 or its equivalent) 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.
CS3244 Machine Learning
Modular Credits: 4
Workload: 2-1-0-3-3
Prerequisite(s): (CS2010 or its equivalent) and (ST1232 or ST2131 or ST2132)
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.
CS3245 Information Retrieval
Modular Credits: 4
Workload: 2-1-0-5-2
Prerequisite(s): CS2010 or its equivalent
Preclusion(s): Nil
Cross-listing(s): Nil
This module discusses the basic concepts and methods of information retrieval including capturing, representing, storing,
organising, 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.
CS3246 Multimedia Content Analysis and Search
Modular Credits: 4
Workload: 2-1-1-2-4
Prerequisite(s): CS2103 or CS2103T
Preclusion(s): Nil
Cross-listing(s): Nil
272
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.
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 objective of this module is to introduce techniques for electronic game design and programming. This module covers a range of
important topics including 3D mathematics, game physics, game AI, sound, as well as user interface for computer games.
Furthermore, it will give an overview of computer game design to the students. Through laboratory programming exercises, the
students will have hands-on programming experience with popular game engines and will develop basic games using those
engines.
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 introduces the fundamental concepts in the design and implementation of user interfaces. Emphasis will be placed on
the design and implementation of user interface in general, including graphical user interface. After taking this module, students will
acquire practical knowledge and skills in the design and implementation of general user interfaces. Topics covered include style of
user interface, interface devices, design guidelines, implementation tools, design elements and issues, and information visualisation.
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.
CS3281 Thematic Systems Project I
Modular Credits: 4
Workload: 2-2-0-4-2
Prerequisite(s): CS2103 and have passed at least one primary module in a CS Concentration. Student selection process will be
enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This module is the first 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
users needs, design of the computer systems according to the requirements, and evaluation of the design.
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 Concentration. Student selection process will be
enforced.
Preclusion(s): Nil
Cross-listing(s): Nil
This module is the second of a two-part series on the development of large-scaled computer systems to solve real-world problems
273
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.
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 users needs, formulation of the computing requirements of the desired
solution that meets the users needs, design of the systems according to the requirements, implementation of first-cut prototype for
evaluation purpose, and evaluation of the design.
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.
CS3343 Digital Media Production
Modular Credits: 4
Workload: 2-1-0-4-3
Prerequisite(s): SoC students: CS1020 or its equivalent; CNM students: 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.
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 modules 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.
CS4211 Formal Methods for Software Engineering
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2103
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),
274
275
development. Topics include cost benefit analysis of using automation tools, tool selection, implementation success criteria, tool
evaluations, piloting tools and tool demos.
CS4218 Software Testing and Debugging
Modular Credits: 4
Workload: 2-0-1-2-5
Prerequisite(s): CS2103 or CS2103T
Preclusion(s): Nil
Cross-listing(s) : Nil
This module covers the concepts and practice of software testing and debugging 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.
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
With 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 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.
CS4221 Database Design
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS2102 or CS2102S
Preclusion(s): Nil
Cross-listing(s): Nil
This module addresses the design of relational databases and object oriented databases. Topics covered include: normalisation
theory: functional, multi-valued and join dependency, normal forms, relational database schema design using decomposition method
and synthesising method; entity-relationship approach: normal form entity-relationship diagram, its derivation, and its translation to
relational, network, and hierarchical database schemas; schema integration: view integration and database integration, schema
conflict resolution; nested relations: normal form nested relations, nested relations design using decomposition method and entityrelationship approach; object-oriented databases: basic concepts, inadequacies in object-oriented data models, inheritance conflict
resolution, translate relational database schemas and entity-relationship diagrams to object-oriented database schemas.
CS4222 Wireless Computing & Sensor Networks
Modular Credits: 4
Workload: 2-0-2-4-2
Prerequisite(s): CG3204L or CS3103
Preclusion(s): Nil
Cross-listing(s): Nil
The primary goal of this module is to introduce students to two major types of wireless networks. First, concepts in cellular
networking, including the various generations of cellular networks are introduced. Important concepts related to the design of air
interfaces, MAC protocol, QoS, spectrum allocation, mobility management are presented. Second, the students are introduced to
the emerging area of sensor networks. Here, the major topic covered are MAC, routing and transport protocols. In this module, there
is a strong emphasis on exposing students to practical network system issues by encouraging them to build software prototypes as
part of their assessment.
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
276
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.
CS4224 Distributed Databases
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2102
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).
277
278
279
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 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.
CS4340 Digital Special Effects
Modular Credits: 4
Workload: 2-0-1-5-2
Prerequisite(s): CS3343 and (CS4243 or CS4247 or CS4342).
Preclusion(s): CS5245
Cross-listing(s): Nil
This module aims at teaching multimedia techniques for creating digital special 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.
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.
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 generalpurpose 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.
CS4346 Game Console Programming
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.
CS4347 Sound and Music Computing
Modular Credits: 4
Workload: 2-0.5-0.5-4-3
Prerequisite(s): (CS1020 or its equivalent), (MA1505 or MA1521 or MA1102R) and (MA1101R or MA1506).
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
281
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.
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.
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.
CS5201 Foundation in Theoretical CS
Modular Credits: 4
Workload: 0-0-0-0-10
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The purpose of this module is to test the students on basic concepts in theoretical computer science. In particular, the students will
be tested on the following areas:
(i) Design and Analysis of Algorithms
(ii) Theory of Computation
(iii) Programming Languages
(iv) Logic and Formal Systems.
CS5202 Foundation in Computer Systems
Modular Credits: 4
Workload: 0-0-0-0-10
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The purpose of this module is to test the students on basic concepts in computer systems. In particular, the students will be tested
on the following topics:
(i) Advanced Operating Systems
(ii) Computer Networks II
(iii) Database Management Systems
(iv) Computer Architecture.
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
282
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.
CS5215 Constraint Processing
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS2104 or CS3212
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. The aim of this course is to
discuss the basic aspects of constraint programming. Students will learn problem modelling by means of constraints and the main
techniques used to solve such systems of constraints. The course will focus on the fundamental notions of constraint satisfaction
problems, local consistency, constraint propagation, complete and incomplete constraint solvers, and various search methods.
CS5218 Principles of Programme Analysis
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3212 or CS4212
Preclusion(s): Nil
Cross-listing(s): Nil
Programme analyses 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.
CS5219 Automated Software Validation
Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS3212 or equivalent
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.
CS5220 Databases and the Web
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.
CS5222 Advanced Computer Architecture
Modular Credits: 4
Workload2-0-0-4-4
Prerequisite(s): CS2106 and (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 optimisations 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.
283
hard problems; probabilistic complexity classes; approximation algorithms; and interactive protocols.
CS5231 Systems Security
Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS1231, CS2105 and CS2106
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 wellknown attacks like phishing and buffer overflow will also be covered.
CS5232 Formal Specification & Design Techniques
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS1231 or CS3234
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) real-time distributed systems, and (3) concurrent reactive systems. The course will focus on the state-based notations Z/ObjectZ, event-based notation CSP/Timed-CSP. Graphical modelling notations, such as StateChart and UML (Unified Modelling
Language) will also be addressed.
CS5233 Simulation and Modelling Techniques
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): (CS1020 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 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.
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.)
CS5235 Approximation Algorithms
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
285
metric TSP.
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.
CS5237 Computational Geometry and Applications
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS1231 and 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.
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.
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.
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 MA1505C or MA1521) and (MA1101R or MA1506) 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
286
vision, graphics, natural language processing, audio analysis and multimedia applications.
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).
CS5242 Advanced Neural Networks
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3244
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to examine advanced research topics in two major aspects of neural networks functionality: problemsolving and modelling. It emphasizes the application of neural network techniques to interesting and important problems that may be
difficult to handle using traditional methods. Topics covered under problem-solving include classification, clustering, contentaddressable memory, reinforcement-learning, control, time series. Topics covered under modelling include Grossberg networks
(instarts, outstars, cooperative-competitive networks) data encoding, knowledge representation, modelling behaviour and cognitive
functions.
CS5243 3D Game Programming Technology
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.
CS5246 Text Processing on the Web
Modular Credits: 4
Workload: 2-0.5-0-5.5-2
Prerequisite(s): CS2103 and (MA1101R or MA1506 or 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.
CS5248 Systems Support for Continuous Media
Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS2106 and CS3103
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,
synchronisation and adaptations will be examined.
287
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 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.
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 todays 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.
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.
CS5331 Web Security
Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): CS3235 and CS4236 and CS5231
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 covers security topics on the interface between the web platform and the
backend systems, such as the underlying database systems and cloud infrastructure.
CS5340 Uncertainty Modelling in AI
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass (CS1231 or MA1100) and (ST1232 or ST2131 or ST2334) and CS3243
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.
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
289
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.
CS5343 Advanced Computer Animation
Modular Credits: 4
Workload: 2-0-1-5.5-1.5
Prerequisite(s): (CS2010 or CS2020) and MA1101R and MA1521 and CS3241. Good-to-have background: CS4342; CS5240;
PC1141; MA1104; CS3244. 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.
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.
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.
CS5351 The Business of Software
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Undergraduate students in their 4th year can apply. Open to Ph.D. students.
Preclusion(s): Nil
Cross-listing(s): Nil
The software business well exceeds a trillion dollars, covering companies that sell software products as well as corporations that
depend primarily on software technology for their business. The course will cover the evolution of software business, and the
continuous reshaping of industry. Students will be exposed to market dynamics affecting the birth, growth and transition of these
businesses. The course will investigate business strategies followed by these companies. Students will be encouraged to reflect on
trends emerging from the integration of innovative technologies and evolving consumer and enterprise needs. There will be special
emphasis on Asia-Pacific markets and businesses.
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.
290
291
292
and students will have extensive hands-on experience using the software tools we have developed in our research.
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.
CS6221 Modelling and Analysis Techniques in Systems Biology
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 modelling and analysis techniques relevant to systems 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 modelling 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.
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.
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.
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.
293
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.
CS6270 Virtual Machines
Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): CS2106 and (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 Microsofts .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.
CS6280 Topics in Computer Science I
Modular Credits: 4
Workload: 3-0-0-3-4
Preclusion(s): Nil
Cross-listing(s): Nil
Prerequisite(s): Background in modelling and analysis of reactive systems. Basic knowledge of algorithms. It will be helpful but not
necessary to have some background in biology.
The topics covered will include: models of computation for signalling pathways, parameter estimation techniques, models of gene
regulatory networks, technologies for producing high throughput experimental data, analysis techniques and simulation tools
relevant for computational systems biology.
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.
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 for
details.
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.
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.
295
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.
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.
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.
3.
consultations, and formal presentations. Students will also develop a comprehensive understanding of the issues of business
analytics such as data privacy and security, legal issues and responsibilities, business/technical communication of the results of
data analytics.
BT3102 Computational Methods for Business Analytics
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Competed 64 MCs core modules in Business Analytics degree, and CS1020 and (MA1102R or MA1521)
Preclusion(s): Nil
Cross-listing(s): Nil
Computers are becoming readily accessible, and its use in business analytics is growing more prevalent. This module will introduce
students to computational methods, algorithms and techniques used in business fields such as finance, marketing and economics to
address complex analytics problems. The course will cover topics and algorithms in areas such as optimization methods, numerical
analysis, simulations, Monte-Carlo methods, graph and flow methods, and computational complexity issues to address business
analytics related problems. Students will get the opportunity to learn about these computational methods and issues through handson practice assignments, case analysis discussions, and course projects.
BT4101 B.Sc. (Business Analytics) Dissertation
Modular Credits: 4
Workload: 0-0-0-15-0
Prerequisite(s): Attain at least 70% of the MC requirement for degree
Preclusion(s): Nil
Cross-listing(s): Nil
The objective of this module is to enable students to work on an individual business analytics research project spanning two
semesters, with approximately 400 hours of work. Students learn how to apply concepts and skills acquired from all prior modules
taken and also to think of innovative ways of solving business analytics problems, and learn to work in a research and real-world
business analytics environment. The project seeks to demonstrate the students work ethic, initiative, determination, and ability to
think independently. On completion of the project, the student has to submit a dissertation which describes the project work and
summarizes the findings, as well as to give an oral presentation before a panel of examiners.
BT4211 Data-Driven Marketing
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Competed 80 MCs core modules in Business Analytics degree, and ST3131
Preclusion(s): Nil
Cross-listing(s): Nil
In todays environment, marketing or business analysts require tools and techniques to both quantify the strategic value of marketing
initiatives, and to maximize marketing campaign performance. This module aims to teach students concepts, methods and tools to
demonstrate the return on investment (ROI) of marketing activities and to leverage on data and marketing analytics to make better
and more informed marketing decisions. The course topics covered include marketing performance management, marketing
metrics, data management, market response and diffusion models, market and customer segmentation models, analytic marketing
and value driven segmentation, digital media marketing analytics, etc. Students will have access to real marketing and customer
data sources, and will conduct hands-on marketing analysis using data mining and statistical analysis tools.
BT4212 Search Engine Optimization and Analytics
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Competed 80 MCs core modules in Business Analytics degree.
Preclusion(s): Nil
Cross-listing(s): Nil
This course teaches the concepts, techniques and methods to analyse and improve the visibility of a website or a web page in
search engines via the natural or un-paid (organic or algorithmic) search results. Students will be taught concepts and
knowledge in terms of how search engines work, what people search for, what are the actual search terms or keywords typed into
search engines, which search engines are preferred by their targeted audience, and how to optimize a website in terms of editing its
content, structure and links, and associated coding to both increase its relevance to specific keywords and to remove barriers to the
indexing activities of search engines. Importantly, the module will emphasize the relationship of search engine optimization to digital
marketing in terms of building high quality web pages to engage and persuade, setting up analytics programs to enable sites to
measure results, and improving a site's conversion rate.
BT4221 Big Data Techniques and Technologies
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Competed 80 MCs core modules in Business Analytics degree, and IS1112 and ST3131
Preclusion(s): Nil
Cross-listing(s): Nil
297
This module teaches students concepts, techniques and technologies in handling and analyzing big data sets, i.e., data sets whose
size is beyond the ability of commonly used software tools to capture, manage, and process the data within a tolerable elapsed time.
Common sources and domains of big data include ubiquitous information-sensing mobile devices, web and software logs, financial
trading transactions, large-scale e-commerce, RFID and wireless sensor networks, etc. Conceptual big data topics covered include
big data infrastructure, analytics scalability and processes, etc. Technical frameworks for big data handling and analytics taught
include Hadoop, HBase, Cassandra, MapReduce, Dynamo, R, in-database analytics, mining of data streams, etc.
BT4222 Mining Web Data for Business Insights
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Competed 80 MCs core modules in Business Analytics degree, and CS1020.
Preclusion(s): Nil
Cross-listing(s): Nil
The World Wide Web overwhelms us with immense amounts of widely distributed, interconnected, rich, and dynamic hypertext
information. It has profoundly influenced many aspects of our lives, changing the ways individuals communicate and the manners
businesses are conducted. This module aims to teach students various concepts, methods and tools in mining Web data in the form
of unstructured Web hyperlinks, page contents, and usage logs to uncover deep business insights and knowledge for business
implications that are embedded in the billions of Web pages and servers. Topics covered include various text mining methodologies,
case applications and tutorials on Web data mining for marketing, sales and finance applications, social Web data mining from
Facebook and Twitter, and Web analytics involving clickstream and site traffic data, etc.
IS1103 Computing and Society
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): Nil
Preclusion(s): CS1105/A
Cross-listing(s): Nil
Students will explore the interactions and impact of computing and information technologies on social systems. They will examine
how technological paradigms transform industries, organisations and individuals, and vice versa; how policies and social norms are
developed as they relate to technology use; and investigate the emerging controversies surrounding the regulation of technology in
society. Emphasis is placed on establishing an in-depth understanding of the professional and ethical responsibilities of computing
professionals, and developing an ability to analyse the impact of computing technologies on a local and global scale. Historical and
contemporary studies, cases and examples will be used extensively.
IS1105 Strategic IT Applications
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): Nil
Preclusion(s): CS2250
Cross-listing(s): Nil
This foundation course develops an understanding of the role of IT in the value chain, and the ever-changing competitive arena of
information age. The focus is on the following topics: the nature and characteristics of information technology (IT), the strategic roles
of IT for organisational improvements in operations, planning and decision making. The course is directed toward future IT
specialists, consultants, and managers who must have a basic understanding of information technologies; including identifying
strategic opportunities for Information Systems (IS) deployment, managing IT resources, and evaluating IT investments.
IS1112 E-Business Essentials
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This foundation course aims to provide a broad introduction to the nature of e-business activities from practical, technical, business
and strategic perspectives. It will provide students with a comprehensive understanding of the technical elements that facilitate the
development of the Internet and e-commerce, and the principles and concepts underlying the use of these technologies to facilitate
e-business operations. Topics covered include: the evolution of e-business from operational, technical and strategic perspectives,
basic computer networking and database concepts, website architecture and multimedia on the Internet, internet technologies,
services and applications (e.g., social networking, telephony, P2P, etc), and emerging standards in e-business.
IS2101 Business and Technical Communication (hosted by CELC)
Modular Credits: 4
Workload: 2-0-1-3-4
Prerequisite(s): Student who are required to take ES1000 and English for Academic Purposes must pass the respective module(s).
298
299
understanding of the managerial issues in the development and operation of information systems. The main topics include:
information systems planning, management of systems development and maintenance, implementation management, end-user
computing, data centre operations, information systems control and evaluation, acquisition of IS resources and management of IS
personnel. Case studies will be used to illustrate the issues and solutions.
IS3102 Information Systems Development Project
Modular Credits: 8
Workload: 1-1-0-10-8
Prerequisite(s): CS2261 or IS2103 (applicable to intakes from AY2005/06 to AY2007/08) or [(CS2261 or IS2103) and (CS2301 or
IS2101)] (applicable to intakes from AY2008/09 onwards)
Preclusion(s): CS3214
Cross-listing(s): UIS3954R
Students are required to work (in groups) through a complete Systems Development Life Cycle to develop a business information
system based on techniques and tools taught in CS2103 or IS2103 (old code: CS2261). IS3102 can be viewed as a large-scale
practical module of CS2103 or IS2103. They will also sharpen communication skills through close team interactions, consultations,
and formal presentations. Emphasis will be placed on requirement analysis, system design, user interface design, database design
and implementation efficiency. Students will be assessed based on their understanding and ability to apply software engineering
knowledge on a real-life application system.
IS3150 Digital and New Media Marketing
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and IS1105 and IS1112
Preclusion(s): Nil
Cross-listing(s): Nil
This module introduces students to the principles and practice of marketing management of IT products and services in the digital
economy, and the application of computer decision tools and techniques for marketing on new interactive media, such as the
Internet and mobile phone platforms. The main topics of this module are: the concept of marketing, marketing environment in the
digital economy, marketing research, buyer behaviour, IT market analysis, segmentation, targeting and positioning, IT product
design, pricing, advertising and promotion, marketing channel and campaign management in new media platforms, etc. Cases and
examples will be drawn from the high-tech IT industries.
IS3220 Service Science
Modular Credits: 4
Workload: 3-0-0-4-3
Prerequisite(s): Pass 60 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS3361
Cross-listing(s): Nil
This module aims at providing an interdisciplinary educational foundation for students in Service Science. Service Science is the
application of scientific, management, and engineering disciplines to the tasks (services) that one organisation beneficially performs
for itself and with another. The module will cover the definition and goals of services, creation, operation, marketing and delivery of
services, and the role of IT service systems. It will discuss how IT-enabled services impact an organisation and the external
environment.
IS3221 Enterprise Resource Planning Systems
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): CS2250 or (IS1103 and IS1105)
Preclusion(s): CS3264
Cross-listing(s): Nil
Business resources include employees, business processes, procedures, organisational structure, and computer systems. The
efficiency and effectiveness of an organisation in carrying out its business can be enhanced if managers and employees are given
the support to plan, monitor and control the business. Enterprise Resource Planning (ERP) supports the use of all resources in an
organisation. In this course, students will learn the rationale for having ERP, ERP functionality (such as manufacturing, finance,
distribution and human resource management), ERP and information technology, ERP systems and ERP implementation (planning,
product selection, implementation and optimisation).
IS3222 IT and Customer Relationship Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and {CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS4266
Cross-listing(s): Nil
300
CRM (Customer Relationship Management) systems are the cornerstone of enterprise systems to manage customer relationships
and equity in business organisations. This module aims to introduce concepts in CRM and in the application, implementation and
management of CRM technologies. Topics covered include CRM strategy in B2C and B2B contexts, integrating IS/IT strategy with
CRM objectives, economic returns from CRM, information privacy in CRM, CRM data warehouse and information structure, data
mining techniques for CRM, CRM systems and technologies, CRM system implementation in B2C/B2B contexts, CRM system
vendor selection and evaluation. Instructional methods will include lectures, tutorials, case studies, and/or project-based learning.
IS3223 IT and Supply Chain Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS4267
Cross-listing(s): Nil
This course focuses on the understanding of the role of IT in enabling effective supply chain strategies in the global economy.
Particularly, it focuses on how to plan the integration of supply chain components into a coordinated system using IT. Besides the
basic concepts, students will be exposed to the role of IT in risk pooling and inventory placement, integrated planning and
collaboration, and information sharing in supply chain management.
IS3230 Principles of Information Security
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and [(IS1103 or CS1105) and (CS2105 or IS1112)]
Preclusion(s): CS3254
Cross-listing(s): Nil
With the prevalent use of computers and the internet in the modern organisation, threats and attacks on information systems are also on the rise.
This module introduces the principles of information security, to prepare students for their future roles as IS professionals. Students will understand
that protecting organisational information requires a holistic approach which includes policy, technology and education. The focus of the module is
on principles and concepts, rather than hands-on skills.
IS3240 Economics of E-Business
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and [EC1101 or EC1101E or EC1301 or EC1310 or EC1311 or GCE A Level Economics or
BSP1005]
Preclusion(s): CS3265
Cross-listing(s): Nil
We are living in a New Economy with e-business. E-Business means not only selling products electronically but also the
digitalisation of many conventional business processes: financing, advertising, and managing human resources. These processrelated changes significantly impact intra-business organisation, business-to-business relationships, and business-to-consumer
interactions. As technology advances breathlessly, the ideas, concepts, and models of economic principles need to be applied
carefully. The economic analyses, such as differential pricing, bundling, signalling, licensing, lock-in, or network effects can be
directly applied to the e-business economy. This course aims to give students economic insights to understand e-business and to
make better decisions in e-business.
IS3241 Enterprise Social Systems
Modular Credits: 4
Workload: 3-0-0-2-5
Prerequisite(s): Pass 60 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS3267
Cross-listing(s): Nil
This is an advanced course on the management and technological issues associated with new trends in social systems. The primary
focus of the course will be on enterprise social systems that leverage social networks. Such social systems involve creating social
spaces where people can collaborate online, get advice from trusted individuals and find goods/services through platform-mediated
networks. This course will also emphasise the powerful role that social computing technologies (e.g., social networking sites, blogs,
wikis, recommendation systems, social bookmarking, etc.) are playing and a comprehensive set of business models for
implementing these strategies.
IS3242 Software Quality Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and [IS1105 or CS2250]
Preclusion(s): Nil
Cross-listing(s): Nil
301
As more business operations are dependent on information systems today, the importance of software quality is ever growing. It is
also imperative for IT vendors to meet the increasing demand for high quality IT service and software products by customers. This
module focuses on how to apply quality management concepts and practices to the development and maintenance of software.
Particularly, students will learn about various quality metrics, models, and standards specific to the software domain.
IS3243 Technology Strategy and Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs and [CS2250 or IS1105]
Preclusion(s): CS3251
Cross-listing(s): Nil
Students will understand the theory and practice of business strategy as applied to technology-oriented (and in particular, IToriented) products and services. The module provides students with a broad and in-depth understanding of the theory and practice
of technology strategy and management. These will be applied to information technology-related products and services. Students
will also understand the life cycle and product development process of technological innovations. Case studies form a major part of
this module.
IS3250 Health Informatics
Modular Credits: 4
Workload: 2-1-0-3-4
Prerequisite(s): Pass 60 MCs
Preclusion(s): Nil
Cross-listing(s): Nil
The goal of this module is to provide students with an introduction to the many facets of IT applications in healthcare. With the
increasing use of IT in the healthcare landscape, there has been a steady growth of demands for IT systems and innovations to
streamline healthcare practice and to provide for quality patient care. Lectures will cover IT systems in healthcare settings, decision
making in patient care, standards and interoperability issues, patient data privacy and security and challenges associated with IT
implementation in healthcare enterprises. The module is useful for students with the view to an IT career in healthcare.
IS3260 Gamification for Organisations and Individuals
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 60 MCs, (CS1010 or its equivalent), IS1103 and IS1105
Preclusion(s): Nil
Cross-listing(s): Nil
Gamification is the use of game play thinking and mechanics to engage audiences. For the younger generation, gaming has
become part of their lives, and thus it is desirable to use games to engage them at work and as part of marketing strategies. The
goal of this module is to provide students with an introduction to gamification and funware. Lectures will cover the various game
elements, their psychological impact on people and ways to deploy them. Students will also work on group projects to learn to
deploy gamification.
IS3261 Mobile Apps Development for Enterprise
Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisite(s): CS1020 or CS2020 or their equivalent.
Preclusion(s): Nil
Cross-listing(s): Nil
The proliferation of mobile phones offers unprecedented opportunities for enterprise to empower their employees with computing
and communicating capabilities on the move. It also offers a rich interactive experience for customers. Programming skills for
mobile apps in enterprise environment is therefore an increasingly important asset for the IT workforce. This course will teach mobile
phone programming in a client-server setting. In addition to developing user interface, the students will also learn how to write
mobile apps to communicate with servers via HTTP, making synchronous and asynchronous requests, as well as dealing with
common payload formats such as JSON and HTML.
IS4100 IT Project Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 80 MCs and [CS2250 or (IS1103 and IS1105)] and (CS2261 or IS2103)
Preclusion(s): CS4254 or CS5212 or IS5110
Cross-listing(s): Nil
This module focuses on the management of IS projects. Various managerial issues pertaining to the evaluation and selection of
information systems projects, choice of project organisation, planning, scheduling and budgeting of project activities, and basic
principles in control and project auditing will be covered. The students will also learn how to use practical techniques and tools, such
as network models (PERT/CPM), simulation, and state-of-the-art project management software, in scheduling project activities. This
module serves as a good introduction to information systems project management for students who may participate in coordinating
302
303
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 80 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS4251; Arts and social sciences students reading CNM as a subject/concentration are not allowed to read this
module as CFM/ULR-Breadth.
Cross-listing(s): Nil
This module covers strategic planning to link information needs and technology support to organisational objectives. The module
content includes: IT effects on industries, markets, and organisations; how organisations can use IT to gain competitive advantage;
evaluation of business strategy (plans) and IS strategy (plans); and management of aligning business strategy (plans) and IS
strategy (plans). The module will focus on organisational performance (efficiency, effectiveness, and competitiveness), the use of IT
as a means to enhance organisational performance (not an end in itself), and creative and analytical frameworks and
methodologies.
IS4226 IT Outsourcing and Offshoring Management
Modular Credits: 4
Workload: 3-0-0-5-2
Prerequisite(s): Pass 80 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS4255
Cross-listing(s): Nil
The module focuses on issues faced when IT organisations engage in outsourcing, offshoring and internationalisation. It also
provides students with the theoretical framework and tools to identify core IT capabilities and analyse relevant activities for
outsourcing and offshoring. Besides equipping students with the fundamentals and theoretical perspectives of these phenomena,
the course will also expose them to practical issues ranging from the managerial to economical, from cultural to political, from
methodological to regulatory. Students will graduate with a better appreciation of the IT industry in both developing and developed
countries.
IS4227 Enterprise Service Oriented Architecture
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisites: Pass 80 MCs and [CS3361 or IS3220]
Preclusion(s): CS4258
Cross-listing(s): Nil
This module provides students with an overview of service-oriented architecture (SOA). The key topics covered include SOA
concepts and principles, SOA architecture and design considerations, and SOA relationship with enterprise capabilities. Key
concepts from web services, that are relevant to SOA, will be covered with an emphasis on how these ideas may enhance the
performance of enterprises. Approaches to service-oriented software development (including reliability and security considerations)
will also be included. Overall, this module equips students with the necessary knowledge and skills to implement SOA in enterprises.
IS4231 Information Security Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisites: Pass 80 MCs and IS3230
Preclusion(s): CS3254
Cross-listing(s): Nil
The main focus of this module is the managerial aspects of information security. This module prepares the students for their future
roles as IS managers or IS security professionals. Through this module, students will appreciate the challenges of managing
information security in the modern business organisation. Topics include risk management, security policies and programmes,
managing the security function, and planning for continuity.
IS4232 Topics in Information Security Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisites: Pass 80 MCs and IS3230
Preclusion(s): Nil
Cross-listing(s): Nil
As information security is a fast-developing field, this module will cater to recent or specialised topics in information security. The
content is expected to change from year to year. Possible topics include incident management and business continuity, digital
forensics, and e-commerce and m-commerce security.
IS4233 Legal Aspects of Information Technology
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 80 MCs and [CS2250 or (IS1103 or IS1105)]
304
Preclusion(s): CS4259
Cross-listing(s): Nil
This module is a study of laws that have an impact on the IT industry. Among the topics to be addressed are the intellectual property
of software, database, and multimedia entertainment contents, data privacy, information security, and electronic commerce law. The
goal of the course is to provide basic background in these issues for non-lawyers. The course enables IT professionals to better
handle their legal resources and better understand their commercial opportunities. Real-world examples from the text and current
events will be used to demonstrate the applicability of the law in IT industries.
IS4234 Control and Audit of Information Systems
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 80 MCs and [CS3254 or IS4231]
Preclusion(s): CS4252
Cross-listing(s): Nil
The aim of this module is to provide an in-depth study of information systems security in business organisations. This module
provides an opportunity for students to examine the design of security control, and auditing processes and procedures of information
systems from a management perspective. The course will cover the economics of security, principles of management and
application control, evidence gathering and evaluation, auditing procedures and techniques. The emphasis of this course is on
managerial and business issues rather than technical issues, such as encryption algorithms and virus-manipulation.
IS4240 Business Intelligence Systems
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisites: Pass 80 MCs and [(CS2102 or CS2102S) and [(CS2250 or (IS1103 and IS1105)] and (ST1131 or ST2334)]
Preclusion(s): CS4256
Cross-listing(s): Nil
Business Intelligence (BI) is the application of database and machine learning technologies in business. It enables organisations to
improve decision making, enhance its strategic position, and maintain competitive advantage. This module will introduce students to
the essentials of BI, placing emphasis on database and machine learning technologies for building effective BI Systems. Students
will learn about data warehousing and data visualisation, as well as the various tools that can be employed for intelligent business
decision making. BI cases will be used to highlight the issues and problems encountered by organisations as they develop and
implement BI systems.
IS4241 Social Media Network Analysis
Modular Credits: 4
Workload: 3-0-0-2-5
Prerequisites: Students must have completed 60 MCs and (CS1020 or its equivalent).
Preclusion(s): Nil
Cross-listing(s): Nil
The world of online social media is of much interest for academic, social and e-commerce studies. This module is about the analysis
of social media networks. The module will cover the characteristics of social media networks, the analysis software and methods,
case studies and projects of network analysis.
IS4243 Information Systems Consulting
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): Pass 80 MCs and [CS2250 or (IS1103 and IS1105)]
Preclusion(s): CS4253
Cross-listing(s): Nil
The aims and objectives are:
(i)
to provide an overview of Information Systems (IS) consulting and to develop a more specific understanding of the practice;
(ii)
to provide students with the knowledge of management and IS consulting practices; and
(iii)
to give students the opportunity to be involved in a field consulting project.
IS4250 Healthcare Analytics
Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisites: Students must have completed 80 MCs, IS1105 and (ST1131 or ST2334).
Preclusion(s): Nil
Cross-listing(s): Nil
To a healthcare enterprise, leveraging on healthcare data is strategic for business intelligence, streamlining workflow operations and
providing quality customer service and patient care. Lectures will cover principles and techniques of processing and analysing
healthcare data and interpreting and reporting of results. The module is useful for students with the view to an IT career related to
305
307
308
Workload: 2-0-0-2-6
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module examines some of the recent enterprise system management implementation issues taking place in most business
organisations. It covers a range of system implementation issues from an information system perspective. Using actual cases, the
data collection and analysis methods employed in which these enterprise systems are examined are also discussed. This module is
especially useful for research students (M.Sc. and Ph.D.) and part-time students (M.Comp.) who have prior IT industry experience.
IS5123 IT and Supply Chain Management
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): CS3250
Preclusion(s): Nil
Cross-listing(s): Nil
Students learn how to deploy IT to enable and facilitate supply chain management among organisations. Topics include: overview of
a supply chain, coordination difficulties, pitfalls and opportunities, tradeoffs between inventory and service, and performance
measurement. Students will learn about the role that IT plays in supply chain network design, global supply chain management, the
interface between manufacturing and distribution, and supplier management. The module will also explore the approaches (e.g.,
strategic alliances) and tools for designing and redesigning products and processes for supply chain management, as well as
current industry initiatives for IT in supply chain management.
IS5124 E-Commerce Systems and Applications
Modular Credits: 4
Workload: 2-0-0-2-6
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This course aims to provide a substantive overview to the technology and information systems (IS) concepts underlying electronic
commerce applications from the technical perspective. Students will develop both conceptual and methodological skills that are
critical to conducting excellent e-Commerce projects in their companies. They can also develop interesting research topics or
frameworks. The major topics include e-Commerce technologies, digital products, B2C and B2B applications, e-Transformation, and
other issues such as security and e-Payment. Target students include both practitioners and research students.
IS5125 System Dynamics
Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This course aims to introduce the methodology of, System Dynamics, and its application for IT strategy analysis and development in
the context of IT-driven organisational change. System Dynamics facilitates analysing IT relevant business cases and problems from
the systems thinking perspective, formulating and testing IT problems with simulation techniques, and supporting decision making.
IS5126 Hands-On with Business Analytics
Modular Credits: 4
Workload: 2-0-0-4-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
Business Analytics is the growing, inter-disciplinary field of bringing data to build business insights and support decisions. The goal
of the course is to bridge the divide between technical skills and business know-how. Through learning-by-doing, students will
engage in a series of business case study discussions, guided group projects, and a final semester project of their own design.
Lectures will cover practical skills using the latest tools and techniques, as well as discuss business cases and applications.
Applications will cover areas such as retailing, customer relationship management (CRM), social media, and marketing.
IS5127 Managing and Using New Media
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): General computing knowledge would be useful. Basic knowledge of digital media transport protocols
309
This module provides graduate students with a broad view of the extremely dynamic digital content industry, and the
technology and business factors driving and shaping its directions. Some of these factors cause tectonic shifts which
blindside technology and service incumbents that are either complacent or unable to react with sufficient speed. The
coverage is wide. It includes digital A/V, news and social media, interactive games, content security, and digital
convergence. Also covered will be the business of monetizing commercially valuable content.
IS5128 Organising for IT Innovation
Modular Credits: 4
Prerequisite(s): Basic knowledge of organisations and business functions will be helpful, but not required.
Preclusion(s): Nil
Cross-listing(s): Nil
Workload: 2-0-0-4-4
Successful development and adoption of technological innovation relies not only on the technology itself but also on a shrewd
business model and the surrounding ecosystem where a host of partners co-innovation plays a key role. This module provides
graduate students with the knowledge and tools for managing technological innovations, especially in the dynamic and growing IT
sector. Topics covered include the innovation process, the organizational and environmental context of innovation, the innovators
dilemma, product vs. service innovation, open vs. closed innovation, innovation platforms, and management of intellectual property.
IS5151 Information Security Policies
Modular Credits: 4
Workload: 2-0-0-6-2
Prerequisite(s): CS4252 or IS4234
Preclusion(s): Nil
Cross-listing(s): Nil
In this course, students will learn how management, political leadership, and the technical community must work together to make
effective strategies and policies. The course will examine how to determine the vulnerabilities and risks. They will be exposed to
different competing priorities and factors in the provision of security; legal, cost, and other constraints. From these constraints, they
learn to derive different strategies (both technical and procedural) to achieve the desired security objectives.
IS5152 Decision Making Technologies
Modular Credits: 4
Workload: 3-0-0-3-4
Prerequisite(s): ST2334 or ST1131
Preclusion(s): Nil
Cross-listing(s): Nil
Decision making technologies can support decision making in the financial, operational, marketing and other areas. Efforts have
been directed at finding new machine learning (ML) techniques for decision making and their possible application in solving practical
problems. ML techniques such as artificial neural network methods have been proven to be powerful tools for decision making.
Applications include credit rating, bankruptcy analysis, foreign exchange rate predictions and many others. The techniques covered
in this course include neural networks for classification/ regression/clustering, genetic algorithm for optimisation, decision tree
methods, support vector machine and data mining.
IS6000 Qualifying Examination in IS
Modular Credits: 4
Workload: 20 hours per week
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module evaluates students on essential knowledge of IS research methodologies and application domains of management
information systems. Students will be tested on their ability to integrate method (e.g., survey, experiment, qualitative, technical, or
econometrics) and domain (e.g., knowledge management, electronic commerce) knowledge towards designing studies to
investigate current phenomena in IS.
IS6001 Qualitative Methods for IS Research
Modular Credits: 4
Workload: 2-0-0-3-5
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module will provide an overview of qualitative IS research philosophies and methods. Methods that will be covered include
action research, case study research, ethnographic research, and grounded theory. Apart from data collection procedures
(interviews, focus groups, participant observation, and secondary data), the spectrum of data analysis techniques that will be
discussed include hermeneutics, semiotics, narrative analysis, and protocol analysis. The course will conclude by guiding students
310
311
approaches such as case study, ethnography, action research, and quantitative approaches such as survey, experiment, and
experimental economics. Students are expected to submit a term paper at the end of the course.
IS6101 Topics in Information Systems I
Modular Credits: 4
Workload: 2-0-0-2-6
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 information systems nature and will be selected by the Department.
IS6102 Topics in Information Systems II
Modular Credits: 4
Workload: 2-0-0-2-6
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 information systems nature and will be selected by the Department.
IS6103 Design Science in Information Systems
Modular Credits: 4
Workload: 2-1-0-2-5
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The information systems field has been energised by a flurry of recent activity that centres on the use of design research as an
important research paradigm. This has been widely adopted in the IS (Information Systems) community as Design Science
Research (DSR). In this research oriented class, we will introduce students to the DSR area, including its foundation, techniques
and exemplars. Various techniques and methods will be discussed and debated.
IS6201 Seminars in Information Systems II
Modular Credits: 2
Workload: 2-0-0-0-2
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module will consist of a series of research seminars on current and ongoing research in the information systems area. These
seminars can be given by graduate students, faculty members and visitors. Through active discussions at the seminars, students
will become familiar with current research topics as well as other research issues, such as methodologies and methods. Students
will also acquire research presentation and discussion skills. Students must attend and participate to pass the module.
IS6202 Seminars in Information Systems III
Modular Credits: 2
Workload: 2-0-0-0-2
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module will consist of a series of research seminars on current and ongoing research in the information systems area. These
seminars can be given by graduate students, faculty members and visitors. Through active discussions at the seminars, students
will become familiar with current research topics as well as other research issues, such as methodologies and methods. Students
will also acquire research presentation and discussion skills. Students must attend and participate to pass the module.
4.
computation (hardware, software, systems, etc.). This module will be graded as Completed Satisfactory/Completed Unsatisfactory
(CS/CU).
FMC1202 Freshman Seminar: The Wonderfully Weird World of Software
Modular Credits: 4
Workload: 0-3-0-4-3
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
In this course, students will examine a number of interesting real-world software phenomena drawn from diverse domains such as
viruses, embedded applications, search engines, web applications, mobile applications, operating systems, virtual reality
applications and security applications. The mode of delivery is instructor-led discussions flanked with preparatory and follow-up
assignments. The discussion offers an outside-in look at the respective software, leading to an increased awareness and interest
in the related computer science subject areas. Small group teaching with emphasis on inquiry, discovery and exchange of ideas will
be used. This module will be graded as Completed Satisfactory/Completed Unsatisfactory (CS/CU).
FMC1203 Freshman Seminar: Computational Thinking
Modular Credits: 4
Workload: 0-3-0-4-3
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
The reach and applicability of computing is vast essentially all of human endeavours. To deal with the complexity, computer
scientists have developed thinking methods that are suited for scaling to large and difficult problems. In this course, students will be
exposed to computational thinking methods such as the use of abstraction, compositionally, divide and conquer, caching, reduction,
invariants, randomness, and parallelism. Students will do case studies to compare and contrast computational thinking with thinking
methods used to organise non-computing domains. Small group teaching with emphasis on discovery and insights as well as
communication skills will be used. This module will be assessed on a grade basis.
FMC1204 Freshman Seminar: Innovating Radically with IT
Modular Credits: 4
Workload: 0-3-0-4-3
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
This module provides freshmen with insights into how IT has radically transformed industries in the past few decades. A few key
industries that are strategic to Singapore (as documented in the iN2015 national IT strategic plan) will be covered. Freshmen will
develop insights through readings, field research, and interviews with IT pioneers in these industries. They will share their insights
with the class through seminars. Freshmen will then undertake a forward looking project to interpret how emerging forms of IT may
be exploited to radically transform these key industries in the future. This module will be graded as Completed
Satisfactory/Completed Unsatisfactory (CS/CU).
FMC1205 Freshman Seminar: Practical Information Security
Modular Credits: 4
Workload: 0-3-0-4-3
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
In order to appreciate the science of information security, one needs to understand how computer systems can be compromised by
insecure design and implementation. In this course, students will be exposed to common security vulnerabilities of modern
computing systems, the standard tools that can be deployed to guard against such vulnerabilities, and the best practices to design
systems that can minimize not only known security issues, but also future risk arising from currently unknown security attacks.
Students will do case studies to investigate how they could potentially compromise some standard computing systems, and propose
solutions to mitigate against the risks.
FMC1206 Freshman Seminar: Computing for a Better World
Modular Credits: 4
Workload: 0-3-0-3-4
Prerequisite(s): Nil
Preclusion(s): Nil
Cross-listing(s): Nil
Poverty, energy, disease, and environment are a few of the grand challenges that humanity faces today. Computing, being a field
that underlies modern sciences, plays an important role in addressing these challenges. This module aims to expose students to
how computing is used to tackle these and other grand challenges faced by humanity. Topics depend on the latest scientific
313
development. Example topics include the use of computing to facilitate efficient farming, monitor the environments, simulate
climate change, sequence genome, detect pandemic outbreak, and search for a cure for diseases. This module will be graded as
Completed Satisfactory/Completed Unsatisfactory (CS/CU).
5.
314
315