B.Sc. in Computer Science — CUHK Engineering Major Requirements (2026–27)

Admission code: CSCIN · 75 units · For students admitted in 2026–27

Students are required to complete a minimum of 75 units of courses as follows:

1.Faculty Package9 units

ENGG1110/ESTR1002, ENGG1111, ENGG1120/ESTR1005, ENGG1125/ESTR1007[a]

Show 7 courses
CourseTitleTerm 1Term 2Enrolment information
ENGG 1110Problem Solving By Programming
Not for students who have taken CSCI1020 or 1030 or 1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ESTR1002 or 1100 or 1102.
ESTR 1002Problem Solving By Programming
Not for students who have taken CSCI1020, CSCI1030, CSCI1110, CSCI1120, CSCI1130, CSCI1510, CSCI1520, CSCI1530, CSCI1540, ENGG1110, ESTR1100 or ESTR1102.
ENGG 1111 [0]AI Literacy Workshop
Co-requisite: ENGG1110.
ENGG 1120Linear Algebra for Engineers
Not for students who have taken ENGG1410 or ESTR1004 or ESTR1005 or MATH1030 or MATH1038.
ESTR 1005Linear Algebra for Engineers
Not for students who have taken ENGG1120 or ENGG1410 or ESTR1004 or MATH1030 or MATH1038.
ENGG 1125Single Variable Calculus for Engineers
Not for students who have taken ESTR1007 or MATH1510.
ESTR 1007Single Variable Calculus for Engineers
Not for students who have taken ENGG1125 or MATH1510.

2.Foundation Courses16 units

(a)Any one course from the following3 units

Chemistry Courses: CHEM1380

Life Science Courses: LSCI1001, 1003

Physics Courses[b]: ENGG1310/ESTR1003, PHYS1003, 1110

Show 7 courses
CourseTitleTerm 1Term 2Enrolment information
CHEM 1380Basic Chemistry for Engineers
LSCI 1001Basic Concepts in Biological Sciences
Not for students who have taken LSCI1002 or 1003.
LSCI 1003Life Sciences for Engineers
Not for students who have taken LSCI1001.
ENGG 1310Engineering Physics: Electromagnetics, Optics and Modern Physics
Not for students who have taken ENGG2520, ESTR2006 or ESTR1003.
ESTR 1003Engineering Physics: Electromagnetics, Optics and Modern Physics
Not for students who have taken ENGG1310 or ENGG2520 or ESTR2006.
PHYS 1003General Physics for Engineers
PHYS 1110Engineering Physics: Mechanics and Thermodynamics

(b)3 units

CSCI1130/ESTR1102

Show 2 courses
CourseTitleTerm 1Term 2Enrolment information
CSCI 1130Introduction to Computing Using Java
Not for students who have taken AIST1110 or CSCI1030 or CSCI1120 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ESTR1100 or ESTR1102.
ESTR 1102Introduction to Computing Using Java
Not for students who have taken AIST1110 or ESTR1100 or CSCI1030, CSCI1120, CSCI1130, CSCI1510, CSCI1520, CSCI1530, CSCI1540, CSCI1550.

(c)10 units

ENGG1130/ESTR1006[c], ENGG2440/ESTR2004, ENGG2760/ESTR2018, ENGG2780/ESTR2020

Show 8 courses
CourseTitleTerm 1Term 2Enrolment information
ENGG 1130Multivariable Calculus for Engineers
Pre-requisite(s): ENGG1125 or ESTR1007 or MATH1510.Not for students who have taken ENGG1410 or ESTR1004 or 1006 or MATH2010 or 2018 or 2020 or 2028.
ESTR 1006Multivariable Calculus for Engineers
Pre-requisite(s): ENGG1125 or ESTR1007 or MATH1510.Not for students who have taken ENGG1130 or ENGG1410 or ESTR1004 or MATH2010 or MATH2018 or MATH2020 or MATH2028.
ENGG 2440Discrete Mathematics for Engineers
Not for students who have taken CSCI2110 or ENGG2460 or ESTR2004 or ESTR2010 or ESTR2362 or MIEG2440.
ESTR 2004Discrete Mathematics for Engineers
Not for students who have taken CSCI2110 or ENGG2440 or ENGG2460 or ESTR2010 or ESTR2362 or MIEG2440.
ENGG 2760 [2]Probability for Engineers
Not for students who have taken ENGG2430 or 2450 or 2470 or ESTR2002 or 2005 or 2012 or 2018 or 2308 or 2362 or IERG2470 or MIEG2440.
ESTR 2018 [2]Probability for Engineers
Not for students who have taken ENGG2430 or ENGG2450 or ENGG2470 or ENGG2760 or ESTR2002 or ESTR2005 or ESTR2012 or ESTR2308 or ESTR2362 or IERG2470 or MIEG2440.
ENGG 2780 [2]Statistics for Engineers
Not for students who have taken ENGG2430 or ENGG2450 or ESTR2002 or ESTR2005 or 2020.Co-requisite(s): ENGG2760 or ESTR2018 or 2308 or IERG2470.
ESTR 2020 [2]Statistics for Engineers
Not for students who have taken ENGG2430 or ENGG2450 or ENGG2780 or ESTR2002 or ESTR2005.Co-requisite(s): ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.

3.Required Courses33 units

(a)27 units

CENG3420, CSCI2100/ESTR2102, CSCI3100, 3130, CSCI3150/ESTR3102, CSCI3160/ESTR3104, CSCI3180/ESTR3106, CSCI3250, 3251, ENGG2020/ESTR2104

Show 15 courses
CourseTitleTerm 1Term 2Enrolment information
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
ESTR 2102Data Structures
Not for students who have taken CSCI2100 or CSC2520.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the pre-requisite will be waived.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
ESTR 3102Introduction to Operating Systems
Not for students who have taken CSCI3150.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102.For senior-year entrants, the pre-requisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
ESTR 3104Design and Analysis of Algorithms
Not for students who have taken CSCI3160 or CSCI3190.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102, AND CSCI2110 or ENGG2440 or ESTR2004.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
ESTR 3106Principles of Programming Languages
Not for students who have taken CSCI3180.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102.For senior-year entrants, the pre-requisite will be waived.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
ENGG 2020Digital Logic and Systems
Not for students who have taken ELEG2120 or ESTR2104.
ESTR 2104Digital Logic and Systems
Not for students who have taken ELEG2120 or ENGG2020.

(b)Research Component Courses[d]6 units

CSCI4998, 4999

Show 2 courses
CourseTitleTerm 1Term 2Enrolment information
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.

4.Choose any ONE from the following seven options17 units

(a)General Computer Science17 units

Elective Courses17 units

Choose 17 units from AIST4010/ESTR4140, BMEG3102 or CSCI3220/ESTR3110, CSCI3230/ESTR3108, CSCI4160/ESTR4104, CSCI4180/ESTR4106, CSCI4430/ESTR4120, ENGG1820, (ENGG3802 and 3803), IERG4300/ESTR4300, STAT2005, 2006 and the AIST/CENG/CSCI courses of which at least 12 units must be from courses at 3000 or above level

Show 20 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
ESTR 4140Foundation of Applied Deep Learning
Pre-requisite: CSCI3230 or CSCI3320 or ESTR3108.Not for students who have taken AIST4010.
BMEG 3102Bioinformatics
Not for students who have taken ELEG4120 or CSCI3220 or ESTR3110.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
ESTR 3110Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or CSCI3220.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
ESTR 3108Fundamentals of Artificial Intelligence
Not for students who have taken CSCI3230.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102 or equivalent.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
ESTR 4104Distributed and Parallel Computing
Not for students who have taken CSCI4160.Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
ESTR 4106Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken CSCI4180.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
ESTR 4120Data Communication and Computer Networks
Not for students who have taken IERG3310 or CSCI4430 or ESTR3310.Pre-requisite: CSCI3150 or CENG3150 or ESTR3102.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

AIST/CENG/CSCI Courses

Show 113 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 1000 [1]Introduction to Artificial Intelligence and Machine Learning
AIST 1110Introduction to Computing using Python
Pre-requisite: ENGG1110 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI2040 or ESTR1100 or ESTR1102 or IERG1080.
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 1020 [1]Hands-on Introduction to C++
Not for students who have taken CSCI1120 or 1520 or 1540 or ESTR1100.
CSCI 1030 [1]Hands-on Introduction to Java
Not for students who have taken CSCI1130 or 1530 or ESTR1102.
CSCI 1120Introduction to Computing Using C++
Not for students who have taken AIST1110 or CSCI1020 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ESTR1100 or ESTR1102.
CSCI 1130Introduction to Computing Using Java
Not for students who have taken AIST1110 or CSCI1030 or CSCI1120 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ESTR1100 or ESTR1102.
CSCI 1510Computer Principles and C Programming
Not for students who have taken AIST1110 or CSCI1120 or CSCI1130 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
CSCI 1520Computer Principles and C++ Programming
Not for students who have taken AIST1110 or CSCI1020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
CSCI 1530Computer Principles and Java Programming
Not for students who have taken AIST1110 or CSCI1030 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
CSCI 1540Fundamental Computing with C++
Not for students who have taken AIST1110 or CSCI1020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1550 or ESTR1100 or ESTR1102.
CSCI 1550Computer Principles and Python Programming
Not for students who have taken ENGG1110 or ENGG1120 or ENGG1130 or CSCI1040 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI2040 or AIST1110 or IERG1080.Not for students of Faculty of Engineering.
CSCI 1580Visual Programming
Not for students who have taken ENGG1100 or ENGG1110 or ENGG2600 or 2601 or ESTR1000 or 1002 or 2008.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.

(b)Stream 1: Intelligence Science17 units

Required Courses

CSCI3230/ESTR3108

Show 2 courses
CourseTitleTerm 1Term 2Enrolment information
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
ESTR 3108Fundamentals of Artificial Intelligence
Not for students who have taken CSCI3230.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102 or equivalent.

Elective Courses9 units

Choose at least 9 units from the following9 units

AIST3120, AIST3510/SEEM3510, AIST4010/ESTR4140, AIST4020, 4030, 4040, 4050, 4060, 5040, 5050, BMEG3102 or CSCI3220/ESTR3110, CSCI3320, 4190, 4230, 5030, 5150, CSCI5180/ENGG5103, CSCI5280/ENGG5104, CSCI5350, 5390, 5540, 5640, 5660, 5690, ENGG5781, IERG3320, IERG4300/ESTR4300

Show 34 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
SEEM 3510Human-computer Interaction
Not for students who have taken AIST3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
ESTR 4140Foundation of Applied Deep Learning
Pre-requisite: CSCI3230 or CSCI3320 or ESTR3108.Not for students who have taken AIST4010.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
BMEG 3102Bioinformatics
Not for students who have taken ELEG4120 or CSCI3220 or ESTR3110.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
ESTR 3110Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or CSCI3220.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5180(not found in course_info)
ENGG 5103Techniques for Data Mining
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5724 or CSCI5180.
CSCI 5280(not found in course_info)
ENGG 5104Image Processing and Computer Vision
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5711 or CSCI5280.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
ENGG 5781Matrix Analysis and Computations
For MPhil-PhD Engineering Students.
IERG 3320Social Media and Human Information Interaction
Prerequisite: IERG2051 or MIEG2051 or ENGG2030 or ESTR2302 or ESTR2360 or ESTR2206.Not for students who have taken ESTR3306.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820, (ENGG3802 and 3803), STAT2005, 2006

Show 106 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

(c)Stream 2: Database and Information Systems17 units

Required Courses

CSCI3170

Show 1 course
CourseTitleTerm 1Term 2Enrolment information
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.

Elective Courses9 units

Choose at least 9 units from the following9 units

AIST4030, BMEG3102 or CSCI3220/ESTR3110, CSCI3230/ESTR3108, CSCI3320, 4140, CSCI4160/ESTR4104, CSCI4180/ESTR4106, CSCI4190, CSCI4430/ESTR4120, CSCI5010, 5120, CSCI5180/ENGG5103, CSCI5470/ENGG5105, CSCI5550, 5630, 5650, 5660, ENGG5781, IERG4300/ESTR4300, IERG4330, SEEM3490, 4630

Show 31 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
BMEG 3102Bioinformatics
Not for students who have taken ELEG4120 or CSCI3220 or ESTR3110.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
ESTR 3110Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or CSCI3220.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
ESTR 3108Fundamentals of Artificial Intelligence
Not for students who have taken CSCI3230.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102 or equivalent.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
ESTR 4104Distributed and Parallel Computing
Not for students who have taken CSCI4160.Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
ESTR 4106Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken CSCI4180.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
ESTR 4120Data Communication and Computer Networks
Not for students who have taken IERG3310 or CSCI4430 or ESTR3310.Pre-requisite: CSCI3150 or CENG3150 or ESTR3102.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5180(not found in course_info)
ENGG 5103Techniques for Data Mining
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5724 or CSCI5180.
CSCI 5470(not found in course_info)
ENGG 5105Computer and Network Security
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5726 or CSCI5470.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
ENGG 5781Matrix Analysis and Computations
For MPhil-PhD Engineering Students.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
IERG 4330Programming Big Data Systems
Pre/Co-requisite: ENGG4030 or ESTR4300 or IERG4300.Not for students who have taken ESTR4316 or IEMS5730.
SEEM 3490Information Systems Management
SEEM 4630E-Commerce Data Mining

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820, (ENGG3802 and 3803), STAT2005, 2006

Show 106 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

(d)Stream 3: Rich Media17 units

Required Courses

CSCI3260

Show 1 course
CourseTitleTerm 1Term 2Enrolment information
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.

Elective Courses9 units

Choose at least 9 units from the following9 units

AIST2010, 3110, 3120, AIST3510/SEEM3510, CSCI3230/ESTR3108, CSCI3280, 3290, 3330, 4120, CSCI4160/ESTR4104, CSCI4430/ESTR4120, CSCI5210, CSCI5280/ENGG5104, CSCI5390, 5640

Show 20 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
SEEM 3510Human-computer Interaction
Not for students who have taken AIST3510.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
ESTR 3108Fundamentals of Artificial Intelligence
Not for students who have taken CSCI3230.Pre-requisite: CSCI2100 or CSCI2520 or ESTR2102 or equivalent.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
ESTR 4104Distributed and Parallel Computing
Not for students who have taken CSCI4160.Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
ESTR 4120Data Communication and Computer Networks
Not for students who have taken IERG3310 or CSCI4430 or ESTR3310.Pre-requisite: CSCI3150 or CENG3150 or ESTR3102.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5280(not found in course_info)
ENGG 5104Image Processing and Computer Vision
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5711 or CSCI5280.
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820, (ENGG3802 and 3803), IERG4300/ESTR4300, STAT2005, 2006

Show 108 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

(e)Stream 4: Distributed Systems, Networks and Security17 units

Required Courses

CSCI4180/ESTR4106

Show 2 courses
CourseTitleTerm 1Term 2Enrolment information
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
ESTR 4106Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken CSCI4180.

Elective Courses9 units

Choose at least 9 units from the following9 units

AIST4020, 4060, CSCI3120, 3310, CSCI4130/IERG4130/ESTR4306, CSCI4140, CSCI4160/ESTR4104, CSCI4190, 4200, CSCI4430/ESTR4120, CSCI5390, CSCI5470/ENGG5105, CSCI5540, 5550, 5600, 5630, 5650, 5680, 5700, IERG4210, IERG4300/ESTR4300, IERG4350

Show 28 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
CSCI 3120Compiler Construction
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
IERG 4130Introduction to Cyber Security
Not for students who have taken CSCI4130 or ESTR4306 or IEMS5710.
ESTR 4306Introduction to Cyber Security
Not for students who have taken IERG4130 or IEMS5710 or CSCI4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
ESTR 4104Distributed and Parallel Computing
Not for students who have taken CSCI4160.Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
ESTR 4120Data Communication and Computer Networks
Not for students who have taken IERG3310 or CSCI4430 or ESTR3310.Pre-requisite: CSCI3150 or CENG3150 or ESTR3102.
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5470(not found in course_info)
ENGG 5105Computer and Network Security
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5726 or CSCI5470.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
IERG 4210Web Programming and Security
Not for students who have taken IEMS5718.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
IERG 4350Cloud Computing Security

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820 (ENGG3802 and 3803), STAT2005, 2006

Show 106 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

(f)Stream 5: Theoretical Computer Science17 units

Elective Courses12 units

Choose at least 12 units from the following12 units

AIST4040, 4050, 5040, 5050, BMEG3102 or CSCI3220/ESTR3110, CENG5280, CSCI3120, 3350, 3360, 4230, 4240, 5010, 5350, 5370, 5440, 5660, 5690, IERG3300/ESTR3304, IERG4150/ESTR4322, MATH4230

Show 24 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
BMEG 3102Bioinformatics
Not for students who have taken ELEG4120 or CSCI3220 or ESTR3110.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
ESTR 3110Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or CSCI3220.
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 3120Compiler Construction
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
IERG 3300Introduction to Stochastic Processes
Pre-requisite: IERG2470 or MIEG2440 or ENGG2430 or 2450 or 2460 or 2470 or ESTR2002 or 2005 or 2010 or 2012 or 2018 or 2308 or 2362.Not for students who have taken ESTR3304 or IERG4140 or IERG5300 or ENGG5302 or MATH4240.
ESTR 3304Introduction to Stochastic Processes
Pre-requisite: IERG2470 or MIEG2440 or ENGG2430 or ENGG2450 or ENGG2460 or ENGG2470 or ESTR2002 or ESTR2005 or ESTR2010 or ESTR2012 or ESTR2018 or ESTR2308 or ESTR2362.Not for students who have taken IERG3300, IERG4140, IERG5300 or ENGG5302 or MATH4240.
IERG 4150Introduction to Cryptography
Not for students who have taken ESTR4322.
ESTR 4322Introduction to Cryptography
Not for students who have taken IERG4150.
MATH 4230Optimization Theory

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820, (ENGG3802 and 3803), IERG4300/ESTR4300, STAT2006

Show 107 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

(g)Stream 6: Data Analytics17 units

Required Courses

CSCI3320

Show 1 course
CourseTitleTerm 1Term 2Enrolment information
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.

Elective Course 16 units

Choose at least 6 units from the following6 units

AIST3120, AIST4010/ESTR4140, AIST4030, 4050, BMEG3102 or CSCI3220/ESTR3110, CSCI3170, 3340, CSCI4180/ESTR4106, CSCI4190, 4230, 5030, 5120, 5150, CSCI5180/ENGG5103, CSCI5540, 5550, 5630, 5640, 5650, 5660, IERG4230, IERG4330/ESTR4316

Show 28 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
ESTR 4140Foundation of Applied Deep Learning
Pre-requisite: CSCI3230 or CSCI3320 or ESTR3108.Not for students who have taken AIST4010.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
BMEG 3102Bioinformatics
Not for students who have taken ELEG4120 or CSCI3220 or ESTR3110.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
ESTR 3110Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or CSCI3220.
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
ESTR 4106Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken CSCI4180.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5180(not found in course_info)
ENGG 5103Techniques for Data Mining
For students in MSc Computer Science or MPhil-PhD programmes under Faculty of Engineering or UG Computer Science or UG Computer Engineering;Not for students who have taken CMSC5724 or CSCI5180.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
IERG 4230Introduction to Internet of Things
IERG 4330Programming Big Data Systems
Pre/Co-requisite: ENGG4030 or ESTR4300 or IERG4300.Not for students who have taken ESTR4316 or IEMS5730.
ESTR 4316Programming Big Data Systems
Not for students who have taken IERG4330 or IEMS5730.Co-/Pre-requisite(s): ENGG4030 or ESTR4300 or IERG4300.

Elective Course 23 units

Choose at least 3 units from the following3 units

RMSC4002, STAT3210, 4002, 4003, 4006

Show 5 courses
CourseTitleTerm 1Term 2Enrolment information
RMSC 4002Financial Data Analytics with Machine Learning
Prerequisite:RMSC2001, STAT2001 and STAT2006, or consent of instructor.
STAT 3210Statistical Techniques in Life Sciences
Not for students who have taken STAT3004.
STAT 4002Applied Multivariate Analysis
STAT 4003Statistical Inference
STAT 4006Categorical Data Analysis

Remaining units can be chosen from the following

AIST/CENG/CSCI courses at 2000 or above level, ENGG1820, (ENGG3802 and 3803), IERG4300/ESTR4300, STAT2005, 2006

Show 108 courses
CourseTitleTerm 1Term 2Enrolment information
AIST 2010Introduction to Computer Music: From Analysis to Algorithmic Music
Prerequisite: AIST1110 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or ENGG1110 or ESTR1002 or ESTR1100 or ESTR1102.
AIST 2601 [2]Technology, Society and Engineering Practice
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 2602 [1]Engineering Practicum
Not for students who have taken CSCI3250 or CSCI3251 or ENGG2601 or ENGG2602.
AIST 3010 [2]Numerical Optimization
Pre-requisite: ENGG1120/ESTR1005 or ENGG1130/ESTR1006 or MATH1510.Not for students who have taken AIST3030 or ESTR3112 or ESTR3114.
AIST 3020Introduction to Computer Systems
Not for students who have taken CSCI3150 or ESTR3102.Prerequisite: (ENGG1110 or ESTR1002) AND (ENGG2440 or ESTR2004).
AIST 3030Numerical Optimization
Pre-requisite: ENGG1120 or ENGG1130 or ESTR1005 or ESTR1006 or MATH1510.Not for students who have taken AIST3010 or ESTR3112 or ESTR3114.
AIST 3110Music Information Retrieval
Pre-requisite/Co-requisite: AIST2010 or CSCI3280.
AIST 3120Introduction to Natural Language Processing
Prerequisite: (AIST1110 or CSCI1040 or CSCI1550 or CSCI2040) AND (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
AIST 3510Human-computer Interaction
Not for students who have taken SEEM3510.
AIST 4010Foundation of Applied Deep Learning
Not for students who have taken ESTR4140.Prerequisite: CSCI3230 or CSCI3320 or ESTR3108.
AIST 4020Agentic AI and LLM Serving
Prerequisite: AIST3020 or CSCI3150 or ESTR3102.
AIST 4030Structured Data Modeling and Graph Neural Network
Prerequisite: AIST3120 or CSCI3230 or ESTR3108 or CSCI3320.
AIST 4040Mathematical Foundations of Deep Learning
Prerequisite: (ENGG1120/ESTR1005 or ENGG1125/ESTR1007 or ENGG1130/ESTR1006 or ENGG2760/ESTR2018 or ENGG2780/ESTR2020) AND (AIST3030/ESTR3112).
AIST 4050Embodied Intelligence: Algorithms and Applications
Prerequisite: AIST1000.
AIST 4060 [2]AI-Native Software Engineering
Prerequisite: AIST3020 or CSCI1120 or CSCI1130 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or CSCI1550 or CSCI3180 or ESTR1100 or ESTR1102 or ESTR3106.Not for students who have taken IERG3844.
AIST 4998Final Year Project I
AIST 4999Final Year Project II
Prerequisite: AIST4998.
AIST 5020Trustworthy Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
AIST 5030Generative Artificial Intelligence
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science and Engineering;Not for students who have taken SEEM5030.
AIST 5040PhysAI and GenAI for Natural Science
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
AIST 5050Optimization for Large Language Models
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CENG 2010 [1]Digital Logic Design Laboratory
Prerequisite: ENGG2020 or ESTR2104.
CENG 2030Fundamentals of Embedded Systems
Pre-requisite: ENGG1110 or ESTR1002.
CENG 2400Embedded System Design
Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.Not for students who have taken ESTR2100.
CENG 3420Computer Organization and Design
Not for students who have taken CSCI3420.Prerequisite: ENGG2020 or ENGG2120 or ESTR2104.For 2nd-year entrants, the prerequisite will be waived.
CENG 3430Rapid Prototyping of Digital Systems
Prerequisite: CSCI2510 or ENGG2020 or ENGG2120 or ESTR2104 or its equivalent For senior-year entrants, the prerequisite will be waived.Not for students who have taken ESTR3100.
CENG 4120Computer-aided Design for Very Large Scale Integrated Circuits
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CENG 4480Embedded System Development and Applications
Not for students who have taken CENG3480 in 2008-09 and before;Prerequisite: CENG2400 or ESTR2100.For 2nd-year entrants, the prerequisite will be waived.
CENG 4998Final Year Project I
CENG 4999Final Year Project II
Prerequisite: CENG4998.
CENG 5030Energy Efficient Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CENG 5270EDA for Physical Design of Digital Systems
For students in MSc Computer Science; or MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering;(CENGU & CENGN).
CENG 5280Quantum Computer Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 2040 [2]Introduction to Python
Pre-requisite: ENGG1110 or CSCI1510 or CSCI1520 or CSCI1530 or CSCI1540 or ESTR1002.Not for students who have taken CSCI1040 or CSCI1550 or CSCI3230 or CSCI3320 or AIST1110 or IERG1080.
CSCI 2100Data Structures
Not for students who have taken ESTR2102 or CSCI2520;Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or ESTR1102 or ESTR2306 or IERG2080.For senior-year entrants, the prerequisite will be waived.
CSCI 2510Computer Organization
Not for students who have taken CENG2400 or ELEG3230 or ENGG2020 or ESTR2100 or ESTR2104.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2520Data Structures and Applications
Not for students who have taken CSCI2100 or ESTR2102.Prerequisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2720Building Web Applications
Not for students who have taken ESTR2106 or IERG3840.Pre-requisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102 or MATH2221 or PHYS2061.
CSCI 2730Introduction to Blockchain Technologies and Applications
Not for students who have taken IERG4360 or ESTR4326.Prerequisite: AIST1110 or CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ENGG1110 or ESTR1002 or 1100 or 1102.
CSCI 2740Competitive Programming
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 2750Data Mining and Information Processing
Prerequisite: (ENGG1110 or ESTR1002) and (ENGG1120 or ESTR1005) Not for students who have taken CSCI3230 or ESTR3108 or CSCI3320.
CSCI 3100Software Engineering
Not for students who have taken ENGG3820 or ESTR3308 or IERG3080;Pre-requisite: CSCI1120 or 1130 or 1510 or 1520 or 1530 or 1540 or 1550 or ESTR1100 or 1102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3120Compiler Construction
CSCI 3130Formal Languages and Automata Theory
Pre-requisite: CSCI2110 or ENGG2440 or ESTR2004 or MIEG2440.
CSCI 3150Introduction to Operating Systems
Prerequisite: ESTR2102 or CSCI2100 or 2520.For senior-year entrants, the prerequisite will be waived.Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent.Not for students who have taken ESTR3102.
CSCI 3160Design and Analysis of Algorithms
Not for students who have taken ESTR3104 or CSCI3190;Pre-requisites: (CSCI2100 or CSCI2520 or ESTR2102) AND (CSCI2110 or ENGG2440 or ESTR2004 or ESTR2362 or MIEG2440).
CSCI 3170Introduction to Database Systems
Prerequisite: CSCI2100 or 2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3180Principles of Programming Languages
Not for students who have taken ESTR3106.Prerequisite: CSCI2100 or 2520 or ESTR2102.For senior-year entrants, the prerequisite will be waived.
CSCI 3190Introduction to Discrete Mathematics and Algorithms
Not for students who have taken CSCI3160 or ENGG2440 or ESTR2004 or 3104.Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.For 2nd-year entrants, the prerequisite will be waived.
CSCI 3220Algorithms for Bioinformatics
Not for students who have taken BMEG3102 or ESTR3110.
CSCI 3230Fundamentals of Artificial Intelligence
Not for students who have taken ESTR3108.Prerequisite: CSCI2100 or 2520 or ESTR2102 or equivalent.
CSCI 3250 [2]Computers and Society
Not for students who have taken ENGG2601.
CSCI 3251 [1]Engineering Practicum
Not for students who have taken ENGG2602.
CSCI 3260Principles of Computer Graphics
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 3270 [2]Advanced Programming Laboratory
1. Prerequisite: CSCI2100 or ESTR2102;2. Corequisite: CSCI3160 or ESTR3104.
CSCI 3280Introduction to Multimedia Systems
CSCI 3290Computational Imaging and Vision
Prerequisite: CSCI2100 or ESTR2102.
CSCI 3310Mobile Computing and Applications Development
Pre-requisite: CSCI2100 or 2520 or ESTR2102.Not for students who have taken IERG3842.
CSCI 3320Fundamentals of Machine Learning
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.
CSCI 3330Fundamentals of Applied Computer Vision
Prerequisite: CSCI2100 or CSCI2520 or ESTR2102.
CSCI 3340Scientific Computing
Prerequisite: (ENGG1120 or ESTR1005 or MATH1030 or MATH1038 or MATH1550) AND (ENGG1130 or ESTR1006 or MATH1010 or MATH1020 or MATH1018 or MATH1510 or MATH1520).
CSCI 3350Introduction to Quantum Computing
Prerequisite: (ENGG1120 or ESTR1005) AND (ENGG2760 or ESTR2018).
CSCI 3360Introduction to Computational Complexity
Prerequisite: ENGG2760 or ESTR2018 or ESTR2308 or IERG2470.
CSCI 4120Principles of Computer Game Software
1. Prerequisite: CSCI2100 or 2520 or ESTR2102;2. Prerequisite/Corequisite: CSCI3260 or 3550.
CSCI 4130Introduction to Cyber Security
Not for students who have taken ESTR4306 or IEMS5710 or IERG4130.
CSCI 4140Open-source Software Project Development
Prerequisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4160Distributed and Parallel Computing
Prerequisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4104.
CSCI 4180Introduction to Cloud Computing and Storage
Co-requisite: CSCI3150 or ESTR3102.Not for students who have taken ESTR4106.
CSCI 4190Introduction to Social Networks
Pre-requisite: CSCI2100 or 2520 or ESTR2102.
CSCI 4200Operating System Engineering
Pre-requisite: CSCI3150 or ESTR3102.
CSCI 4230Computational Learning Theory
Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440.
CSCI 4240Advanced Algorithms: Randomization and Approximation
Pre-requisite: (ENGG2760 or ESTR2018) and (ENGG1120 or ESTR1005) Co-requisite: CSCI3160.
CSCI 4430Data Communication and Computer Networks
1. Prerequisite: CENG3150 or CSCI3150 or ESTR3102.2. Not for students who have taken ESTR3310 or ESTR4120 or IERG3310.
CSCI 4998Final Year Project I
CSCI 4999Final Year Project II
Pre-requisite: CSCI4998.
CSCI 5010Practical Computational Geometry Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5030Machine Learning Theory
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN);Not for students who have taken AIMS5704.
CSCI 5120Advanced Topics in Database Systems
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: CMSC5705 and SEEM5010.
CSCI 5150Machine Learning Algorithms and Applications
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering;Exclusion: FTEC5580.
CSCI 5210Advanced Computer Graphics and Visualization
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5350Advanced Topics in Game Theory
For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5728.
CSCI 5370Quantum Computing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5390Advanced GPU Programming
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG Computer Science; or For students in UG Computer Engineering.
CSCI 5440Theory of Cryptography
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5540Machine Learning Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5550Advanced File and Storage Systems
For undergraduate students in Computer Science (CSCIU and CSCIN) or Computer Engineering (CENGU and CENGN); or For students in MSc Computer Science or MPhil-PhD Computer Science & Engineering.
CSCI 5600Advanced Topics in Distributed Systems
For students in MSc Computer Science or MPhil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering;Exclusion: CMSC5735.
CSCI 5610Advanced Data Structures
For students in MSc Computer Science or Mphil - PhD Computer Science & Engineering or UG Computer Science or UG Computer Engineering.
CSCI 5630Advanced Topics in Graph Mining
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5640Natural Language Processing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5650Graph Neural Networks
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For undergraduate students in Computer Science (CSCIU & CSCIN) or Computer Engineering (CENGU & CENGN).
CSCI 5660Advanced Topics of AI for Life Sciences
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5670Computational Imaging Systems and Algorithms
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering;Not for students who have taken IERG5670.
CSCI 5680Advanced Topics in Flash Memory Technology
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5690Automated Reasoning about Software Systems
For undergraduate students in Computer Science (CSCIN) or Computer Engineering (CENGN) or Artificial Intelligence – Systems & Technologies (AISTN); or For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering.
CSCI 5700Advanced Topics in Software Testing
For students in MSc Computer Science; or For students in MPhil-PhD Computer Science & Engineering; or For students in UG AISTN or CDASN or CENGN or CSCIN.
CSCI 6500 [1]Seminars for M.Phil. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 7600 [1]Seminars for Ph.D. Studies
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8003Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8006 [6]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
CSCI 8012 [12]Thesis Research
For students in MPhil-PhD Computer Science & Engineering.
ENGG 1820 [1]Engineering Internship
ENGG 3802 [1]Introduction to Engineering Entrepreneurship
ENGG 3803 [2]Engineering Entrepreneurship Development Project
Pre-requisite: ENGG3802 with Grade B+ or above or with consent of instructor.
ESTR 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or IERG4300.
IERG 4300Web-scale Information Analytics
Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.
STAT 2005Programming Languages for Statistics
STAT 2006Basic Concepts in Statistics and Probability II
Pre-requisite: STAT2001 or ENGG2760 or ESTR2018 or consent of instructor.

Explanatory Notes

1.AIST/BMEG/CENG/CSCI/EEEN/ELEG/ENER/ENGG/ESTR/FTEC/IERG/MAEG/SEEM courses at 2000 and above level will be included in the calculation of Major GPA for honours classification, excluding courses in Faculty Package and Foundation courses.
[a](i) JUPAS admittees without HKDSE Mathematics Extended Modules I or II are required to take ENGG1040 before they can take ENGG1125.(ii) JUPAS admittees with the following HKDSE results do not need to take ENGG1040 and therefore will not be invited for the Mathematics Placement Test: - Level 5** in Mathematics Extended Module I; or - Level 5* or above in Mathematics Extended Module II.(iii) Non-JUPAS admittees with the following public examination results do not need to take ENGG1040 and therefore will not be invited for the Mathematics Placement Test: - Grade 6 or above in IB Mathematics Analysis and Approaches (HL); or - Grade 7 in IB Mathematics Applications and Interpretation (HL); or - Grade A* in GCE-AL Further Mathematics.(iv) Other admittees except those specified above, are required to attend a Mathematics Placement Test. Students who fail or are absent from the Placement Test will be required to take ENGG1040 before they can take ENGG1125.
[b]The Physics course shall be taken in accordance with students’ HKDSE results or placement test results as follows:(i) Students who have attained Level 4 or above in HKDSE Mathematics (Compulsory Part) AND Level 4 or above in Physics or Level 5 or above in Combined Science with Physics Component shall take ENGG1310/ESTR1003 or PHYS1110.(ii) Students with HKDSE results but did not attain the academic levels as stated in (i) shall take PHYS1003.(iii) Students without HKDSE results shall sit for the placement test arranged by the Department of Physics. Students who pass the placement test shall take ENGG1310/ESTR1003 or PHYS1110. Students who fail or are absent from the placement test shall take PHYS1003.
[c]Students who fail ENGG1125 in Term 1 will have to retake the course in Term 2. The pre-assigned ENGG1130 in Term 2, will therefore be dropped.
[d]Students who have declared to specialize in the ELITE Stream will be required to complete 6 units of ESTR4998 and 4999 to substitute for CSCI4998 and 4999.
[e]Details of the entrance and coursework requirements, and declaration procedures for the ELITE Stream can be found at the ELITE website (www.erg.cuhk.edu.hk/erg/elite). Non-ELITE Engineering students may be allowed to take ESTR courses. Students are required to seek approval from their respective Major Programmes for using ESTR courses taken to fulfill the Major Programme Requirement. Details are available at the ELITE website.
[f]Students can use up to 9 units of courses which have been taken to fulfill the requirements of items 1 to 4 above to fulfill the elective requirements of the ELITE Stream. Item 3(b) Research Component Courses will not be included in these 9 units. A full list of ESTR courses is available at the ELITE website.
[g]Students can use AIST/BMEG/CENG/CSCI/EEEN/ELEG/ENGG/IERG/MAEG/SEEM research postgraduate courses at 5000 level to substitute for ESTR courses at 3000 or 4000 level, subject to the approval of the Stream Director and the Associate Dean (Education).
[h]The requirement of at least 3 units of Engineering courses at 5000 level is a requirement for the ELITE Stream only. It should not be interpreted as a requirement of the Major Programme.