Students are normally expected to complete 148 units within the curriculum structure below:

Major Required Courses

Students are required to take the following 18 (54 units) Major Required Courses

COMP1003
Computer Organisation
3Units

Pre-requisite(s): None

Course Description:
An introduction to the building blocks and organisation of modern digital computers. The course answers the question: How does a computer work? Topics include: historical development of computing and the von Neumann model; data representation in computer systems; Boolean algebra, digital logic and its application to understanding Central Processing Unit (CPU) organisation; combinational and sequential circuits; Finite State Machine (FSM); Instruction Set Architecture (ISA); Assembly Language Programming; other basic modules, such as cache memory, virtual memory, and input/output techniques.

COMP1023
Foundations of C Programming
3Units

Pre-requisite(s): None

Course Description:
This course provides students with basic knowledge of computer-oriented problem solving methodologies, algorithm development, structured programming concepts and design techniques, and implementation tools that facilitate debugging and testing. In particular, structured programming skills will be illustrated with a contemporary programming language.

COMP1033
Systems and Web Development Workshop
3Units

Pre-requisite(s):
COMP1023 FOUNDATIONS OF C PROGRAMMING

Course Description:
The aim of this workshop is to introduce the basics of Linux (operating system programming) and JavaScript (web programming).

COMP2003
Data Structures and Algorithms
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP3153 C++ PROGRAMMING LANGUAGE

Course Description:
This course develops students' knowledge of data structures and their associated algorithms. It introduces the concepts and techniques of structuring and operating on Abstract Data Types in problem solving. Common sorting, searching and graph algorithms will be discussed, and their complexity studied.

COMP2013
Object-Oriented Programming
3Units

Pre-requisite(s): None

Course Description:
This course introduces object-oriented programming concepts, principles, and techniques, including classes, objects, inheritance, and polymorphism. All these concepts are illustrated using a contemporary object-oriented programming language. Upon completion, students should be able to use an object-oriented language to develop complex programmes.

COMP2073
Data Programming Workshop
3Units

Pre-requisite(s):
COMP1023 FOUNDATIONS OF C PROGRAMMING, and
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This workshop aims to have the students learn independent design, research, and coding on data analysis. It will help the students understand the concept of data analysis process. By processing data, students will learn how to collect data, clean data, process and visualize data. One or two programming languages will be introduced during the course. They could be Python, or any other new technologies.

COMP3003
Data Communications and Networking
3Units

Pre-requisite(s):
COMP1003 COMPUTER ORGANISATION

Course Description:
Students will learn the principles of data communications, computer networks and network programming. Topics include: Network hardware and software, Network topologies and categories, Reference models and standards, Physical layer: signal analysis, bandwidth and data rate, transmission media, encoding, transmission, Data link layer, Network layer, Ethernet, Fast Ethernet, Gigabit Ethernet, Wi-Fi, TCP/IP, Socket programming, Client and Server software.

COMP3013
Database Management Systems
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP3153C++PROGRAMMING LANGUAGE

Course Description:
This course introduces how to represent the data in a database for a given application and how to manage and use a database management system. Topics include: conceptual modelling of a database, relational data model, relational algebra, database language SQL, relation database design, and emerging XML data models. In addition, hands-on DBMS experience is included.

COMP3023
Design and Analysis of Algorithms
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURES AND ALGORITHMS, or
COMP3143 DATA STRUCTURE (FOR FM STUDENTS)

Course Description:
This course builds on the study of the analysis and implementation of algorithms and data structures (COMP2003). The goal is to introduce a number of important algorithms that are interesting both from a practical and theoretical point of view. Algorithm design paradigms such as divide-and-conquer and dynamic programming will be discussed, and algorithms for sorting, searching, and graph problems, etc. will be developed.

COMP3033
Operating Systems
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP3153 C++ PROGRAMMING LANGUAGE

Course Description:
Introduces the fundamentals of operating system design and implementation. Topics include an overview of the components of an operating system, mutual exclusion and synchronisation, deadlocks and starvation, implementation of processes and threads, resource scheduling algorithms, memory management, and file systems.

COMP3063
Software Engineering
3Units

Pre-requisite(s):
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course discusses the principles and practical aspects of software development. It studies the methodology of software development as well as the organisation, planning and management of the development process so that students will appreciate the difficulties involved in a large system development project and the importance of a disciplined approach to the problem.

COMP3173
Compiler Construction
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMINGor
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP3153 C++ PROGRAMMING LANGUAGE

Course Description:
This course introduces the concepts that underline most of the programming languages students are likely to encounter, and illustrates those concepts with examples from various languages. Topics include syntax and semantic analysis, bindings, type systems, programming paradigms, control abstraction and flow.

COMP3253
Advanced Software Development Workshop
3Units

Pre-requisite(s):
COMP2013 OBJECTED-ORIENTED PROGRAMMING, and
COMP3013 DATABASE MANAGEMENT SYSTEMS

Course Description:
This workshop aims to help students have some practices in working as a software engineer via the development of a project. The course will also show students how to elicit and document specifications, design software architecture, test the implementation, communicate as a team, and use appropriate tools. The students are expected to be able to apply the software engineering principles and methods to software development.

COMP4004
Final Year Project I (COMP)
3Units

Pre-requisite(s): None 

Other Condition(s):
Year 4 standing in Computer Science and Technology Programme 

Course Description:
Students will undertake an individual project under the supervision of a faculty member and gain the practical experience of applying computer systems principles and techniques acquired from the course to the solution of real-life problems. The project demands careful planning and creative application of underlying theories and enabling technologies. A thesis and an oral presentation are required upon successful completion of the project. This course is open to Computer Science majors only.


DS4023
Machine Learning
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP2013 OBJECT ORIENTED PROGRAMMING, or
COMP3153 C++ PROGRAMMING LANGUAGE

Course Description:
The course will provide an introduction to Machine Learning and its core models and algorithms. The aim of the course is to give the student the basic ideas and intuition behind modern machine learning methods as well as a bit more formal understanding of how, why, and when they work.

MATH1003
Linear Algebra
3Units

Pre-requisite(s): None

Course Description:
This course introduces the basic techniques in matrix algebra, which is the foundation for more advanced mathematics and statistics subjects. Major emphasis will be on the system of linear equations, linearly independence, and eigenvalue problems in finite dimensional vector spaces. Basic ideas and techniques on calculus will be introduced.

MATH1123
Calculus For Science and Engineering
3Units

Pre-requisite(s): None

Course Description:
Calculus for Science and Engineering introduces the differential and integral calculus for univariate functions. It emphasizes the basic ideas and concepts on limits, derivatives, antiderivatives, definite integral, simple differential equations and corresponding applications in natural science and engineering. It provides the foundations for more advanced quantitative courses for science and engineering student.

MATH2003
Discrete Structures
3Units

Pre-requisite(s): None

Course Description:
This course addresses a variety of fundamental topics in computer science, including propositional and predicate logic, proof technique, set theory, combinatorics, graph theory, and Boolean algebra.

Major Elective Courses

Students are required to take 7 courses (21 units) from the following course list (the availability of major elective courses offered each semester is subject to faculty availability and minor adjustment):


1) Intelligence Technology Stream

COMP3073
Introduction to Robotics
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2003 DATA STRUCTURES AND ALGORITHMS

Course Description:
This course aims to introduce students to the concepts involved with autonomous robotic systems. The objective of this course is to use a hands-on approach to introduce the basic concepts in robotics, focusing on mobile robots.

COMP3083
Numerical Computation
3Units

Pre-requisite(s):
MATH1003 LINEAR ALGEBRA

Course Description:
This course aims to introduce students to the concepts involved with numerical calculations on computing devices. The objective of this course is to discuss and analyse mathematical principles and algorithms used to solve a variety of problems that arise in disciplines such as the natural and social sciences, and engineering.

COMP3103
Design Patterns
3Units

Pre-requisite(s):
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces popular design patterns that can be used in software development.

COMP3123
Software Testing
3Units

Pre-requisite(s):
COMP3063 SOFTWARE ENGINEERING

Course Description:
This course teaches students different kinds of testing strategies and how to develop or evaluate tools to automate software testing.

COMP3163
Mobile Application Development
3Units

Pre-requisite(s):
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course is designed to introduce and familiarise participants with programming in the Android environment. Students will learn skills for creating and deploying Android applications, with particular emphasis on software engineering topics including software architecture, software process, usability, and deployment. Hands on experience in the form of exercises are included throughout the course to reinforce material that has been presented in lecture form.

COMP3183
Financial Computing
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course aims to introduce students to the principles of computational finance and financial data analysis. The objective of this course is to explore various relations between computer science and finance.

COMP3193
Cloud Computing
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, and
COMP3033 OPERATING SYSTEMS

Course Description:
This course introduces an overview of the field of Cloud Computing, its enabling technologies, main building blocks of cloud computing systems and its application. This course will cover the topics of cloud infrastructures, virtualization, software defined networks and storage, cloud storage, and programming models. Also, hands-on experience through projects utilizing cloud infrastructures (provided by campus datacentres or public cloud services) will be provided.

COMP3213
Internet of Things
3Units

Pre-requisite(s): None 

Course Description:
This course introduces various challenges and opportunities in the Internet of things. We discuss topics such as perception and recognitions, RFID and NFC, wireless sensor networks, storage of IoTs, security/privacy of IoTs, and applications. Concepts and state-of-art progress on crowd sensing, passive sensing, and sensor-cloud are also covered.

COMP3223
Mobile Computing
3Units

Pre-requisite(s): None 

Course Description:
This course introduces various challenges and opportunities in mobile computing. We discuss topics such as wireless communication, network protocols and standards, ad-hoc networks, location awareness, sensing, application development. Concepts and state-of-art progress in edge computing are also covered as part of the computational model.

COMP4003
Theory of Computation
3Units

Pre-requisite(s):
MATH2003 DISCRETE STRUCTURES

Course Description:
This course aims to introduce the fundamental concepts in theoretical computer science. Topics include deterministic and non-deterministic finite automata, regular languages, context-free languages, Turing machines, Church’s thesis, the halting problem, computability, and complexity. Also, the formal relationships between machines, languages and grammars are addressed.

COMP4005
Final Year Project II (COMP)
3Units

Pre-requisite(s):
COMP4004 FINAL YEAR PROJECT I (COMP)

Other Condition(s):
Year 4 standing in Computer Science and Technology Programme 

Course Description:
Students will undertake an individual project under the supervision of a faculty member and gain the practical experience of applying computer systems principles and techniques acquired from the course to the solution of real-life problems. The project demands careful planning and creative application of underlying theories and enabling technologies. A thesis and an oral presentation are required upon successful completion of the project. This course is open to Computer Science majors only.

* Students who continue with the final year project in the second semester of Year 4 should register Final Year Project II (COMP) as a major elective during the Online Course Selection (or Course Add/Drop) period as informed by the Academic Registry.

COMP4023
Computer and Network Security
3Units

Pre-requisite(s): None

Course Description:
This course introduces the fundamental concepts and techniques in computer and network security. Topics include basic encryption techniques, cryptographic algorithms, authentication and digital signature, public key infrastructure, access control, security models, as well as their applications to, for example, IP security, Web security, and trusted operating systems. In addition, it discusses other system and programming related security issues, including non-malicious errors, computer viruses, and intrusion detection.

COMP4033
Computer Graphics
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURE AND ALGORITHMS, and
MATH1003 LINEAR ALGEBRA

Course Description:
This course introduces graphics hardware architectures and systems, 2D geometric primitives, geometric Transformations, 3D graphics, 3D object representations, rendering and implementation algorithms, curves and surfaces, animation, etc.

COMP4043
Data Mining and Knowledge Discovery
3Units

Pre-requisite(s):
AI1023 DATABASE MANAGEMENT SYSTEMS, or
COMP3013 DATABASE MANAGEMENT SYSTEMS, or
EBIS3003 DATABASE MANAGEMENT

Course Description:
This course provides an overview of the concepts and techniques in knowledge discovery and data mining. The students are expected to have some ideas about some basic knowledge discovery and data mining techniques, including classification, clustering, data association and data warehouse.

COMP4053
Database System Implementation
3Units

Pre-requisite(s):
COMP3013 DATABASE MANAGEMENT SYSTEMS, or
DS2003 FUNDAMENTALS OF DATABASE SYSTEMS

Course Description:
This course provides students with an in-depth knowledge of relational database management systems (DBMS). Topics include data storage, index structures, query evaluation, transaction processing, concurrency control, and crash recovery. In addition, advanced topics such as distributed databases and data warehouses will also be covered.

COMP4063
Digital Media Computing
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces the basic properties of different types of digital media in the multimedia systems, namely audio, image, and video. As data compression is the most important enabling technology, making modern multimedia systems possible, data compression algorithms and the international standards of these digital media will be discussed.

COMP4073
Distributed Computing Systems
3Units

Pre-requisite(s): None

Course Description:
This course introduces the needs, key concepts, and techniques underlying the design and engineering of distributed computing systems. The discussions will focus on communications, synchronisation and concurrency control, process management, distributed file services, and case studies. Also included will be an introduction to clustering computing and parallel algorithms.

COMP4083
E-technology Architectures, Tools and Applications
3Units

Pre-requisite(s): None 

Course Description:
This course develops students' knowledge in emerging e-technologies, including related architectures, tools, and applications. In particular, it introduces the Web from three different aspects: (1) Web as distributed databases; (2) Web as distributed computing platforms; and (3) Web as social networks. It discusses the use of e-technologies in different application domains, including e-business, e-learning, etc.

COMP4093
Internet and the World Wide Web
3Units

Pre-requisite(s):
COMP3003 DATA COMMUNICATIONS AND NETWORKING

Course Description:
Students will learn the principles of the Internet and the World Wide Web, and study some applications and current topics.

COMP4103
Artificial Intelligence and Machine Learning
3Units

Pre-requisite(s):
COMP3013 DATABASE MANAGEMENT SYSTEMS

Course Description:
This course presents the principles and fundamental techniques of artificial intelligence, particularly in the field of machine learning. Students not only learn the fundamentals and state-of-the-art techniques, but also acquire some practical insights into the current development of this field.

COMP4113
Computer Vision and Pattern Recognition
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURES AND ALGORITHMS, and
MATH1003 LINEAR ALGEBRA

Course Description:
This course covers basic concepts in computer vision and pattern recognition. Topics include image sensing and camera perception, 2D image analysis such as filters, edge detection and Hough transform, pattern classification, physics-based vision, stereo and motion, and solid model recognition. It concludes with current trends and challenges in computer vision and pattern recognition.

COMP4123
Information Retrieval and Search Engine
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURES AND ALGORITHMS

Course Description:
This course introduces the basic principles of information retrieval and search engines. Advanced models and techniques in information processing and retrieval will be covered.

COMP4133
System Analysis and Design
3Units

Pre-requisite(s):
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces the concepts and methods of system analysis and design to students with little or no experience. It provides understanding of the entire process of information system design. Topics include business event analysis, use cases, system sequence diagrams, domain modelling and the latest systems development methods, tools and techniques.


COMP4143
Introduction to Web Intelligence
3Units

Pre-requisite(s): None

Course Description:
This course introduces the fundamental concepts and practical applications of contemporary Artificial Intelligence (e.g., incorporating knowledge discovery and data mining, intelligent agents, and social network intelligence) and advanced Information Technology (e.g., involving wireless networks, ubiquitous devices, social networks, and data/knowledge grids) in the context of Web-empowered systems, environments, and activities. In addition, it discusses the techniques and issues central to the development of Web Intelligence (WI) computing systems.

COMP4153
Quantum Finance and Intelligent Financial Trading Systems
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
AI1013 OBJECT-ORIENTED PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING, or
COMP3153 C++ PROGRAMMING LANGUAGE, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS)

Course Description:
With the exponential growth of program trading in worldwide financial industry, Quantum Finance and its underlying technologies including quantum field theory and chaos theory become one of the hottest topics in the Fintech community. Many worldwide financial institutions and fund houses have the needs to recruit computer professionals with basic knowledge on quantum finance to develop intelligent financial systems. The objective of this course is to teach students the basic knowledge of quantum finance and its underlying theories and technologies including quantum field theory, chaos theory and chaotic neural networks and how to apply these technologies to finance industry to develop intelligent financial prediction and trading systems.

COMP4163
Neural Networks and Deep Learning
3Units

Pre-requisite(s):
COMP3013 Database Management Systems

Course Description:
This course presents the principles and applications of Neural Network and Deep Learning, which is a branch of Artificial Intelligence. This course focuses on the use ofdeep neural network and big data, the applications of which arechanging the way we live in our modern world. Students will learn about fundamental concepts as well as state-of-the-art tools and techniques.

COMP4173
Digital Image Processing
3Units

Pre-requisite(s):
MATH1003 LINEAR ALGEBRA, or
MATH1053 LINEAR ALGEBRA I

Course Description:
This course provides fundamentals of digital images processing including basic image operations in both spatial and frequency domains, image restoration, morphological image processing, image segmentation and applications, human visual system and colour image processing.

DS3023
Digital Logic Design
3Units

Pre-requisite(s): None

Course Description:
This course introduces students to the basic concepts of digital systems, including analysis and design. Both combinational and sequential logic will be covered. Students will gain experience with several levels of digital systems, from simple logic circuits to programmable logic devices and hardware description language.

DS4033
Text Mining and Analytics
3Units

Pre-requisite(s): None

Course Description:
This course introduces the basic concepts, principles, and major techniques in text mining. It apprehends the value of text mining in a broad spectrum of areas, including business intelligence, information acquisition, social behaviour analysis and decision making. It will enable students to discover interesting patterns, extract useful knowledge, and support decision making, with statistical approaches applied to text data.

DS4053
Introduction to Bioinformatics
3Units

Pre-requisite(s): None

Course Description:
The course is designed to introduce the most important and basic concepts, methods, and tools used in Bioinformatics which includes an introduction to Bioinformatics, experience with select bioinformatics tools and databases currently utilized in the life sciences.

GCAP3123
Computer Technology and AI Project
3Units

Pre-requisite(s): None 

Course Description:
This course allows students from different disciplines to study without any specific pre-requisites. According to different topic interest, the course supervisor(s) will provide references and study materials to supervise and guide the students during the study. The projects involve study, exploration and integration of various CS, DS and/or AI technologies to inter-discipline real world applications. It aims to allow students to study, learn and applied various state-of-art CS, DS and/or AI technology into inter-disciplinary real world problems, and more importantly is to learn how to conduct the project as a team with members of various areas of expertise to tackle complex real world issues, and deepen their analytical and creative skills in the course of study and research.

STAT3003
Survey Sampling
3Units

Pre-requisite(s):
GCNU1003 SPEAKING OF STATISTICS, or
GCNU1043 INTRODUCTION TO PROBABILITY AND STATISTICS, or
GCNU1053 STATISTICS FOR SOCIAL SCIENCE, or
GCNU1063 BUSINESS STATISTICS, or
GFQR1001 A JOURNEY WITH DATA, or
GFQR1013 HANDS ON DATA ANALYTICS FOR EVERYONE, or
GFQR1023 DATA ANALYTICS FOR BUSINESS, or
GFQR1033 STATISTICS IN OUR DAILY LIFE

Course Description:
Sample survey is a popular means for gauging opinions and views of a target population. It is widely used in many areas including behavioural sciences, biomedical sciences, social research, marketing research, financial and business services, public opinions on government policies, etc. However, improperly conducted surveys or inappropriate analyses of the results could lead to seriously wrong conclusions. This course equips students with a sound understanding of survey operations, sampling methods, questionnaire design and analysis of results.

STAT3073
Statistical Computing
3Units

Pre-requisite(s):
MATH1083 CALCULUS II or MATH1123 CALCULUS FOR SCIENCE AND ENGINEERING, and
COMP1023 FOUNDATIONS OF C PROGRAMMING

Course Description:
Computational data analysis is an essential part of modern statistics. Competent statisticians must not just be able to run existing programs, but to understand the principles on which they work. They must also be able to read, modify, and write code, so that they can assemble the computational tools needed to solve their data analysis problems. The aim of this course is to expand students' statistical toolbox through numerical and simulation methods. Additionally, the course will teach students how to approach statistical problems from a computational perspective. They will learn how to set up and run stochastic simulations, how to fit basic statistical models and assess the results, and how to work with and filter large data sets.

STAT4013
Multivariate Analysis
3Units

Pre-requisite(s):
MATH1053 LINEAR ALGEBRA I and MATH1063 LINEAR ALGEBRA II, or
MATH1003 LINEAR ALGEBRA

Course Description:
This course provides an understanding of classical multivariate analysis and modern techniques in data mining which are useful for analysing both designed experiments and observational studies. Real data in social, life, and natural sciences are analysed using statistical packages such as R or MATLAB.

2) Game Design Technology Stream

COMP3233
Video Game Programming
3Units

Pre-requisite(s):
COMP1023 FOUNDATION OF C PROGRAMMING, or
COMP1013 STRUCTURED PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces the commonly used techniques in the game industry today. The topics include the core game system, math for games, 3D graphics, simple AI for games, and game implementation in C++.

COMP4033
Computer Graphics
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURE AND ALGORITHMS, and
MATH1003 LINEAR ALGEBRA

Course Description:
This course introduces graphics hardware architectures and systems, 2D geometric primitives, geometric Transformations, 3D graphics, 3D object representations, rendering and implementation algorithms, curves and surfaces, animation, etc.

COMP4063
Digital Media Computing
3Units

Pre-requisite(s):
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
COMP1023 FOUNDATIONS OF C PROGRAMMING, or
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces the basic properties of different types of digital media in the multimedia systems, namely audio, image, and video. As data compression is the most important enabling technology, making modern multimedia systems possible, data compression algorithms and the international standards of these digital media will be discussed.

COMP4183
Game Engine Design
3Units

Pre-requisite(s):
COMP1023 Foundations of C Programming or COMP1013 Structured Programming, and
COMP3033 Operating Systems

Course Description:
Game engines are the essential tools for video game productions. The performance of game engines directly decides how fast games can be implemented and how well games can be optimized. This course intends to introduce the fundamental features of a game engine. After taking this course, students are expected to have enough skills to implement a game engine prototype.

COMP4193
Multiplayer Games and Accessories
3Units

Pre-requisite(s):
COMP2013 OBJECT-ORIENTED PROGRAMMING

Course Description:
This course introduces the basic techniques to implement multiplayer games and also the most popular game accessories, for example VR/AR devices, somatosensory systems and RGBD cameras. These advanced features of games can greatly enhance player's gaming experience. Students will learn programming these devices in Unity and deploy some applications to Android systems.

DS3023
Digital Logic Design
3Units

Pre-requisite(s): None

Course Description:
This course introduces students to the basic concepts of digital systems, including analysis and design. Both combinational and sequential logic will be covered. Students will gain experience with several levels of digital systems, from simple logic circuits to programmable logic devices and hardware description language.

GCAP3123
Computer Technology and AI Project
3Units

Pre-requisite(s): None

Course Description:
This course allows students from different disciplines to study without any specific pre-requisites. According to different topic interest, the course supervisor(s) will provide references and study materials to supervise and guide the students during the study. The projects involve study, exploration and integration of various CS, DS and/or AI technologies to inter-discipline real world applications. It aims to allow students to study, learn and applied various state-of-art CS, DS and/or AI technology into inter-disciplinary real world problems, and more importantly is to learn how to conduct the project as a team with members of various areas of expertise to tackle complex real world issues, and deepen their analytical and creative skills in the course of study and research.

MAD3033
3D Design Fundamentals
3Units

Pre-requisite(s): None 

Course Description:
This course aims to give students a fundamental knowledge of three-dimensional (3D) design that applies across many disciplines. This includes an understanding of the basic elements and principles of 3D design, a working knowledge of the physical characteristics and inherent meaning of materials, the relationship between form and function, structural principles and an introduction to digital modelling technologies. Students will be introduced to a range of materials and be required to think of design as a process resulting in a product with functional goals and aesthetic concerns. Instruction on personal safety and environmental responsibility will be given in regards to each project

MAD3063
Animation
3Units

Pre-requisite(s): None 

Course Description:
This course introduces the history, language, principles, aesthetics and digital tools used in the creation of animation within the context of art and design. The class will focus on understanding the development of animation, the mechanism of animation, and the techniques of animation sufficient to produce projects of merit. Through different styles of animation, the class will explore the foundations of animation history and its characteristics. In addition, through the use of the software, this course will teach students how to complete basic digital animation.

MAD3103
Computer Game Design
3Units

Pre-requisite(s): None 

Course Description:
Like a number of courses in Media Arts and Design, this one is also based on skills, and intends to provide a strong foundation of computational concepts that can be found supporting user interfaces and games in different platforms. This will allow students to apply these techniques when developing new interfaces and games. Contemporary media, such as smartphones and tablets use these interfaces as the windows and face of intelligent games. As such, no matter how sophisticated and engaging visual interface and interaction becomes, they are still driven by intricate computational concepts and the meticulous application of those concepts. The course content takes students way beyond simple interfaces and will explore a number of input modalities (including webcams and microphones). Special topics will be introduced from time to time so that students can expand their skills in areas such as path-finding, cellular automata, and cellular and generic algorithms.

3) Other Common Major Elective Courses

AI3133
Natural Language Processing
3Units

Pre-requisite(s):
AI1003 PYTHON PROGRAMMING, or
COMP1013 STRUCTURED PROGRAMMING, or
GCIT1013 FOUNDATIONS OF C PROGRAMMING, or
STAT2043 STRUCTURED PROGRAMMING (FOR STAT STUDENTS), or
COMP3153 C++ PROGRAMMING LANGUAGE

Course Description:
This course introduces ways to represent and interpret human languages such as English and Chinese. We discuss applications based on speech data including translation, summarisation, information extraction, question answering and so on. Concepts in machine learning and linguistics are also covered as part of the computational model.


BIOL2003
General Biology
3Units

Pre-requisite(s): None

Course Description:
This course provides the student with a solid foundation in the principles of biology, from molecular biology to cells to the diversity of life. Topics include the structure and function of representative organisms, and their diversity. Latest advances in biology are incorporated into the course. There is also an overview of the scientific process/method, and examples are reviewed to show how the process works.

COMP4203
Linear Systems
3Units

Pre-requisite(s):
MATH1003 LINEAR ALGEBRA, or
MATH1053 LINEAR ALGEBRA I, or
MATH1173 LINEAR ALGEBRA

Course Description:
The aim is to develop solid understanding of the fundamentals of linear systems analysis and design. The focus will be on state space approach though frequency domain techniques and relation between two methods are also covered to some extent.


DS3053
Requirements Engineering for Data Science Projects
3Units

Pre-requisite(s): None

Course Description:
The aim of this course is to let students experience a complete requirements elicitation process for a Data Science (DS) project. We will learn the Volere Requirement Process, including methods to identify the correct business problem, and to derive & design innovative solutions. We will also learn how to communicate requirements properly using natural language and various modeling techniques such as Unified Modeling Language (UML) and Goal-Oriented Modeling Frameworks.


DS4073
Introduction to Data Visualisation
3Units

Pre-requisite(s): None

Course Description:
The aim of this course is to teach students how to create visualisations that effectively communicate the meaning behind data to an observer through visual perception. We will learn how a computer displays information using computer graphics, and how the human perceives that information visually. We will also study the forms of data, including quantitative and non-quantitative data, and how they are properly mapped to the elements of a visualisation to be perceived well by the observer. We will briefly overview some design elements for effective visualisation. The course will also cover with the integration of visualisation into database and data-mining systems to provide support for decision making, and the effective construction of a visualisation dashboard


DS4083
Big Data Analytics
3Units

Pre-requisite(s):
COMP2003 DATA STRUCTURE AND ALGORITHMS, and
DS2013 DATA PROCESSING WORKSHOP I or DS2043 DATA PROCESSING WORKSHOP I

Course Description:
The course is to introduce the latest development of big data analytics and concepts of mining massive datasets. It emphasizes big data analytical techniques which include Finding Similar Items, Mining Data Streams, Link Analysis, Frequent Itemsets, Association rules, Clustering over Massive Datasets, Advertising on the Web, Recommender Systems, Mining Social-Network Graphs, Dimensionality Reduction, and can motivate students to apply big data analytics in addressing problems in real world applications.


DS4093
Introduction to Recommender System
3Units

Pre-requisite(s):
DS2013 DATA PROCESSING WORKSHOP I or DS2043 DATA PROCESSING WORKSHOP I, and
MATH1003 LINEAR ALGEBRA, and
DS4023 MACHINE LEARNING

Course Description:
This course provides an overview of basic methods to developing state-of-the-art recommender systems. It introduces current algorithms for generating personalized recommendations. It discusses how to measure the effectiveness of recommender systems and illustrates the methods with practical case studies. It also covers emerging topics such as deep learning. It provides basic and state-of-the art technology to build real-world recommender systems. It equips students with some necessary skills for industry or for further study.


MATH1163
Advanced Calculus
3Units

Pre-requisite(s):
MATH1123 CALCULUS FOR SCIENCE AND ENGINEERING, or
MATH1073 CALCULUS I, or
MATH1103 CALCULUS

Course Description:
This course introduces the differential and integral calculus for multivariate functions. Advanced Calculus provides the basics of analytic geometry for lines and planes, curvatures for vector functions, partial derivatives, multiple integrals, Infinite sequences and series, and second order differential equations.  Advanced Calculus severs the foundations for many advanced courses and is usually a compulsory courses for most Programmes in top graduate schools.

PHSY2003
Principles of Physics
3Units

Pre-requisite(s): None

Course Description:
This course teaches the basic principles of physics to explain the properties of heat, light, electricity, magnetism, and quantum mechanics of atoms and then apply the principles to study the functions of electronics, analytical instruments, environmental monitoring instruments, solar panel, etc. In addition, the impacts of important physical phenomena such as air movement, light scattering by particulate matter, global warming, solar radiation, radioactivity, etc. on the formation of environmental risks and pollutions will be analysed. The basic principles of physics taught in this course can be applied not only to Environmental Science, but also to other sciences and everyday life.

University Core Courses

All students should complete 37 units of University Core courses to fulfil the graduation requirements.

General Education Programme

All students should complete 18 units of General Education (GE) Courses to fulfil the graduation requirements. 

Free Elective Courses

The 18 units of Free Electives could be used by students to (a) spend a semester abroad; (b) take a minor or (c) take more courses offered by the teaching units.

Notes

The curriculum is particularly relevant for the 2022 cohort students. Other students please refer to https://ar.uic.edu.cn/current_students/student_handbook/programme_handbook.htm