BEng in Computer Science

Course Descriptions

Candidates will be required to complete the coursework in the respective courses selected. Not all courses are offered every semester.

First Year Engineering Core Courses

Course CodeCourse
MATH1851 Calculus and ordinary differential equations (6 credits)
MATH1853 Linear algebra, probability and statistics (6 credits)
ENGG1300 Fundamental mechanics (6 credits)
ENGG1310 Electricity and electronics (6 credits)
ENGG1320 Engineers in the modern world (6 credits)
ENGG1330 Computer programming I (6 credits)
ENGG1340 Computer programming II (6 credits)

Please refer to the First Year Engineering Core Courses in the syllabus for the degree of BEng for details.

University Requirements on Language Enhancement Courses

CAES1000. Core University English (6 credits)
CENG9001. Practical Chinese for engineering students (6 credits)

Please refer to the University Language Enhancement Courses in the syllabus for the degree of BEng for details.

CAES9542. Technical English for Computer Science (6 credits)

Running alongside Computer Science, Financial Technology, Data Science related final-year / capstone project courses, this one-semester, 6-credit course will build and consolidate students’ ability to compose technical reports, and make technical oral presentations. The focus of this course is on helping students to report on the progress of their Final Year Project in an effective, professional manner in both written and oral communication. Topics include accessing, abstracting, analyzing, organizing and summarizing information; making effective grammatical and lexical choices; technical report writing; and technical presentations. Assessment is wholly by coursework.

Co-requisite: COMP4501 or COMP4502 or COMP4801 or FITE4801

University Common Core Curriculum

Successful completion of 36 credits of courses in the Common Core Curriculum, comprising at least one and not more than two courses from each Area of Inquiry with not more than 24 credits of courses being selected within one academic year except where candidates are required to make up for failed credits:

  • Science, Technology and Big Data
  • Arts and Humanities
  • Global Issues
  • China: Culture, State and Society

COMP1117. Computer programming (6 credits)

This is an introductory course in computer programming. Students will acquire basic Python programming skills, including syntax, identifiers, control statements, functions, recursions, strings, lists, dictionaries, tuples and files. Searching and sorting algorithms, such as sequential search, binary search, bubble sort, insertion sort and selection sort, will also be covered.

Mutually exclusive with: ENGG1111 or ENGG1330 or IIMT2602
Assessment: 50% continuous assessment, 50% examination

COMP2113. Programming technologies (6 credits)

This course covers intermediate to advanced computer programming topics on various technologies and tools that are useful for software development. Topics include Linux shell commands, shell scripts, C/C++ programming, and separate compilation techniques and version control. This is a self-learning course; there will be no lecture and students will be provided with self-study materials. Students are required to complete milestone-based self-assessment tasks during the course. This course is designed for students who are interested in Computer Science / Computer Engineering.

Prerequisite: COMP1117 or ENGG1330
Mutually exclusive with: ENGG1340 or COMP2123
Assessment: 70% continuous assessment, 30% examination

COMP2119. Introduction to data structures and algorithms (6 credits)

Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees; sorting algorithms; complexity analysis.

Prerequisite: COMP2113 or COMP2123 or ENGG1340
Assessment: 40% continuous assessment, 60% examination

COMP2120. Computer organization (6 credits)

Introduction to computer organization and architecture; data representations; instruction sets; machine and assembly languages; basic logic design and integrated devices; the central processing unit and its control; memory and caches; I/O and storage systems; computer arithmetic.

Co-requisite: COMP1117 or ENGG1330
Mutually exclusive with: ELEC2441
Assessment: 50% continuous assessment, 50% examination

COMP2121. Discrete mathematics (6 credits)

This course provides students a solid background on discrete mathematics and structures pertinent to computer science. Topics include logic; set theory; mathematical reasoning; counting techniques; discrete probability; trees, graphs, and related algorithms; modeling computation.

Mutually exclusive with: MATH3600
Assessment: 50% continuous assessment, 50% examination

COMP2396. Object-oriented programming and Java (6 credits)

Introduction to object-oriented programming; abstract data types and classes; inheritance and polymorphism; object-oriented program design; Java language and its program development environment; user interfaces and GUI programming; collection class and iteration protocol; program documentation.

Prerequisite: COMP2113 or COMP2123 or ENGG1340
Mutually exclusive with: ELEC2543 or FITE2000
Assessment: 50% continuous assessment, 50% examination

COMP2501. Introduction to data science and engineering (6 credits)

The course introduces basic concepts and methodology of data science. The goal of this course is to provide students with an overview and practical experience of the entire data analysis process. Topics include: data source and data acquisition, data preparation and manipulation, exploratory data analysis, statistical and predictive analysis, data visualization and communication.

Prerequisite: COMP1117 or ENGG1330
Mutually exclusive with: STAT1005 or STAT1015
Assessment: 50% continuous assessment, 50% examination

COMP3230. Principles of operating systems (6 credits)

Operating system structures, process and thread, CPU scheduling, process synchronization, deadlocks, memory management, file systems, I/O systems and device driver, mass-storage structure and disk scheduling, case studies.

Prerequisites: COMP2113 or COMP2123 or ENGG1340; and COMP2120 or ELEC2441
Mutually exclusive with: ELEC3541
Assessment: 50% continuous assessment, 50% examination

COMP3231. Computer architecture (6 credits)

Introduction to computer design process; performance and cost analysis; instruction set design; data-path and controller design; pipelining; memory system; I/O design; GPU architecture and programming; introduction to advanced topics.

Prerequisite: COMP2120
Assessment: 40% continuous assessment, 60% examination

COMP3234. Computer and communication networks (6 credits)

Network structure and architecture; reference models; stop and wait protocol; sliding window protocols; virtual circuits and datagrams; IP addressing and routing; flow control; congestion control; local area networks; transport protocols and application layer; and examples of network protocols.

Prerequisites: COMP2113 or COMP2123 or ELEC2543 or ENGG1340; and COMP2120 or ELEC2441
Mutually exclusive with: ELEC3443
Assessment: 50% continuous assessment, 50% examination

COMP3235. Compiling techniques (6 credits)

Lexical analysis; symbol table management; parsing techniques; error detection; error recovery; error diagnostics; run-time memory management; optimization; code generation.

Prerequisite: COMP2119 or FITE2000
Assessment: 50% continuous assessment, 50% examination

COMP3251. Algorithm design (6 credits)

The course introduces various algorithm design techniques, including divide and conquer, greedy, and dynamic programming, and studies selected topics on graph algorithms. These techniques can be used to design better algorithms in various areas of computer science. The course also gives an overview of NP-complete problems.

Prerequisite: COMP2119
Mutually exclusive with: COMP3250 or COMP3252
Assessment: 50% continuous assessment, 50% examination

COMP3252. Algorithm design and analysis (6 credits)

The course studies principles of algorithm design and the analysis of sophisticated algorithms (regarding proof of correctness and time complexity). Topics include divide-and-conquer, dynamic programming, greedy algorithms, graph algorithms, network flow, geometric algorithms, and NP-completeness. The course puts emphasis on mathematical rigor; it expects students to figure out the mathematics and logic that make algorithms work. Students can form pairs to discuss the assignments and are required to write rigorous proofs of correctness and analysis independently.

Prerequisite: COMP2119 (Grade B or above) or special approval by instructor
Mutually exclusive with: COMP3250 or COMP3251
Assessment: 50% continuous assessment, 50% examination

COMP3258. Functional programming (6 credits)

The course teaches the basics of functional programming using the language Haskell. The main goal is introduce students to fundamental programming concepts such as recursion, abstraction, lambda expressions and higher-order functions and data types. The course will also study the mathematical reasoning involved in the design of functional programs and techniques for proving properties about functions so defined. With the adoption of lambda expressions recent versions of Java, C++ or C#, functional programming and related programming techniques are becoming increasingly more relevant even for programmers of languages that are not traditionally viewed as functional. This course is important to introduce students to such techniques.

Prerequisites: COMP2121
Assessment: 50% continuous assessment, 50% examination

COMP3259. Principles of programming languages (6 credits)

Syntax and semantics specification; data types; data control and memory management; expressions, precedence and associativity of operators; control structures; comparative study of existing programming languages; advanced topics such as polymorphism, programming paradigms, exception handling and concurrency.

Prerequisite: COMP2119 or FITE2000
Assessment: 40% continuous assessment, 60% examination

COMP3270. Artificial intelligence (6 credits)

This is an introduction course on the subject of artificial intelligence. Topics include: intelligent agents; search techniques for problem solving; knowledge representation; logical inference; reasoning under uncertainty; statistical models and machine learning.

Prerequisite: COMP2119 or FITE2000 or COMP2502
Mutually exclusive with: ELEC4544 or IIMT3688
Assessment: 50% continuous assessment, 50% examination

COMP3271. Computer graphics (6 credits)

Overview of graphics hardware, basic drawing algorithms, 2-D transformations, windowing and clipping, interactive input devices, curves and surfaces, 3-D transformations and viewing, hidden-surface and hidden-line removal, shading and colour models, modelling, illumination models, image synthesis, computer animation.

Prerequisite: COMP2119
Assessment: 50% continuous assessment, 50% examination

COMP3278. Introduction to database management systems (6 credits)

This course studies the principles, design, administration, and implementation of database management systems. Topics include: entity-relationship model, relational model, relational algebra, database design and normalization, database query languages, indexing schemes, integrity, and concurrency control.

Prerequisite: COMP2119 or COMP2502 or ELEC2543 or FITE2000
Mutually exclusive with: IIMT3601
Assessment: 50% continuous assessment, 50% examination

COMP3297. Software engineering (6 credits)

This course introduces the fundamental principles and methodologies of modern software engineering. It covers the software process and activities, including requirements engineering, system modelling, software design, testing, and evolution. It highlights the use of contemporary tools, frameworks and techniques. It features an object-oriented software design project in which students work in teams to satisfy their clients’ needs.

Prerequisite: ENGG1340 or COMP2113 or COMP2123
Mutually exclusive with: IIMT3602
Assessment: 50% continuous assessment, 50% examination

COMP3311. Legal aspects of computing (6 credits)

To introduce students to the laws affecting computing and the legal issues arising from the technology.  Contents include: the legal system of Hong Kong; copyright protection for computer programs; intellectual property issues on the Internet; data privacy; computer-related crimes; codes of professional conduct for computer professionals.

Prerequisite: COMP2113 or COMP2123 or ENGG1340
Assessment: 30% continuous assessment, 70% examination

COMP3314. Machine learning (6 credits)

This course introduces algorithms, tools, practices, and applications of machine learning. Topics include core methods such as supervised learning (classification and regression), unsupervised learning (clustering, principal component analysis), Bayesian estimation, neural networks; common practices in data pre-processing, hyper-parameter tuning, and model evaluation; tools/libraries/APIs such as scikit-learn, Theano/Keras, and multi/many-core CPU/GPU programming.

Prerequisite: MATH1853 or MATH2014; and COMP2119 or COMP2502 or ELEC2543 or FITE2020
Assessment: 50% continuous assessment, 50% examination

COMP3316. Quantum Information and Computation (6 credits)

This course offers an introduction to the interdisciplinary field of quantum information and computation. We will start from the basic rules of quantum theory and become familiar with the counterintuitive notions of quantum superposition and entanglement. In particular, we will see how quantum systems could be used to detect an object without directly interacting with it (Elitzur-Vaidman bomb tester), to increase the amount of bits that can be sent through a transmission line (dense coding), and to increase the chance to win certain games (CHSH game and GHZ game). Once the basics have been covered, we will provide an overview of quantum computation and of major quantum algorithms such as Grover's search algorithm and Shor's factoring algorithm for prime factorization. Finally, we will introduce the upgraded framework of quantum theory, and use it to explore applications to quantum error correction, quantum state discrimination, quantum cryptography, and quantum teleportation.

Prerequisite: MATH1853 or MATH2014 or MATH2101 or equivalent (e.g., PHYS2155)
Assessment: 50% continuous assessment, 50% examination

COMP3317. Computer vision (6 credits)

This course introduces the principles, mathematical models and applications of computer vision. Topics include: image processing techniques, feature extraction techniques, imaging models and camera calibration techniques, stereo vision, and motion analysis.

Prerequisites: COMP2119; and MATH1853 or MATH2014 or MATH2101
Assessment: 50% continuous assessment, 50% examination

COMP3320. Electronic commerce technology (6 credits)

This course aims to help students to understand the technical and managerial challenges they will face as electronic commerce becomes a new locus of economics activities. Topics include Internet and WWW technology, information security technologies, public-key crypto-systems, public-key infrastructure, electronic payment systems, and electronic commerce activities in different sectors.

Prerequisite: COMP3278
Assessment: 50% continuous assessment, 50% examination

COMP3322. Modern technologies on World Wide Web (6 credits)

Selected network protocols relevant to the World Wide Web (e.g., HTTP, DNS, IP); World Wide Web; technologies for programming the Web (e.g, HTML, style sheets, PHP, JavaScript, Node.js.; other topics of current interest (AJAX, HTML5, web services, cloud computing).

Prerequisite: COMP1117 or ENGG1330
Mutually exclusive with: IIMT3663
Assessment: 60% continuous assessment, 40% examination

COMP3323. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the system and algorithmic aspects. It will also survey the recent development and progress in selected areas. Topics include: query optimization, spatial-spatiotemporal data management, multimedia and time-series data management, information retrieval and XML, data mining.

Prerequisite: COMP3278
Mutually exclusive with: FITE3010
Assessment: 50% continuous assessment, 50% examination

COMP3329. Computer game design and programming (6 credits)

This course introduces the concepts and techniques for computer game design and development. Topics include: game history and genres, game design process, game engine, audio and visual design, 2D and 3D graphics, physics, optimization, camera, network, artificial intelligence and user interface design. Students participate in group projects to gain hands-on experience in using common game engine in the market.

Prerequisite: COMP2113 or COMP2123 or ENGG1340
Assessment: 50% continuous assessment, 50% examination

COMP3330. Interactive mobile application design and programming (6 credits)

This course aims at introducing the design and development issues of mobile apps. Students will learn the basic principles, constraints and lifecycle of mobile apps. Then they will learn how to use modern object-oriented languages for the development and different design patterns. Next they will learn various development issues such as graphics, touch events, handling of concurrency, sensors, location services and server connection. Students will also participate in both individual assignments and group project to practice ideation, reading, writing, coding and presentation throughout this course. 

Prerequisite: COMP2396 or FITE2000
Assessment: 70% continuous assessment, 30% examination

COMP3340. Applied deep learning (6 credits)

An introduction to algorithms and applications of deep learning. The course helps students get hands-on experience of building deep learning models to solve practical tasks including image recognition, image generation, reinforcement learning, and language translation. Topics include: machine learning theory; optimization in deep learning; convolutional neural networks; recurrent neural networks; generative adversarial networks; reinforcement learning; self-driving vehicle.

Prerequisites: COMP2119 or COMP2502 or ELEC2543 or FITE2000; and MATH1853 or MATH2014
Mutually exclusive with: ELEC4544
Assessment: 50% continuous assessment, 50% examination

COMP3351. Advanced algorithm analysis (6 credits)

This class introduces advanced mathematical techniques for analyzing the complexity and correctness of algorithms. NP-complete problems are believed to be not solvable in polynomial time and we study how approximation algorithms could give near optimal solutions. In particular, we will see that probability theory gives us a very powerful tool to tackle problems that are otherwise hard to solve.

Prerequisite: COMP3250 or COMP3251 or COMP3252; or basic knowledge in probability and algorithms
Assessment: 50% continuous assessment, 50% examination

COMP3352. Algorithmic Game Theory (6 credits)

Strategic behaviors of users are of increasingly importance in today’s computational problems, from data analysis (where a user may manipulate his data) to routing (where a user may strategically choose a path instead of the one that the algorithm specifies). This is an undergraduate advanced algorithm course that covers various topics at the interface of theoretical computer science and economics, seeking to provide the basic concepts and techniques, both economic and algorithmic ones, that would allow to students to design algorithms that achieve the desirable outcomes in the presence of strategic behaviors of users.

This course focuses on three topics: 1) mechanism design, a study on incentivizing users to truthfully report their data for a given computational task; 2) price of anarchy in games, a systematic approach to quantify the inefficiency caused by users’ strategic behaviors; and 3) algorithms and complexity theory for learning and computing Nash and market equilibria. The course will also cover some selected advanced topics such as the use of data of past user behaviors in auction design, and case studies of some important applications including online advertisement auctions and kidney exchange market.

Prerequisites: MATH1853 or MATH2014 or MATH2101; and COMP2119
Assessment: 50% continuous assessment, 50% examination

COMP3353. Bioinformatics (6 credits)

The goal of the course is for students to be grounded in basic bioinformatics concepts, algorithms, tools, and databases. Students will be leaving the course with hands-on bioinformatics analysis experience and empowered to conduct independent bioinformatics analyses. We will study: 1) algorithms, especially those for sequence alignment and assembly, which comprise the foundation of the rapid development of bioinformatics and DNA sequencing; 2) the leading bioinformatics tools for comparing and analyzing genomes starting from raw sequencing data; 3) the functions and organization of a few essential bioinformatics databases and learn how they support various types of bioinformatics analysis.

Prerequisite: COMP1117 or ENGG1330
Assessment: 70% continuous assessment, 30% examination

COMP3354. Statistical learning (6 credits)

The challenges in learning from big and complicated data have led to significant advancements in the statistical sciences. This course introduces supervised and unsupervised learning, with emphases on the theoretical underpinnings and on applications in the statistical programming environment R. Topics include linear methods for regression and classification, model selection, model averaging, basic expansions and regularization, kernel smoothing methods, additive models and tree-based methods. We will also provide an overview of neural networks and random forests.

Pre-requisite: MATH1853 or MATH2101  or STAT1602 or STAT1603
Assessment: 50% continuous assessment, 50% examination

COMP3355. Cyber security (6 credits)

This course introduces the principles, mechanisms and implementation of cyber security and data protection. Knowledge about the attack and defense are included. Topics include notion and terms of cyber security; network and Internet security, introduction to encryption: classic and modern encryption technologies; authentication methods; access control methods; cyber attacks and defenses (e.g. malware, DDoS).

Pre-requisites: COMP2119 or ELEC2543 or FITE2000
Mutually exclusive with: ELEC4641
Assessment: 50% continuous assessment, 50% examination

COMP3356. Robotics (6 credits)

This course provides an introduction to mathematics and algorithms underneath state-of-the-art robotic systems. The majority of these techniques are heavily based on probabilistic reasoning and optimization – two areas with wide applicability in modern AI. We will also cover some basic knowledge about robotics, namely geometry, kinematics, dynamics, control of a robot, as well as the mathematical tools required to describe the spatial motion of a robot will be presented. In addition, we will cover perception, planning, and learning for a robotic system, with the obstacle avoidance and robotic arm manipulation as typical examples.

Prerequisites: MATH1853 or MATH2014; and COMP2121 or STAT2601; and COMP2119 or FITE2000
Assessment: 50% continuous assessment, 50% examination

COMP3357. Cryptography (6 credits)

This course offers a gentle introduction to the field of cryptography. We will start from the basic principles of confidentiality, integrity and authentication.  After that, we will go through some fundamental cryptographic primitives like hash function, symmetric key encryption, public key encryption and digital signatures.  Finally, we will introduce the basics of quantum cryptography including quantum key distribution and random number generation.

Prerequisites: MATH1853 or MATH2014 or MATH2101 or equivalent (e.g., PHYS2155)
Assessment: 50% continuous assessment, 50% examination

COMP3358. Distributed and parallel computing (6 credits)

This course introduces the basic concepts and modern software architectures on distributed and parallel computing. Topics include: computer network primitives, distributed transactions and two-phase commits, webservices, parallelism and scalability models, distributed consistency models, distributed fault-tolerance, actor and monads, Facebook photo cache, Amazon key-value stores, Google Map-reduce, Spark, and TensorFlow.

Prerequisite: COMP3230 or COMP3234
Assessment: 50% continuous assessment, 50% examination

COMP3360. Data-driven computer animation (6 credits)

Basics of character animation, keyframe animation, motion capture, inverse kinematics,  physically based character animation, Basics of physically-based animation, rigid body dynamics,  point-based dynamics,  hair animation, cloth simulation, facial animation,  crowd simulation,  mesh-shape editing,  performance capture,  skinning,  data-driven character control, data-driven cloth animation, data-driven facial animation, data-driven skinning.

Prerequisite: COMP2119
Assessment: 50% continuous assessment, 50% examination

COMP3361. Natural language processing (6 credits)

Natural language processing (NLP) is the study of human language from a computational perspective. The course will be focusing on machine learning and corpus-based methods and algorithms. We will cover syntactic, semantic and discourse processing models. We will describe the use of these methods and models in applications including syntactic parsing, information extraction, statistical machine translation, dialogue systems, and summarization. This course starts with language models (LMs), which are both front and center in natural language processing (NLP), and then introduces key machine learning (ML) ideas that students should grasp (e.g. feature-based models, log-linear models and then the neural models). We will land on modern generic meaning representation methods (e.g. BERT/GPT- 3) and the idea of pretraining / finetuning.

Prerequisites: COMP3314 or COMP3340; and MATH1853
Assessment: 50% continuous assessment, 50% examination

COMP3362. Hands-on AI: experimentation and applications (6 credits)

This course comprises two main components: students first acquire the basic know-how of the state-of-the-art AI technologies, platforms and tools (e.g., TensorFlow, PyTorch, scikit-learn) via example-based modules in a self-paced learning mode. Students will then identify a creative or practical data-driven application and implement an AI-powered solution for the application as the course project. Students will be able to experience a complete AI experimentation and evaluation cycle throughout the project.

Pre-requisites: COMP3314
Mutually exclusive with: COMP3359
Assessment: 100% continuous assessment

COMP3364. Digital forensics (6 credits)

This course first provides an overview on common cyber crime with examples, then introduces digital evidence, and the fundamental principles of digital investigation and forensics. Topics include basic forensic science principles (e.g. Locard’s exchange principle), the process of collecting and preserving digital evidence, analyzing digital evidence, and prepare forensic examination reports. In the course, students will learn proper process, techniques and tools for digital investigation and forensic examination.

Prerequisites: COMP3230 and COMP3355
Assessment: 50% continuous assessment, 50% examination

COMP3365. Cyber attack and defense (6 credits)

This course teaches students some basic hands-on cyber defense skills such as how to configure a firewall, install intrusion detection tools, use existing tools (e.g. Metasploit) for penetration test, monitor a system for possible attacks, and how to handle cyber incidents. On the other hand, we also teach students how to conduct certain ethical hacking such as password cracking, network hacking, and operating system hacking, so as to better protect a system. Students are expected to do a lot of practical exercises.

Prerequisites: COMP3230, COMP3234 and COMP3355
Assessment: 50% continuous assessment, 50% examination

COMP3366. Quantum algorithms and computer architecture (6 credits)

Quantum computing can perform hard computational tasks that are far beyond the reach of conventional computers. This course will focus on quantum computing and its realization, offering a tour through the most important concepts and the most recent progresses. The course consists of four major parts: basics of quantum computing, quantum algorithms, quantum machine learning, and quantum error correction. The course starts with an introduction to the essential ingredients of quantum circuits. We will get familiar with quantum computing by going through representative quantum algorithms and visiting more advanced topics in quantum machine learning. We will then discuss how to build a quantum computer: various ways of implementing quantum computations and coping with noises will be discussed. Finally, we will conclude the course with an overview of recent progresses and with a perspective on the future of quantum computing. Tutorials will also be offered on quantum programming, where we will design our own quantum algorithms that address practical problems.

Prerequisites: MATH1853
Assessment: 50% continuous assessment, 50% examination

COMP3405. Engineering quality software (6 credits)

This course examines current engineering techniques, practices and processes underlying the development, evolution, and operation of quality software. Topics include: software quality models and metrics; architecture and design patterns for quality; code quality and its assessment; software refactoring and evolution; functional testing at unit, feature and system levels; acceptance testing; performance testing; security testing; test automation; DevOps measurement and quality; and process quality and improvement.

Prerequisite: COMP3297
Assessment: 50% continuous assessment, 50% examination

COMP3407. Scientific computing (6 credits)

This course provides an overview and covers the fundamentals of scientific and numerical computing. It focuses on topics in numerical analysis and computation, with discussions on applications of scientific computing.

Prerequisites: COMP1117 or ENGG1330; and COMP2121
Assessment: 50% continuous assessment, 50% examination

COMP3516. Data analytics for IoT (6 credits)

This course introduces basic concepts, technologies, and applications of the Internet of Things (IoT), with a focus on data analytics. The course covers a range of enabling techniques in sensing, computing, analytics, learning for IoT and connects them to exciting applications in smart homes, healthcare, security, etc. The lectures cover the pipeline of data generation, data acquisition, data transportation, data analysis and learning, and data applications, with various topics from the fundamentals (e.g., signal processing, statistical analysis, machine learning) to real-world systems. Billions of things are connected today, and this course helps students to understand how IoT will evolve into AIoT (Artificial Intelligence of Things).

Prerequisite: MATH1853 or MATH2014; and COMP2119
Assessment: 60% continuous assessment, 40% examination

IMSE3137. Virtual reality for systems engineering (6 credits)

Fundamental of virtual reality, concepts of virtual, augmented and mixed reality, visualization and interacting with complex information and systems with virtual reality, applications of virtual reality technology in engineering systems design and analysis, immersive and interactive virtual environments; innovation and consciousness with virtual reality system development and deployment, ethical issues and social impacts of adopting virtual reality in system development. Designing and building virtual systems with immersive virtual reality systems including CAVE-like environment and VR headsets.

Assessment: 80% continuous assessment, 20% examination

IMSE3139. Cyber-physical systems (6 credits)

Cyber systems: integration of computation, communication and control; Physical systems: natural and man-made systems governed by the laws of physics; Concept and characteristics of cyber-physical systems (CPSs): integration of cyber systems and physical systems; Architecture of CPSs: integration of cyber components with physical processes, interfaces, converters and networks in CPSs; Technologies of CPSs: distributed computing and networking, internet-of-things (IoT), sensing and smart identification, embedded technologies, data collection, control and signal processing, and location tracking; Applications of CPSs: smart manufacturing, smart supply chains, healthcare and medical services; smart buildings and smart cities; Trends of CPSs: challenges, research and development of software, hardware and applications. The course includes lectures and projects.

Assessment: 100% continuous assessment

COMP3410. Internship (0 credit)
[for intakes of 2018 and thereafter]

The course consists of two components: internship and professionalism. Internship requires students to spend a minimum of four weeks employed, full-time, as IT interns or trainees. During this period, they are engaged in work of direct relevance to their programme of study. The Internship provides students with practical, real-world experience and represents a valuable complement to their academic training. Professionalism exposes students to social and professional issues in computing. Students need to understand their professional roles when working as computer professionals as well as the responsibility that they will bear. They also need to develop the ability to ask serious questions about the social impact of computing and to evaluate proposed answers to those questions. Topics include: intellectual property, privacy, social context of computing, risks, safety and security concerns for computer professionals, professional and ethical responsibilities, and continuing professional development.

Assessment: 100% continuous assessment

COMP3413. Research internship (6 credits)

The student will participate in a research project under the guidance and supervision of a teacher over a prescribed period of time; the results will be presented in an oral and a written report.

Assessment: 100% continuous assessment

COMP3414. Experiential learning on artificial intelligence and robotics (6 credits)

This is a multidisciplinary experiential learning course designed for engineering students to learn about artificial intelligence (AI) and robotics. Students will learn AI and robot related technical disciplines (such as machine vision, embedded system design, mechanical control, inertial navigation, human-computer interaction, etc.) through designing and building intelligent robots, and forming teams to participate in robotics competitions such as RoboMaster Robotics Competition and AI Driving Olympics (AI-DO), etc.

Assessment: 100% continuous assessment

COMP4801. Final year project (12 credits)

Student individuals or groups, during the final year of their studies, undertake full end-to-end development of a substantial project, taking it from initial concept through to final delivery. Topics range from applied software development to assignments on basic research. In case of a team project, significant contribution is required from each member and students are assessed individually, such that each student is given a separate project title. Strict standards of quality will be enforced throughout the project development.

Mutually exclusive with: COMP4802
Assessment: 100% continuous assessment

COMP4804. Computing and data analytics project (6 credits)
[for candidates pursuing the degree BEng(EngSc) – Computing and Data Analytics]

Students during the final year of their studies undertake a substantial project, taking it from initial concept through to final delivery, and integrating their knowledge and skills on computing and data analytics.

Assessment: 100% continuous assessment

COMP4805. Project (6 credits)
[for non-BEng(CompSc) candidates pursuing Computer Science as second major]

Students during the final year of their studies undertake a substantial project, taking it from initial concept through to final delivery, and integrating their knowledge and skills on computing.

Assessment: 100% continuous assessment

Last updated: July 14, 2023

Department of Computer Science
Rm 301 Chow Yei Ching Building
The University of Hong Kong
Pokfulam Road, Hong Kong

Copyright © Department of Computer Science, Faculty of Engineering, The University of Hong Kong. All rights reserved.

Privacy Policy
Don't have an account yet? Register Now!

Sign in to your account