Course Descriptions
Subject to the University’s approval

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

General Engineering Courses

Course Code Course
ENGG1111 Computer programming (6 credits)
ENGG1112 Computer programming I (6 credits)
MATH1851 Calculus and ordinary differential equations (6 credits)
PHYS1050 Physics for engineering students (6 credits)
ENGG1201 Engineering for sustainable development (6 credits)
ENGG1202 Foundation of computer science (6 credits)
ENGG1203 Introduction to electrical and electronic engineering (6 credits)
ENGG1204 Industrial management and logistics (6 credits)
ENGG1205 Introduction to mechanical engineering (6 credits)
ENGG1206 Introduction to biomedical engineering (6 credits)
ENGG1207 Foundation of biochemistry for medical engineering

Please refer to the General Engineering 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 project based courses, this one semester, 6-credit course will build and consolidate final year CS and Computing and data analytics 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: COMP4801 or COMP4804
Assessment: 100% continuous assessment


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:

  • Scientific and Technology Literacy
  • Humanities
  • Global Issues
  • China: Culture, State and Society

Courses with prefix CSISxxxx are offered to students admitted to the 3-year curriculum in 2012/13 and before, courses with prefix COMPxxxx are offered to students admitted to the 4-year curriculum in 2012/13 and thereafter.

COMP1117. Computer programming (6 credits)

This course covers both the basic and advanced features of the C/C++ programming languages, including syntax, identifiers, data types, control statements, functions, arrays, file access, objects and classes, class string, structures and pointers. It introduces programming techniques such as recursion, linked lists and dynamic data structures. The concept and skills of program design, implementation and debugging, with emphasis on problem-solving, will also be covered.

Assessment: 50% continuous assessment, 50% 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: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112
Pre-/Co-requisite: CSIS1122 or CSIS1123 or COMP2123
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: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112
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

COMP2123. Programming technologies and tools (6 credits)

This course introduces various technologies and tools that are useful for software development, including Linux, C++ STL, the C language, shell scripts, python and xml. Learning materials will be provided but there will be no lecture. This strengthens the self-learning ability of the students.

Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112
Assessment: 70% continuous assessment, 30% 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: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112
Mutually exclusive with: ELEC2543
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: CSIS1122 or CSIS1123 or COMP2123 and CSIS1120 or COMP2120 or ELEC1401 or ELEC2441
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: CSIS1120 or 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; character and bit oriented protocols; virtual circuits and datagrams; routing; flow control; congestion control; local area networks; issues and principles of network interconnection; transport protocols and application layer; and examples of network protocols.

Prerequisite: CSIS0230 or COMP3230
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: CSIS1119 or COMP2119; and CSIS1122 or CSIS1123 or COMP2123
Assessment: 50% continuous assessment, 50% examination

COMP3250. Design and analysis of algorithms (6 credits)

The course studies various algorithm design techniques, such as divide and conquer, and dynamic programming. These techniques are applied to design novel algorithms from various areas of computer science. Topics include: advanced data structures; graph algorithms; searching algorithms; geometric algorithms; overview of NP-complete problems.

Prerequisite: CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543
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: CSIS1118 or CSIS1121 or 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.

Prerequisites: CSIS1119 or COMP2119
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: CSIS1119 or COMP2119 or CSIS1122 or CSIS1123 or COMP2123
Mutually exclusive with: BUSI0088 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: CSIS1119 COMP2119 or CSIS1122 or CSIS1123 or COMP2123
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: CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543
Mutually exclusive with: BUSI0052 or IIMT3601
Assessment: 50% continuous assessment, 50% examination

COMP3297. Software engineering (6 credits)

This course introduces the fundamental principles and methodologies of software engineering. It covers the software process, and methods and tools employed in the development, with focus on the analysis, design, implementation and testing of contemporary object-oriented systems. The use of the UML and contemporary frameworks are emphasized. The course includes a team-based project in which students apply their new knowledge to a full lifecycle of iterative and incremental development.

Prerequisite: CSIS1122 or CSIS1123 or COMP2123
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: CSIS1122 or CSIS1123 or COMP2123
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; and CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543
Assessment: 50% continuous assessment, 50% examination

COMP3316. Quantum Information and Computation (6 credits)

This course offers a gentle introduction to the interdisciplinary field of quantum information and computation. We will start from the basic principles of quantum theory and become familiar with the counterintuitive notions of quantum superposition and entanglement. Once the basics have been covered, we will explore the cornerstones of quantum information theory: quantum cloning machines, quantum teleportation, quantum state discrimination, quantum error correction, quantum cryptography and data compression. Finally, we will provide an overview of quantum computation and of the main quantum algorithms, including Shor's algorithm for prime factorization in polynomial time and Grover's quantum search algorithm.

Prerequisite: MATH1853 or MATH2101 or PHYS2155 or equivalent
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.

Prerequisite: CSIS1119 or COMP2119 or CSIS1122 or CSIS1123 or COMP2123
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: CSIS0278 or COMP3278
Assessment: 30% continuous assessment, 70% 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, XML, style sheets, PHP, JavaScript, Node.js.; other topics of current interest (AJAX, HTML5, web services, cloud computing).

Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112
Mutually exclusive with: BUSI0063 or IIMT3663
Assessment: 50% continuous assessment, 50% 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: CSIS0278 or COMP3278
Assessment: 50% continuous assessment, 50% examination

COMP3327. Computer and network security (6 credits)

This course introduces the principles, mechanisms and implementation of computer security and data protection. Knowledge about the attack and defend are included. Topics include notion and terms of information security; introduction to encryption: classic and modern encryption technologies include public-key systems; authentication methods; access control methods; system integrity attacks and defences (e.g. viruses); introduction to network/Internet security; analysis and models of secure systems.

Pre-requisites: CSIS0230 or COMP3230; and CSIS0234 or COMP3234
Mutually exclusive with: ELEC4641
Assessment: 30% continuous assessment, 70% examination

COMP3329. Computer game design and programming (6 credits)

The course will study practical topics in game design. Topics includes: types of game, game platforms, design of game, 3D model and kinematics, rendering techniques, collision detection, project management, AI, UI, sound effects, and networking.

Pre-requisite: CSIS1122 or CSIS1123 or COMP2123
Assessment: 50% continuous assessment, 50% examination

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

This course introduces the Android platform for developing interactive mobile applications. Topics include user interface, parallel computing, graphics, multimedia, sensors, database, and social computing. Students participate in both individual assignments and group projects to practice ideation, reading, writing, coding, and presentation.

Prerequisite: CSIS0396 or COMP2396
Assessment: 70% continuous assessment, 30% 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: CSIS0250 or COMP3250; 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.

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

COMP3402. System architecture and distributed computing (6 credits)

This course introduces the architecture of modern systems and the concepts and principles of distributed computing. Topics include: client-server computing, multi-tier architectures, data/object persistence, parallel server systems, naming services, transaction processing, middleware and messaging, component technologies, and web services/APIs.

Prerequisite: CSIS0396 or COMP2396
Mutually exclusive with: ELEC3643
Assessment: 50% continuous assessment, 50% examination

COMP3403. Implementation, testing and maintenance of software systems (6 credits)

This course examines the theory and practice of software implementation, testing and maintenance. Topics in implementation include: detailed design issues and implementation strategies; coding style and standards; the review process; pattern implementation and reuse. Testing covers strategies and techniques for unit and component testing; integration testing; system, performance and acceptance testing; test documentation and test management. Topics in maintenance include maintenance techniques, tools and metrics; software rejuvenation; and refactoring.

Pre/Co-requisite: CSIS0396 or COMP2396
Assessment: 50% continuous assessment, 50% examination

COMP3404. Software quality and project management (6 credits)

Topics in software quality include: software quality models; quality assurance; software quality metrics; quality reviews, inspections and audits. Topics in project management include: project planning, cost estimation and scheduling; project monitoring and control; agile, traditional and extreme process models and their management; risk analysis; configuration management and control; software acquisition; contract management; and process improvement.

Prerequisite: CSIS0297 or COMP3297
Mutually exclusive with: BUSI0060 or BUSI0061 or IIMT4601
Assessment: 40% continuous assessment, 60% examination

COMP3407. Scientific computing (6 credits)

This course provides an overview and covers the fundamentals of scientific and numerical computing. Topics include numerical analysis and computation, symbolic computation, scientific visualization, architectures for scientific computing, and applications of scientific computing.

Prerequisites: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112; and CSIS1118 or ENGG1007 or COMP2121
Assessment: 50% continuous assessment, 50% examination

COMP3412. Internship (6 credits)
[for intakes of 2012 and thereafter (4-year curriculum)]

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 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

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.

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 5, 2017

top