Home | Intranet | Privacy | Contact Us
The MSc(CompSc) programme is a comprehensive postgraduate study programme provides advanced and in-depth learning in Computer Science. The programme is credit unit based, with courses of both applied and fundamental nature. Students can choose focussed streams of study or a comprehensive and diversified study in Computer Science.
Focussed streams of study represent a cohesive collection of related courses that provides both fundamental and in-depth exposure to students in a given ICT domain. Students can extend and deepen their knowledge in the specialization streams in Information Security, Multimedia Computing and Financial Computing. Students must undertake a minimum of 4 stream specific courses and a dissertation (equivalent to 24 credits) specific to the stream area and can choose any other 4 courses in the curriculum to complete the required number of units.
General Stream offers students the most flexibility to design their own study portfolio based on their career aspiration or requirements. In this scenario, a student needs to choose any 8 courses in the MSc(CompSc) discipline, which are listed in the course descriptions section, and a dissertation in Computer Science (equivalent to 24 credits).
The following is a list of courses offered by the Department of Computer Science. The courses, both in terms of range and syllabus, are updated and revised continuously by the Programme Committee and the Department. Any revision requires University’s approval. The list of courses is also subject to change because occasionally we may decide not to offer a particular course in one year or to add some new ones, based on the findings of the annual curriculum review. Please refer to our website for updated information.
Some courses have been approved by the HKSAR government as reimbursable courses under the Continuing Education Fund (CEF) for Hong Kong residents (marked with ).
COMP7103. Data mining (6 credits)
Data mining is the automatic discovery of statistically interesting and potentially useful patterns from large amounts of data. The goal of the course is to study the main methods used today for data mining and on-line analytical processing. Topics include Data Mining Architecture; Data Preprocessing; Mining Association Rules; Classification; Clustering; On-Line Analytical Processing (OLAP); Data Mining Systems and Languages; Advanced Data Mining (Web, Spatial, and Temporal data).
COMP7201. Analysis and design of enterprise applications in UML (6 credits)
This course presents an industrial-strength approach to software development based on the object-oriented modelling of business entities. Topics include: overview of software engineering and object-oriented concepts; unified process and Unified Modelling Language (UML); use-case modelling and object modelling; dynamic modelling using sequence diagrams and state machines; object-oriented design; user interface design; introducing design patterns and enterprise applications; shortcomings of UML and remedies. Emphasis will be given on hands-on exercises with the use of CASE tools.
Prerequisites: A course in object-oriented programming and a course in software engineering or systems analysis and design.
COMP7203. Modern software design (6 credits)
The practice of software design has changed markedly in recent years as new approaches to design have gained broad acceptance and several have progressed to become mainstream techniques themselves. This course introduces the principles and practical application of these modern approaches. It first reviews the goals of software design and the qualities that differentiate good designs from bad ones. From this foundation it teaches elemental design patterns, classic design patterns and anti-patterns, refactoring, refactoring to patterns, test-driven design and design for test. Implementation issues, programming idioms and effective use of the language are introduced and discussed where appropriate.
Prerequisites: A course in software engineering or analysis and design of software systems. The course also requires the ability to program in Java and a basic understanding of the UML class and sequence diagrams.
COMP7205. Enterprise architecture (6 credits)
This course aims to teach students the practical skills in modeling and developing enterprise IT architectures. It covers different enterprise architecture frameworks, methodologies and practices (such as TOGAF and Zachman). Students will also learn common enterprise integration patterns for implementation of complex enterprise applications based on Service-Oriented Architecture (SOA). New architecture trends (e.g., cloud computing, shared-nothing architecture, column-based database) will also be introduced.
COMP7301. Computer and network security (6 credits)
The aim of the course is to introduce different methods of protecting information and data in computer and information systems from unauthorized disclosure and modification. Topics include introduction to security; cryptographic algorithms; cryptographic infrastructure; internet security; secure applications and electronic commerce.
COMP7303. High-performance computing (6 credits)
This course offers an overview of state-of-the-art parallel architectures and programming languages. The students will learn the issues related to the performance of parallel algorithms, and how to design efficient parallel algorithms for parallel machines. Topics include milestones in the history of HPC and its applications; high-performance computing architectures; performance law; modern CPU design; interconnection network and routing techniques; memory hierarchy and cache coherence protocol; parallel algorithm design; parallel programming models and case studies of supercomputers.
COMP7304. The wireless Internet and mobile network (6 credits)
In the recent few years, many new kinds of wireless network such as mobile ad-hoc network and wireless sensor network are under intensive research by researchers worldwide. These networks enhance the quality of human life as they not only facilitate efficient communications among people, they also let people learn more about their surrounding environments. However, have you ever thought of the potential problems induced by these new kinds of networks?
This course aims at introducing to you various kinds of next generation wireless and mobile networks. We will highlight the scenarios, the characteristics and the technologies behind each kind of network. Then based on their design, we will discuss the potential issues that can appear or even be caused by them. Next we will demonstrate how these issues can be resolved by computer science methodologies.
COMP7305. Cluster and cloud computing (6 credits)
This course offers an overview of current cluster and cloud technologies, and discusses various issues in the design and implementation of cluster and cloud systems. Topics include cluster architecture, cluster middleware, and virtualization techniques (e.g., Xen, KVM) used in modern data centers. We will discuss three types of Cloud computing platforms, including SaaS, PaaS, and IaaS, by providing motivating examples from companies such as Google, Amazon, and Microsoft; and introduce Hadoop MapReduce and Spark programming paradigms for large-scale data analysis.
Prerequisites: The students are expected to exercise the systems configuration and administration under a Linux cluster. Basic understanding of Linux operating system and some experiences in system level programming (C/C++ or Java) are required.
COMP7306. Web technologies (6 credits)
This course aims to give students a basic understanding of various Web technologies and their industry applications. Fundamental XML concepts and techniques, such as XML Schema, XSLT, SAX, and DOM, will be introduced. New technologies related to Web 2.0, web services, service oriented architecture (SOA), and cloud computing will be studied, including RSS, ATOM, Ajax, SOAP, WSDL, ebXML.
COMP7307. Advanced real-time embedded systems and applications (6 credits)
This course’s objective is to introduce advanced real-time scheduling techniques, design and implementation considerations for Embedded Systems. It covers topics on real-time scheduling algorithms, microcontroller architecture, Digital Signal Processors (DSP) architecture, System-on-Chips (SoC), real-time operating systems, and case studies on real-time applications.
Prerequisites: Students should have basic knowledge about operating systems.
COMP7403. Computational molecular biology (6 credits)
To introduce computational methods and data structures for analyzing biological data (e.g. DNA, RNA and protein sequences). Typical topics include basics of molecular biology; biological sequence analysis; indexing data structures; RNA secondary structure alignment/prediction and phylogeny.
COMP7404. Computational intelligence and machine learning (6 credits)
This course will teach a broad set of principles and tools that will provide the mathematical and algorithmic framework for tackling problems using Artificial Intelligence (AI) and Machine Learning (ML). AI and ML are highly interdisciplinary fields with impact in different applications, such as, biology, robotics, language, economics, and computer science. AI is the science and engineering of making intelligent machines, especially intelligent computer programs, while ML refers to the changes in systems that perform tasks associated with AI.
Topics may include a subset of the following: problem solving by search, heuristic (informed) search, constraint satisfaction, games, knowledge-based agents, supervised learning, unsupervised learning; learning theory, reinforcement learning and adaptive control.
Pre-requisites: Nil, but knowledge of data structures and algorithms, probability, linear algebra, and programming would be an advantage.
COMP7405. Techniques in computational finance (6 credits)
This course introduces the major computation problems in the field of financial derivatives and various computational methods/techniques for solving these problems. The lectures start with a short introduction on various financial derivative products, and then move to the derivation of the mathematical models employed in the valuation of these products, and finally come to the solving techniques for the models.
Pre-requisites: No prior finance knowledge is required. Students are assumed to have basic competence in calculus and probability (up to the level of knowing the concepts of random variables, normal distributions, etc.). Knowledge in at least one programming language is required for the assignments/final project.
COMP7406. Software development for quantitative finance (6 credits)
This course introduces the tools and technologies widely used in industry for building applications for Quantitative Finance. From analysis and design to development and implementation, this course covers: modeling financial data and designing financial application using UML, a de facto industry standard for object oriented design and development; applying design patterns in financial application; basic skills on translating financial mathematics into spreadsheets using Microsoft Excel and VBA; developing Excel C++ add-ins for financial computation.
Pre-requisites: This course assumes basic understanding of financial concepts covered in COMP7802. Experience in C++/C programming is required.
COMP7407. Securities transaction banking (6 credits)