科目概览
(只提供英文版本)
The following description specifies the major discipline courses for students who pursue the programme on a full-time 4-year basis. Flexibility is allowed for completing the programme in a longer or shorter period in accordance with the stipulations of the Regulations Governing Undergraduate Studies.
Foundation Courses
This course is designed for students to provide an introduction to data science in the digital age. Data science concerns using data to understand and analyse actual phenomena. The course covers basic IT skills, such as computer programming to assist data manipulation, data analysis and data communication. Turing award winner Jim Gray predicts that data science will be a “fourth paradigm” of science, which is data-driven and can be differentiated from empirical, theoretical and computational paradigms. Students will learn the fundamentals and appreciate the importance of data science.
The first half of the course is about learning the programming language. The topics will include: the basic Python language syntax, variable declaration, basic operators, program flow and control, Python data structures, defining and using functions and recursion, file and operating system interface. In the second half of the course, basic Python packages designed for data science will be introduced, such as NumPy, SciPy, Pandas, and Matplotlib.
(Restriction(s): Students are not allowed to take both this course and SSC2114 Calculus.)
Calculus plays an important role in the understanding of today’s world. This is an introductory course that presents the ideas and techniques of calculus using an informal, intuitive and geometric approach. Students need to learn both differential calculus and integral calculus and their applications to real-life situations in business, economics, the social sciences, natural sciences and visual arts. This course will equip students with the calculus background required for further study in many disciplines.
(Note: Students should take CDS1002 Calculus previously or take both this course and CDS1002 Calculus in the same term)
Probability and Statistics are fundamentals of quantitative analysis. This course introduces the basic theory of probability and statistics to students. It provides a strong mathematical background for students to understand the quantitative techniques used in the analysis of practical problems across different disciplines. Emphasis is placed on the underlying mathematical theories of probability and statistics. The topics covered include descriptive statistics, basic probability, probability distributions, correlation and the use of statistical software for data science.
The Mathematical Fundamentals for Data Science course offers a comprehensive introduction to the essential mathematical foundations required for data science, with a focus on probability and statistics. The course covers fundamental concepts such as sets, functions, and basic algebra, while delving into probability theory, descriptive and inferential statistics, common probability distributions, and data visualization techniques. By the end of the course, students will have the skills necessary to apply these mathematical principles to real-world data analysis scenarios, making them well-prepared for careers in data science, analytics, or any field requiring statistical reasoning.
(Course details to be provided)
Functional Courses
(Prerequisite: CDS1001 Introduction to Programming for Data Science)
Computer algorithms manipulate data to solve a variety of problems. For example, data scientists create algorithms to extract valuable insights from data. Data structures are essential for organizing, storing, accessing, and processing data effectively. The judicious selection of appropriate data structures significantly impacts the design and performance of an algorithm. Object-oriented programming (OOP) is a programming paradigm based on the concepts of “objects”, which are data structures that can exhibit “behaviour”. Students will learn the basics of algorithms, data structures, and language models for data science and generative artificial intelligence (AI), and acquire the skills needed to design software using OOP.
(Prerequisites: CDS1001 Introduction to Programming for Data Science, CDS1004 Mathematical Fundamentals for Data Science)
This course provides a comprehensive foundation in operating system principles and architecture, with a specific focus on their application and importance in data science contexts. Students will explore the fundamental components of modern operating systems including process management, memory allocation, file systems, and resource scheduling—all essential for understanding how data science applications interact with underlying computing resources. The curriculum emphasizes both theoretical concepts and practical skills, enabling students to optimize system performance for data-intensive tasks. By examining how operating systems manage hardware resources and provide abstractions for software applications, students will gain critical knowledge for developing efficient data science solutions across various computing environments, from personal workstations to distributed cloud systems. This course bridges the gap between theoretical computer science and practical data science applications, preparing students to design and implement computationally efficient data analysis workflows.
(Course details to be provided)
(Prerequisite: CDS2003 Data Structures and Object-Oriented Programming)
This course is designed to introduce the concepts and principles of database and data warehouse. Various types of databases will be thoroughly discussed in this course, such as objected-oriented, relational, document-oriented, graph, NoSQL, and New SQL. Popular database management systems such as Microsoft SQL Server and/or Oracle will be described and implemented. Topics include data models (ER, relational, and others); query language (Structured Query Language); implementation techniques of database management systems (index structures and query processing); management of semi-structured and complex data; distributed and NoSQL databases; the dimensional modelling technique for designing a data warehouse, and data warehouse architectures, OLAP and the project planning aspects in building a data warehouse.
DIDS Department Courses
Design Thinking is a human-centered, iterative approach to innovation that empowers students to tackle complex, real-world challenges through creativity and collaboration. This course is structured around the five core modules of the Design Thinking process (i.e., Empathize, Define, Ideate, Prototype, and Test) and emphasizes experiential, project-based learning. Students will work in teams to apply design thinking principles to real-world problems, engaging in activities such as user research, need-finding, brainstorming, rapid prototyping, and user testing. Through group projects, students will explore topics like designing innovative products. The course fosters practical skill development in communication, teamwork, analytical thinking, and project management. By the end of the course, students will have gained hands-on experience in creating innovative solutions, preparing them to contribute effectively to diverse professional and academic contexts.
As software development continues to drive innovation across industries, mastering programming fundamentals is essential for building efficient and reliable applications. This course is designed to teach students the fundamentals of programming using the C++ language. The course begins with the fundamentals of language syntax, variables, data types, and control structures, then progresses to more advanced topics including functions, arrays, pointers, and dynamic memory management. Students will also learn about data structures and file structures, including techniques for organizing and manipulating data efficiently. The course covers input/output operations, interaction with devices, and file handling to enable students to build programs that manage data from various sources. In addition, the course introduces object-oriented programming principles such as classes, inheritance, polymorphism, and encapsulation, which are essential for creating modular and maintainable software. Throughout the course, emphasis is placed on problem-solving, algorithmic thinking, and writing clean, efficient code. Students will gain practical experience through assignments and projects that simulate real-world applications.
(Prerequisite: CDS1001 Introduction to Programming for Data Science)
As modern communication systems evolve to support high-speed connectivity and emerging technologies, understanding networking fundamentals has become essential for computing and engineering professionals. This course is designed to introduce the principles, architecture, and technologies behind networking. The course covers fundamental concepts such as network models, protocols, and standards, with a focus on the OSI and TCP/IP architectures. Students will learn about data transmission, addressing, routing, and switching, as well as the role of network devices such as routers, switches, and hubs. Topics include error detection and correction, flow control, congestion management, and the basics of network security. The course also examines physical and logical network structures, including wired and wireless technologies, and introduces advanced topics such as 5G networks and their role in enabling high-speed, low-latency communication for emerging applications. Students will explore Industrial Internet of Things (IIoT) concepts, focusing on how networking technologies support smart manufacturing, automation, and real-time data exchange in industrial environments. Common networking services such as DNS, DHCP, and HTTP are also covered. Practical exercises will involve configuring networks, analyzing packet flows, and troubleshooting connectivity issues using industry-standard tools.
(Prerequisites: CDS1001 Introduction to Programming for Data Science, CDS1004 Mathematical Fundamentals for Data Science)
This course is designed to help students understand the principles of artificial intelligence (AI) and machine learning, with a strong emphasis on their applications in innovative design. It focuses on creative design generation and data-informed design exploration, enabling students to explore how recent advances in AI (particularly machine learning) support more natural, performance-driven design processes. Students will learn to identify different categories of machine learning algorithms, explain supervised, unsupervised, and reinforcement learning, and apply model selection techniques. Hands-on experience with modern AI frameworks will be emphasized. The course culminates in an open-ended applied design project, where students demonstrate an original, creative use of machine learning for innovative design in fields such as business, engineering, or art.
(Prerequisites: CDS1002 Calculus, CDS2102 Networking)
This course is designed to introduce the principles and applications of intelligent sensing technologies and advanced control systems. The course covers the fundamentals of sensors and transducers, signal acquisition, and data processing for real-time monitoring and decision-making. Students will explore various sensing modalities, including optical, acoustic, and inertial sensors, and learn how these technologies are integrated into intelligent systems. The control component of the course focuses on classical and modern control strategies, including PID control, state-space methods, and intelligent control techniques such as fuzzy logic and neural networks. Emphasis is placed on the interaction between sensing and control in autonomous systems, robotics, and industrial automation. Practical exercises and projects will involve designing and implementing sensor-based control systems using simulation tools and hardware platforms.
(Prerequisites: CDS1001 Introduction to Programming for Data Science, CDS1003 Probability and Statistics 1)
As digital imaging becomes central to fields such as healthcare, multimedia, and artificial intelligence, understanding image processing techniques is essential for modern engineers and computer scientists. This course is designed to introduce the fundamental concepts, techniques, and applications of digital image processing. The course begins with an overview of image formation and representation, including color models, sampling, and quantization. Students will learn essential operations such as image enhancement, filtering, and restoration in both spatial and frequency domains. Topics include histogram equalization, convolution, Fourier transforms, and noise reduction techniques. The course also covers image segmentation, edge detection, morphological operations, and feature extraction, which are critical for object recognition and computer vision applications. Students will explore compression methods, image coding standards, and practical considerations for storing and transmitting images. Hands-on exercises and projects will involve implementing algorithms using programming tools and applying them to real-world problems such as medical imaging, remote sensing, and multimedia systems.
(Prerequisites: CDS2005 Operating Systems for Data Science, CDS2101 C++ Programming)
Modern applications demand high-performance computing for AI, graphics, and scientific simulations, which makes understanding GPU architectures and parallel programming essential. This course introduces the principles, techniques, and applications of GPU and parallel computing. Students will learn the fundamentals of parallel programming models, including thread-level and data-level parallelism, and explore how GPUs accelerate computation through massively parallel architectures. The course covers key topics such as CUDA programming, memory hierarchy and optimization, synchronization, and workload distribution. Students will also study parallel algorithms for common computational tasks and learn how to leverage GPU computing for domains such as machine learning, image processing, and scientific simulations. Additional topics include performance analysis, scalability, and emerging trends in heterogeneous computing environments. Hands-on exercises and projects will involve implementing parallel programs using GPU frameworks and evaluating their performance compared to traditional CPU-based solutions.
(Prerequisite: CDS1001 Introduction to Programming for Data Science)
As data-driven decision-making and product design become increasingly important in science, engineering, and industry, the ability to transform complex information and models into clear, interactive visual representations is essential. This course introduces the principles, techniques, and tools for effective data and product visualization. Students will learn the fundamentals of visual perception, design principles, and graphical representation of data, focusing on how to communicate information accurately and intuitively. The course covers a range of visualization methods, including charts, graphs, interactive dashboards, and advanced techniques for visualizing multidimensional and large-scale datasets. In addition, students will explore product visualization, which involves creating realistic and interactive visual models for design, manufacturing, and marketing purposes. Topics include color theory, layout design, 3D Modelling, and best practices for storytelling with data and product visuals. Students will also work with visualization frameworks and libraries and modern interactive tools, as well as software for 3D product visualization. Hands-on exercises and projects will involve designing and implementing visualizations using real-world datasets and product models.
(Prerequisite: CDS2101 C++ Programming)
Designing intuitive and user-friendly interfaces is critical for enhancing user experience and productivity. This course introduces the principles, methods, and tools of Human Computer Interaction (HCI), focusing on how people interact with computers and how systems can be designed to support these interactions effectively. Students will learn the fundamentals of user-centered design, usability principles, and cognitive models that influence interface design. The course covers topics such as interaction styles, input/output devices, visual design, accessibility, and evaluation techniques. Students will explore prototyping methods, usability testing, and design frameworks for web, mobile, and emerging platforms such as AR/VR. Emphasis is placed on understanding user needs and applying design thinking to create interfaces that are efficient, engaging, and inclusive. Hands-on projects will involve designing and evaluating interactive systems using industry-standard tools and methodologies.
(Prerequisites: CDS2005 Operating Systems for Data Science, CDS3001 Databases and Data Warehouses)
Blockchain is the first successful technology that enables trust without relying on a central authority, revolutionizing how transactions and data are managed. This course aims to introduce the foundations of blockchain technology and explore its transformative impact on finance and beyond. It is designed to provide students with a solid understanding of key concepts and developments surrounding cryptocurrencies, distributed ledger systems, and decentralized applications. Students will learn about blockchain structure, cryptographic principles, and smart contracts, as well as how these technologies underpin financial innovations such as digital currencies, decentralized finance (DeFi), and tokenization. The course also highlights emerging applications, such as supply chain management, healthcare, and digital identity. Practical exercises will involve working with blockchain platforms, deploying smart contracts, and analyzing real-world use cases in financial services and other industries.
(Prerequisites: CDS1101 Innovative Design Fundamentals, CDS2103 Machine Learning for Innovative Design, CDS3103 GPU and Parallel Computing)
This course provides a practical learning of system integration, verification, and validation, with a strong emphasis on hands-on practice. This course adopts a blended teaching approach that integrates lectures, in-class activities, and group projects. Lectures enable students to integrate machine learning, sensing, control, and software–hardware systems to solve real-world engineering problems, particularly in Industry 4.0 contexts. Through group projects and case studies in areas such as robotics, human–computer interaction, automated inspection, predictive maintenance, and digital twins, students gain practical experience in system design, implementation, evaluation, and validation using visualization and experimental analysis. By the end of the course, students will have gained hands-on experience in problem formulation, solution development, and applying visualization and experimental analysis to support system verification and validation and to interpret evaluation results.
Capstone Courses
(Prerequisites: CDS2103 Machine Learning for Innovative Design, CDS3001 Databases and Data Warehouses, CDS3101 Intelligent Sensing and Control)
Capstone projects constitute a critical component of undergraduate education, providing students with an opportunity to integrate and apply the knowledge and skills acquired throughout their programme of study. Capstone 1 – Innovation, Technology and Design is the first phase of a two-part capstone sequence, focusing on problem identification, background research, and conceptual system design.
In this course, students work in teams to address real world challenges that require innovative, technology driven solutions. Emphasis is placed on design thinking, user centred design, and the effective use of emerging technologies. Students engage in activities such as needs analysis, stakeholder and market research, ideation, feasibility assessment, and conceptual prototyping. By the end of the course, each team will produce a comprehensive project proposal and preliminary design documentation.
(Prerequisite: CDS4105 Capstone 1 - Innovation, Technology and Design)
Capstone projects provide students with an opportunity to synthesize and apply knowledge gained throughout their academic journey. This course centres on the design, implementation, and optimisation of a product-oriented system under real-world constraints. Students undertake a capstone project to conceive, build, and demonstrate an integrated solution that combines software, hardware, data processing, and user interaction. Emphasis is placed on system integration, performance optimisation, and the professional delivery of a functional prototype, reflecting the increased technical complexity and product maturity expected at the final stage of undergraduate study.
Major Elective Courses*
*The offering of elective courses is subject to sufficient demand and faculty availability.
(Prerequisite: CDS1001 Introduction to Programming for Data Science)
The Internet of Things (IoT) is transforming our physical world into a complex and dynamic system of connected devices on an unprecedented scale. This course introduces students to the principles, architecture, and applications of IoT technologies. Students will learn how IoT enables communication between physical devices, sensors, and cloud platforms to create intelligent, data-driven systems. The course covers IoT architecture layers, communication protocols, and device integration, along with data acquisition, processing, and security considerations. Topics include sensor networks, wireless communication technologies (such as Wi-Fi, Bluetooth, Zigbee, and 5G), edge and cloud computing, and IoT platforms. Students will explore real-world applications in smart homes, industrial automation, healthcare, and transportation. Practical exercises and projects will involve designing and implementing IoT solutions using microcontrollers, sensors, and cloud services.
(Prerequisite: CDS2003 Data Structures and Object-oriented Programming)
Cloud computing has become the backbone of modern IT infrastructure, enabling scalable, secure, and cost-effective solutions for businesses worldwide. This course introduces the fundamental concepts, architecture, and technologies of cloud computing. Students will explore how cloud services enable scalable, on-demand computing resources and transform modern IT infrastructure. Topics include cloud service models (IaaS, PaaS, SaaS), virtualization, containerization, distributed systems, and cloud storage. The course also covers deployment strategies, security considerations, cost optimization, and emerging trends such as serverless computing and edge computing. Through hands-on labs and projects, students will gain practical experience with leading cloud platforms (e.g., AWS, Azure, or Google Cloud), learning how to provision resources, manage workloads, and implement cloud-native applications.
(Prerequisite: CDS2103 Machine Learning for Innovative Design)
With the growing demand for immersive digital experiences in gaming, film, and interactive media, three-dimensional (3D) Modelling and animation have become essential skills for creative and technical professionals. This course offers a comprehensive introduction to the principles and techniques used to create and animate 3D content. Students will learn how to design 3D objects using industry-standard Modelling tools, apply textures and materials for realistic surfaces, and implement lighting and rendering workflows to produce visually compelling scenes. The course also explores animation fundamentals, including keyframing, rigging, and motion paths, enabling students to bring static models to life through dynamic movement. Emphasis is placed on both technical proficiency and artistic creativity, preparing students to work within professional production pipelines. Through hands-on projects and assignments, students will develop 3D environments and animated sequences, culminating in a portfolio-ready project.
(Prerequisite: CDS2003 Data Structures and Object-Oriented Programming)
Algorithms form the backbone of computer science, enabling efficient problem-solving and powering applications from data processing to artificial intelligence. This course provides a rigorous introduction to the design, analysis, and implementation of algorithms. Students will learn fundamental techniques such as divide-and-conquer, dynamic programming, greedy methods, and graph algorithms, as well as strategies for analyzing algorithmic complexity using Big-O notation. Students will explore how algorithmic choices impact performance and scalability, and they will gain experience implementing algorithms in a programming language. Topics include sorting and searching, graph traversal, shortest paths, and optimization problems, along with discussions on NP-completeness and approximation algorithms. Through problem-solving exercises and programming assignments, students will develop the ability to design efficient algorithms for real-world challenges.
(Prerequisite: CDS2103 Machine Learning for Innovative Design)
Deep learning is one of the bleeding edge technologies of machine learning. It has been used in the community and industry to solve a number of big data problems in computer vision and natural language processing. Deep learning drives improvement in the precision of medical diagnosis, enhancing digital painting and the development of self-driving vehicles. This course teaches students to understand the theoretical and technical details of deep learning and to design intelligent systems that learn from complex and large-scale datasets.
(Prerequisites: CDS1002 Calculus, CDS1004 Mathematical Fundamentals for Data Science)
In a mathematical optimization problem, one seeks to minimize or maximize a real function of real or integer variables, subject to constraints on the variables. Mathematical optimization refers to the study of these problems, their mathematical properties, the development and implementation of algorithms to solve these problems and the application of these algorithms to real-world problems.
The purpose of this course is to cover the parts of calculus that are most relevant to economics and business, with an emphasis on mathematical optimization questions – finding a choice of variables that maximizes a function (e.g., utility or expected return) or minimizes a function (e.g., cost and risk) in the presence of constraints (e.g., feasibility, substainability and limited resources). This course covers foundational topics from multivariable calculus and linear algebra, topics from introductory analysis (e.g., open/closed sets, compactness, maximum theorem and implicit function theorem) and problems in unconstrained and constrained optimization (e.g., Lagrange multipliers, Kuhn-Tucker conditions and applications of convexity). Topics in linear programming and calculus of variations may also be discussed. The course will also cover the application of optimization algorithms to search for optimal and sustainable solutions for some real-world problems. Participants to the course must be aware that this is in part a course of mathematics, where formal statements (definitions, lemmas, propositions, theorems) will be made and formal proofs will be given and illustrated by examples.
(Prerequisite: CDS2101 C++ Programming)
As interactive and immersive experiences become central to modern web applications, Web 3D technologies are transforming how users engage with digital content. This course introduces students to the principles, tools, and frameworks for creating and deploying 3D graphics on the web. Students will learn the fundamentals of 3D rendering, scene composition, and animation using web-based technologies such as WebGL, Three.js, and related libraries. The course covers essential topics including 3D geometry, lighting, shading, textures, and camera controls, as well as performance optimization for real-time rendering in browsers. Students will also explore interactive techniques, integrating user input and dynamic behaviors to create engaging 3D experiences. Emphasis is placed on practical implementation, enabling students to build visually compelling and interactive web applications. Through hands-on projects, students will design and develop 3D scenes and animations that run seamlessly in modern web environments.
(Prerequisites: CDS2101 C++ Programming, CDS3101 Intelligent Sensing and Control)
This course introduces the principles and practices of embedded systems design with a focus on applications in innovative design and AI-driven solutions. Students will learn how to program microcontrollers and single-board computers using Python or C++, interface with sensors and actuators, and implement real-time control for intelligent devices. The course emphasizes hardware-software integration, edge computing, and deploying lightweight AI models on embedded platforms. Through hands-on projects, students will design and prototype smart systems that combine electronics, connectivity, and AI capabilities.

