Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
51 views57 pages

R55 Reg

The document outlines the regulations for the Master of Science degrees in Engineering, Computer Science, and Electronic Commerce and Internet Computing, applicable to students admitted from the academic year 2018-19 onwards. It details admission requirements, curriculum structure, assessment methods, grading systems, and conditions for degree award, including the necessity of completing a capstone experience. Additionally, it specifies course selection guidelines and the criteria for maintaining enrollment and academic standing.

Uploaded by

s11018684
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views57 pages

R55 Reg

The document outlines the regulations for the Master of Science degrees in Engineering, Computer Science, and Electronic Commerce and Internet Computing, applicable to students admitted from the academic year 2018-19 onwards. It details admission requirements, curriculum structure, assessment methods, grading systems, and conditions for degree award, including the necessity of completing a capstone experience. Additionally, it specifies course selection guidelines and the criteria for maintaining enrollment and academic standing.

Uploaded by

s11018684
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

FOR REFERENCE ONLY

MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp)

REGULATIONS FOR THE DEGREES OF


MASTER OF SCIENCE IN ENGINEERING (MSc[Eng])
MASTER OF SCIENCE IN COMPUTER SCIENCE (MSc[CompSc]), AND
MASTER OF SCIENCE IN ELECTRONIC COMMERCE AND INTERNET COMPUTING
(MSc[ECom&IComp])

(Applicable to students admitted in the academic year 2018-19 and thereafter)


(See also General Regulations and Regulations for Taught Postgraduate Curricula)

The degrees of MSc(Eng), MSc(CompSc) and MSc(ECom&IComp) are each a postgraduate degree
awarded for the satisfactory completion of a prescribed curriculum in the Faculty of Engineering.

For the MSc(Eng) degree, the major part of the curriculum must include courses offered in one of the
following fields: building services engineering, electrical and electronic engineering, energy engineering,
environmental engineering, geotechnical engineering, industrial engineering and logistics management,
infrastructure project management, mechanical engineering, structural engineering, and transportation
engineering.

The MSc(Eng), MSc(CompSc) and MSc(ECom&IComp) curricula are offered in part-time and full-time
modes.

MSc 1 Admission requirements


To be eligible for admission to the curriculum leading to the degree of MSc(Eng) / MSc(CompSc) /
MSc(ECom&IComp), a candidate shall:
(a) comply with the General Regulations;
(b) comply with the Regulations for Taught Postgraduate Curricula;
(c) hold (i) a Bachelor's degree of this University in a relevant field; or
(ii) a relevant qualification of equivalent standard from this University or from another
university or comparable institution accepted for this purpose; and
(d) satisfy the examiners in a qualifying examination if required.

MSc 2 Qualifying Examination


(a) A qualifying examination may be set to test the candidate's academic ability or his/her ability
to follow the curriculum prescribed. It shall consist of one or more written papers or their
equivalent and may include a dissertation.
(b) A candidate who is required to satisfy the examiners in a qualifying examination shall not be
permitted to register until he/she has satisfied the examiners in the examination.

MSc 3 Period of Study


The curriculum of the degree of MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp) shall normally extend
over one academic year of full-time study or two academic years of part-time study. Candidates shall
MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp)

not be permitted to extend their studies beyond the maximum period of registration of two academic
years of full-time study or three academic years of part-time study, unless otherwise permitted or
required by the Board of Faculty. For both full-time and part-time modes, the period of study shall
include any assessment to be held during and/or at the end of each semester.

MSc 4 Curriculum Requirements


To complete the curriculum, a candidate shall, within the prescribed maximum period of registration
stipulated in Regulation MSc3 above:
(a) satisfy the requirements prescribed in TPG6 of the Regulations for Taught Postgraduate
Curricula;
(b) take not fewer than 72 credits of courses, in the manner specified in these regulations and
syllabuses and pass all courses as specified in the syllabuses;
(c) follow courses of instruction and complete satisfactorily all prescribed practical / laboratory
work; and
(d) satisfy the examiners in all forms of assessment as may be required in either
(i) 72 credits of courses which must include a dissertation of 24 credits or a project of 12
credits as capstone experience; or
(ii) at least 60 credits of courses successfully completed at this University (which must
include a dissertation of 24 credits or a project of 12 credits) and not more than 12 credits
of courses successfully completed at this or another university before admission to the
MSc(Eng) / MSc(CompSc) / MSc(ECom&IComp) and approved by the Board of the
Faculty.

MSc 5 Dissertation or project report


(a) A candidate who is permitted to select a dissertation or a project is required to submit the
dissertation or the project report by a date specified by the Board of Examiners.
(b) All candidates shall submit a statement that the dissertation or the project report represents
his/her own work undertaken after the registration as a candidate for the degree.

MSc 6 Selection of Courses


(a) A candidate shall select courses according to the guidelines stipulated in the syllabuses for
the degree of MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp).
(b) Selection of study patterns, as stipulated in the respective syllabus, shall be subject to the
approval of the Head of the Department concerned.
(c) Candidates shall select their courses in accordance with these regulations and the guidelines
specified in the syllabuses before the beginning of each academic year.
(d) Changes to the selection of courses may be made only during the add/drop period of the
semester in which the course begins, and such changes shall not be reflected in the transcript
of the candidate.
(e) Subject to the approval of the Committee on Taught Postgraduate Curricula on the
recommendation of the Head of the Department concerned, a candidate may in exceptional
circumstances be permitted to select additional course(s).
MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp)

(f) Requests for changes after the designated add/drop period of the semester shall be subject
to the approval of the Committee on Taught Postgraduate Curricula. Withdrawal from courses
beyond the designated add/drop period will be subject to the approval of the Committee
on Taught Postgraduate Curricula.

MSc 7 Assessment
(a) The written examination for each course shall be held after the completion of the prescribed
course of study for that course, and not later than January, May or August immediately
following the completion of the course of study for that course unless otherwise specified in
the syllabuses.
(b) A candidate, who is unable to complete the requirements within the prescribed maximum
period of registration specified in Regulation MSc3 because of illness or circumstances
beyond his/her control, may apply for permission to extend his/her period of studies.
(c) A candidate who has failed to satisfy the examiners in any course(s) is required to make up
for failed course(s) in the following manners:
(i) undergoing re-assessment/re-examination in the failed course(s); or
(ii) repeating the failed course(s) by undergoing instruction and satisfying the assessments;
or
(iii) taking another course in lieu and satisfying the assessment requirements.
(d) A candidate who has failed to satisfy the examiners in his/her dissertation or project report
may be required to submit or resubmit a dissertation or a project report on the same subject
within a period specified by the Board of Examiners.
(e) In accordance with G9(h) of the General Regulation and TPG8(d) of the Regulations for
Taught Postgraduate Curricula, there shall be no appeal against the results of examinations
and all other forms of assessment.

MSc 8 Grading system


Individual courses shall be graded according to the following grading system as determined by the Board
of Examiners:
Standard Grade Grade Point
A+ 4.3
Excellent A 4.0
A- 3.7
B+ 3.3
Good B 3.0
B- 2.7
C+ 2.3
Satisfactory C 2.0
C- 1.7
D+ 1.3
Pass
D 1.0
Fail F 0
MSc(Eng)/MSc(CompSc)/MSc(ECom&IComp)

MSc 9 Discontinuation of Studies


Unless otherwise permitted by the Board of the Faculty, a candidate will be recommended for
discontinuation of their studies in accordance with General Regulation G12 if he/she has:
(a) failed to pass 12 credits in an academic year; or
(b) failed to satisfy the examiners at a second attempt in his/her dissertation or project report
within the specified period; or
(c) failed to achieve a cumulative grade point average* (CGPA) of 1.0 or higher for two
consecutive semesters with course enrolment; or
(d) exceeded the maximum period of registration specified in Regulation MSc3.

* At the end of each semester, a cumulative grade point average (CGPA) for all courses, except
cross-listed undergraduate courses and outside curriculum requirement optional courses as
specified in the syllabuses, taken by a student (including failed courses) at the time of calculation
is computed.

MSc 10 Advanced Standing


Advanced standing may be granted to candidates in recognition of studies completed successfully before
admission to the curriculum in accordance with TPG3 of the Regulations for Taught Postgraduate
Curricula. Candidates who are awarded Advanced Standing will not be granted any further credit
transfer for those studies for which Advanced Standing has been granted. The amount of credits to be
granted for Advanced Standing shall be determined by the Board of the Faculty, in accordance with the
following principles:
(a) a candidate may be granted a total of not more than 20% of the total credits normally required
under a curriculum for Advanced Stranding unless otherwise approved by the Senate; and
(b) credits granted for advanced standing shall not be included in the calculation of the GPA but
will be recorded on the transcript of the candidate.

MSc 11 Award of Degree


To be eligible for the award of the degree of MSc(Eng) / MSc(CompSc) / MSc(ECom&IComp), a
candidate shall:
(a) comply with the General Regulations and the Regulations for Taught Postgraduate Curricula;
(b) complete the curriculum and satisfy the examiners in accordance with the regulations set out;
and
(c) achieve a cumulative grade point average (CGPA) of 1.0 or higher

MSc 12 Assessment results


On successful completion of the curriculum, candidates who have shown exceptional merit of achieving
a cumulative grade point average (CGPA) of 3.6 or higher may be awarded a mark of distinction, and
this mark shall be recorded on the candidates’ degree diploma.
1

SYLLABUSES FOR THE DEGREE OF


MASTER OF SCIENCE IN COMPUTER SCIENCE

[This syllabus is applicable to students admitted to the curriculum in the academic year 2021-22 and
thereafter.]

Definition and Terminology

Stream of study – a specialisation in the curriculum selected by a candidate which can be General,
Cyber Security, Financial Computing and Multimedia Computing.

Discipline course – any course on a list of courses in the discipline of curriculum which a candidate
must pass at least a certain number of credits as specified in the Regulations.

Subject group – a subset of courses in the list of discipline courses which have the same specialisation.

Stream specific course – any course in a subject group which corresponds to the specialisation of the
stream of study.

Elective course – any Taught Postgraduate level course offered by the Departments of the Faculty of
Engineering for the fulfilment of the curriculum requirements of the degree of MSc in Computer
Science that are not classified as discipline courses.

Capstone Experience – a 12-credit project or a 24-credit dissertation which is a compulsory and integral
part of the curriculum.

Curriculum Structure

Candidates are required to complete 72 credits of courses as set out below, normally over one academic
year of full-time study or two academic years of part-time study:

Enrolment Mode of Enrolment Mode of


10 courses + Project 8 courses + Dissertation
General Stream Cyber Security / General Stream Cyber Security /
Financial Financial
Computing / Computing /
Multimedia Multimedia
Computing Stream Computing Stream
Course Category No. of Credits No. of Credits
Discipline Courses Not less than 48 Not less than 48 Not less than 36 Not less than 36
[Include at least 24 [Include at least 24
credits in Stream credits in Stream
Specific Courses in Specific Courses
the candidate’s in the candidate’s
corresponding corresponding
stream of study] stream of study]
Elective Courses Not more than 12 Not more than 12
Capstone 12 24
Experience
Total 72 72
2

Enrolment Mode

Candidates are required to successfully complete 72 credits to graduate. They can do that by studying
in one of the following enrolment modes:
(a) 10 courses (each equivalent to 6 credits) + Project (equivalent to 12 credits)
OR
(b) 8 courses (each equivalent to 6 credits) + Dissertation (equivalent to 24 credits)

Course Selection

Candidates shall select courses in accordance with the regulations of the degree. For General Stream,
candidate can choose any discipline courses listed below in any subject group, and undertake a
dissertation or a project (COMP7704 or COMP7705) in any area in computer science. In addition, to
qualify as a graduate of Cyber Security, Financial Computing or Multimedia Computing Stream,
candidates must pass at least 4 stream specific courses (at least 24 credits in total) in the corresponding
subject group, and undertake a dissertation or a project (COMP7704 or COMP7705) in the area of the
corresponding stream.

A. Cyber Security
COMP7806. Topic in information security
COMP7901. Legal protection of digital property
COMP7903. Digital investigation and forensics
COMP7904. Information security: attacks and defense
COMP7905. Reverse engineering and malware analysis
COMP7906. Introduction to cyber security
FITE7410. Financial fraud analytics

B. Financial Computing
COMP7103. Data mining
COMP7408. Distributed ledger and blockchain technology
COMP7409. Machine learning in trading and finance
COMP7802. Introduction to financial computing
COMP7808. Topic in financial computing
COMP7906. Introduction to cyber security
FITE7405. Techniques in computational finance
FITE7406. Software development for quantitative finance
FITE7407. Securities transaction banking
FITE7410. Financial fraud analytics

C. Multimedia Computing
COMP7502. Image processing and computer vision
COMP7503. Multimedia technologies
COMP7504. Pattern recognition and applications
COMP7505. User interface design and development
COMP7506. Smart phone apps development
COMP7507. Visualization and visual analytics
COMP7508. Data-driven computer animation
COMP7604. Game design and development
COMP7807. Topic in multimedia computing

D. Other discipline courses


COMP7104. Advanced database systems
COMP7105. Advanced topics in data science
COMP7106. Big data management
COMP7107. Management of complex data types
3

COMP7201. Analysis and design of enterprise applications in UML


COMP7305. Cluster and cloud computing
COMP7308. Introduction to unmanned systems
COMP7309. Quantum computing and artificial intelligence
COMP7310. Artificial intelligence of things
COMP7404. Computational intelligence and machine learning
COMP7602. Introduction to bioinformatics
COMP7607. Natural language processing
COMP7801. Topic in computer science
COPM7805. Topic in computer network and systems
COMP7809. Topic in artificial intelligence
DASC7606. Deep learning

Candidate may select no more than 2 courses (at most 12 credits in total) offered by other taught
postgraduate curricula in the Faculty of Engineering as electives. All course selection will be subject
to approval by the Programme Director and Course coordinators concerned.

MSc(CompSc) Course descriptions

The following is a list of discipline courses offered by the Department of Computer Science for the
MSc(CompSc) curriculum. The list below is not final and some courses may not be offered every year.

All courses are assessed through examination and / or coursework assessment, the weightings of which
are subject to approval by the Board of Examiners.

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

COMP7104. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the
aspects of database systems design & algorithms and big data processing for structured data. Traditional
topics include query optimization, physical database design, transaction management, crash recovery,
parallel databases. The course will also survey some the recent developments in selected areas such as
NoSQL databases and SQL-based big data management systems for relational (structured) data.

__________________________________________________________________________________

COMP7105. Advanced topics in data science (6 credits)


4

This course will introduce selected advanced computational methods and apply them to problems in
data analysis and relevant applications.

__________________________________________________________________________________

COMP7106. Big data management (6 credits)

The course will study some advanced topics and techniques in Big Data. It will also survey the recent
development and progress in specific areas in big data management and scalable data science. Topics
include but not limited to: large database management techniques, spatial data management and spatial
networks, data quality and uncertain databases, top-k queries, graph and text databases, and data
analytics.

Mutually exclusive with: COMP7107 Management of complex types

__________________________________________________________________________________

COMP7107. Management of complex data types (6 credits)

The course studies the management and analysis of data types which are not simple scalars. Such
complex data types include spatial data, multidimensional data, time-series data, temporal and spatio-
temporal data, sparse multidimensional vectors, set-valued data, strings and sequences, homogeneous
and heterogeneous graphs, knowledge-base graphs, geo-textual and geo-social data. For each of these
data types, we will learn popular queries and analysis tasks, as well as storage and indexing methods
for main memory and the disk.

Mutually exclusive with: COMP7106 Big data management

__________________________________________________________________________________

COMP7201. Analysis and design of enterprise applications in UML (6 credits)

This course presents an industrial-strength approach to software development based on 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;
modern web 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.

COMP7305. Cluster and cloud computing (6 credits)

This course offers an overview of current cloud technologies, and discusses various issues in the design
and implementation of cloud systems. Topics include cloud delivery models (SaaS, PaaS, and IaaS)
with motivating examples from Google, Amazon, and Microsoft; virtualization techniques
implemented in Xen, KVM, VMWare, and Docker; distributed file systems, such as Hadoop file system;
MapReduce and Spark programming models for large-scale data analysis, networking techniques in
cluster and hyper-scale data centers. The students will learn the use of Amazon EC2 to deploy
applications on cloud, and implement a SPARK application on a Xen-enabled PC cluster as part of their
term project.
5

Prerequisites: The students are expected to install various open-source cloud software in their Linux
cluster, and exercise the system configuration and administration. Basic understanding of Linux
operating system and some programming experiences (C/C++, Java, or Python) in a Linux environment
are required.

COMP7308. Introduction to unmanned systems (6 credits)

To study the theory and algorithms in unmanned systems. Topics include vehicle modelling, vehicle
control, state estimation, perception and mapping, motion planning, and deep learning related
techniques.

COMP7309. Quantum computing and artificial intelligence (6 credits)

This course offers a theoretical overview of selected topics from the interdisciplinary fields of quantum
computation and quantum AI. The scope of the lectures encompasses an accessible introduction to the
fundamental concepts of quantum computation. Importantly, the introduction takes the angle of
computer science and logic, such that no preliminary knowledge of quantum theory is required.
Thereupon, detailed comparisons of computational principles and related phenomena in the classical
and quantum domain outline the stark potential and challenges of quantum theory for fundamentally
novel algorithms which are more powerful than possible with conventional computers. Thereupon, the
theoretical capability of quantum computers is illustrated by analyzing a selection of milestone
algorithms of quantum computation, and their potential applications to artificial intelligence.

__________________________________________________________________________________

COMP7310. Artificial intelligence of things (6 credits)

This course introduces basic concepts, technologies, and applications of the Internet of Things (IoT),
with a focus on smart sensing. The course features various topics on sensors and sensing techniques
that enable ubiquitous sensing intelligence for IoT devices, and connects them to exciting applications
in smart homes, healthcare, security, etc. The lectures introduce topics like localization, mobile sensing,
wireless sensing, acoustic sensing and their applications.
__________________________________________________________________________________

COMP7404. Computational intelligence and machine learning (6 credits)

This course will teach a broad set of principles and tools that will provide the mathematical, algorithmic
and philosophical 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. Ethical issues in advanced AI and how
to prevent learning algorithms from acquiring morally undesirable biases will be covered.

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 and ethical challenges of AI and ML.

Pre-requisites: Nil, but knowledge of data structures and algorithms, probability, linear algebra, and
programming would be an advantage.
6

COMP7408. Distributed ledger and blockchain technology (6 credits)


In this course, students will learn the key technical elements behind the blockchain (or in general, the
distributed ledger) technology and some advanced features, such as smart contracts, of the technology.
Variations, such as permissioned versus permissionless and private blockchains, and the available
blockchain platforms will be discussed.

Students will also learn the following issues: the security, efficiency, and the scalability of the
technology. Cyber-currency (e.g. Bitcoin) and other typical application examples in areas such as
finance will also be introduced.

Prerequisites: COMP7906 Introduction to cyber security or ICOM6045 Fundamentals of e-commerce


security and experience in programming is required.

Mutually exclusive with: FITE3011 Distributed Ledger and Blockchain

__________________________________________________________________________________

COMP7409. Machine learning in trading and finance (6 credits)

The course introduces our students to the field of Machine Learning, and help them develop skills of
applying Machine Learning, or more precisely, applying supervised learning, unsupervised learning
and reinforcement learning to solve problems in Trading and Finance.

This course will cover the following topics. (1) Overview of Machine Learning and Artificial
Intelligence, (2) Supervised Learning, Unsupervised Learning and Reinforcement Learning, (3) Major
algorithms for Supervised Learning and Unsupervised Learning with applications to Trading and
Finance, (4) Basic algorithms for Reinforcement Learning with applications to optimal trading, asset
management, and portfolio optimization, (5) Advanced methods of Reinforcement Learning with
applications to high-frequency trading, cryptocurrency trading and peer-to-peer lending.

COMP7502. Image processing and computer vision (6 credits)


To study the theory and algorithms in image processing and computer vision. Topics include image
representation; image enhancement; image restoration; mathematical morphology; image compression;
scene understanding and motion analysis.

COMP7503. Multimedia technologies (6 credits)


This course presents fundamental concepts and emerging technologies for multimedia computing.
Students are expected to learn how to develop various kinds of media communication, presentation,
and manipulation techniques. At the end of course, students should acquire proper skill set to utilize,
integrate and synchronize different information and data from media sources for building
specific multimedia applications. Topics include media data acquisition methods and techniques;
nature of perceptually encoded information; processing and manipulation of media data; multimedia
content organization and analysis; trending technologies for future multimedia computing.

COMP7504. Pattern recognition and applications (6 credits)


7

To study techniques in pattern recognition. Topics include statistical decision theory; density
estimation; dimension reduction; discriminant functions; unsupervised classification and clustering;
neural network; hidden Markov model; and selected applications in pattern recognition such as
characters and speech recognition.

COMP7505. User interface design and development (6 credits)


For technology products and services, the user experience is a major key to success. With advanced
development of processors, sensors, and new algorithms and software tools, more powerful and
expressive user interfaces can be implemented to improve human computer interaction and operation.
The course will study matching input and output devices with user capabilities, software and hardware
considerations, interface design methodologies, and future interface technologies. All of these topics
will be supported and demonstrated with current research and actual case studies.

COMP7506. Smart phone apps development (6 credits)

Smart phones have become an essential part of our everyday lives. The number of smart phone users
worldwide today surpasses six billion and is forecast to further grow by more than one billion in the
next few years. Smart phones play an important role in mobile communication and applications.

Smart phones are powerful as they support a wide range of applications (called apps). Most of the time,
smart phone users just download their favorite apps remotely from the app stores. There is a great
potential for software developer to reach worldwide users.

This course aims at introducing the design and technical issues of smart phone apps. For example,
smart phone screens are usually smaller than computer monitors while smart phones usually possess
more hardware sensors than conventional computers. We have to pay special attention to these aspects
in order to develop attractive and successful apps. Various modern smart phone apps development
environments and programming techniques (such as Java for Android phones and Swift for iPhones)
will also be introduced to facilitate students to develop their own apps.

Students should have basic programming knowledge.

Mutually exclusive with: COMP3330 Interactive Mobile Application Design and Programming

COMP7507. Visualization and visual analytics (6 credits)

This course introduces the basic principles and techniques in visualization and visual analytics, and
their applications. Topics include human visual perception; color; visualization techniques for spatial,
geospatial and multivariate data, graphs and networks; text and document visualization; scientific
visualization; interaction and visual analysis.

COMP7508. Data-driven computer animation (6 credits)

Basics of character animation, motion capture, inverse kinematics, physically based character
animation, Basics of physically-based animation, rigid body dynamics, fluid simulation, hair
animation, cloth simulation, facial animation, crowd simulation, kinematography, performance
capture, skinning, data-driven character control, data-driven fluid animation, data-driven cloth
animation, data-driven facial animation, data-driven kinematography, data-driven skinning, data-driven
8

crowd animation, data-driven rendering, mesh-shape editing, data-driven mesh-shape editing

COMP7602. Introduction to bioinformatics (6 credits)

The course will focus primarily on human genomics and medical applications, but the
techniques will be broadly applicable across all species. The topics will include 1)
bioinformatics big data analytics and algorithms for sequence alignment and sequence
assembly, 2) bioinformatics tasks such variant identification and annotation, gene expression
and regulation, and 3) real-life bioinformatics applications such as personal genome analysis
and cancer genomics.

COMP7604. Game design and development (6 credits)

The course studies the basic concepts and techniques for digital game design and development. Topics
include: game history and genres, game design process, game production, 2D/3D graphics, physics,
audio/visual design, artificial intelligence.

Prerequisites: Basic programming skill, e.g. C++ or Java, is required

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

COMP7704. Dissertation (24 credits)

Candidate will be required to carry out independent work on a major project that will culminate in the
writing of a dissertation.

__________________________________________________________________________________

COMP7705. Project (12 credits)

Candidate will be required to carry out independent work on a major project under the supervision of
individual staff member. A written report is required.

__________________________________________________________________________________

COMP7801. Topic in computer science (6 credits)

Selected topics that are of current interest will be discussed.


9

COMP7802. Introduction to financial computing (6 credits)

This course introduces the students to different aspects of financial computing in the investment banking
area. The topics include yield curve construction in practice, financial modelling and modern risk
management practice, etc. Financial engineering is an area of growing demand. The course is a
combination of financial product knowledge, financial mathematics and computational techniques.
This course will be suitable for students who want to pursue a career in this fast growing area.

Prerequisites: This course does not require any prior knowledge in the area of finance. Basic calculus
and numeric computational techniques are useful. Knowledge in Excel spreadsheet operations is
required to complete the assignments and final project.

COMP7805. Topic in computer network and systems (6 credits)

Selected topics in computer network and systems that are of current interest will be discussed.

COMP7806. Topic in information security (6 credits)

Selected topics in information security that are of current interest will be discussed.

COMP7807. Topic in multimedia computing (6 credits)

Selected topics in multimedia computing that are of current interest will be discussed.

COMP7808. Topic in financial computing (6 credits)

Selected topics in financial computing that are of current interest will be discussed.

COMP7809. Topic in artificial intelligence (6 credits)

Selected topics in artificial intelligence that are of current interest will be discussed.
__________________________________________________________________________________

COMP7901. Legal protection of digital property (6 credits)

This course introduces computer professionals to the various legal means of protecting digital property
including computer software, algorithms, and any work or innovation in digital form. Focus is on the
main issues in protecting digital property arising from developments in information technology, and
their legal solutions. Topics covered include, but are not limited to, the following: 1) Copyright
protection of software and websites, 2) Patent protection of software and algorithms, 3) Protection of
personal data.

Mutually exclusive with: COMP3311/CSIS0311 Legal aspects of computing and ECOM6004 Legal
aspects of IT and e-commerce

COMP7903. Digital investigation and forensics (6 credits)


10

This course introduces the fundamental principles of digital investigation and forensics. The course
starts with a brief introduction to common computer crimes and digital evidence, and then moves on to
the computer basics and network basics pertaining to digital forensics, and finally comes to the
techniques for digital investigation and forensic examination.

COMP7904. Information security: attacks and defense (6 credits)

This is an ethical hacking course. In this course, we will teach students how to conduct ethical hacking
so as to better protect a computer system in a company. Topics include physical security, password
cracking, network hacking, operating system hacking, and application hacking. The course will also
discuss R&D problems related to hacking and defense. The course will try to strike a balance between
theory and practice so that students can understand the theories behind the hacking process as well as
get enough hands-on exercises to perform ethical hacking and defense.

Prerequisites: Students are expected to have knowledge in university level mathematics and systems
plus experience in programming.

COMP7905. Reverse engineering and malware analysis (6 credits)

This course provides students a foundational knowledge about reverse engineering and malware
analysis, through the study of various cases and hand-on analysis of malware samples. It covers
fundamental concepts in malware investigations so as to equip the students with enough background
knowledge in handling malicious software attacks. Various malware incidents will be covered, such as
cases in Ransomware, banking- Trojan, state-sponsored and APT attacks, cases in Stuxnet and malicious
software attacks on Industrial Control System and IoT devices. With the experience of studying these
cases and analyzing selected samples, the students will be able to understand the global cyber security
landscape and its future impact. Hands-on exercises and in-depth discussion will be provided to enable
students to acquire the required knowledge and skill set for defending and protecting an enterprise
network environment.

Students should have programming/development skills (Assembly, C, C++, Python) and knowledge in
Operating System and computer network.
__________________________________________________________________________________

COMP7906. Introduction to cyber security (6 credits)

The aim of the course is to introduce different methods of protecting information and data in the cyber
world, including the privacy issue. Topics include introduction to security; cyber attacks and threats;
cryptographic algorithms and applications; network security and infrastructure.

Mutually exclusive with: ICOM6045 Fundamentals of e-commerce security

__________________________________________________________________________________

DASC7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
11

also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

__________________________________________________________________________________

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

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

FITE7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

FITE7410. Financial fraud analytics (6 credits)

This course aims at introducing various analytics techniques to fight against financial fraud. These
analytics techniques include, descriptive analytics, predictive analytics, and social network learning.
Various data set will also be introduced, including labeled or unlabeled data sets, and social network
data set. Students learn the fraud patterns through applying the analytics techniques in financial frauds,
such as, insurance fraud, credit card fraud, etc.
12

Key topics include: Handling of raw data sets for fraud detection; Applications of descriptive analytics,
predictive analytics and social network analytics to construct fraud detection models; Financial Fraud
Analytics challenges and issues when applied in business context.

Required to have basic knowledge about statistics concepts.


13

SYLLABUSES FOR THE DEGREE OF


MASTER OF SCIENCE IN COMPUTER SCIENCE

[This syllabus is applicable to students admitted to the curriculum in the academic year 2019-20 and
2020-21.]

Definition and Terminology

Stream of study – a specialisation in the curriculum selected by a candidate which can be General,
Cyber Security, Financial Computing and Multimedia Computing.

Discipline course – any course on a list of courses in the discipline of curriculum which a candidate
must pass at least a certain number of credits as specified in the Regulations.

Subject group – a subset of courses in the list of discipline courses which have the same specialisation.

Stream specific course – any course in a subject group which corresponds to the specialisation of the
stream of study.

Elective course – any Taught Postgraduate level course offered by the Departments of the Faculty of
Engineering for the fulfilment of the curriculum requirements of the degree of MSc in Computer
Science that are not classified as discipline courses.

Capstone Experience – a 12-credit project or a 24-credit dissertation which is a compulsory and integral
part of the curriculum.

Curriculum Structure

Candidates are required to complete 72 credits of courses as set out below, normally over one academic
year of full-time study or two academic years of part-time study:

Enrolment Mode of Enrolment Mode of


10 courses + Project 8 courses + Dissertation
General Stream Cyber Security / General Stream Cyber Security /
Financial Financial
Computing / Computing /
Multimedia Multimedia
Computing Stream Computing Stream
Course Category No. of Credits No. of Credits
Discipline Courses Not less than 48 Not less than 48 Not less than 36 Not less than 36
[Include at least 24 [Include at least 24
credits in Stream credits in Stream
Specific Courses in Specific Courses
the candidate’s in the candidate’s
corresponding corresponding
stream of study] stream of study]
Elective Courses Not more than 12 Not more than 12
Capstone 12 24
Experience
Total 72 72
14

Enrolment Mode

Candidates are required to successfully complete 72 credits to graduate. They can do that by studying
in one of the following enrolment modes:
(a) 10 courses (each equivalent to 6 credits) + Project (equivalent to 12 credits)
OR
(b) 8 courses (each equivalent to 6 credits) + Dissertation (equivalent to 24 credits)

Course Selection

Candidates shall select courses in accordance with the regulations of the degree. For General Stream,
candidate can choose any discipline courses listed below in any subject group, and undertake a
dissertation or a project (COMP7704 or COMP7705) in any area in computer science. In addition, to
qualify as a graduate of Cyber Security, Financial Computing or Multimedia Computing Stream,
candidates must pass at least 4 stream specific courses (at least 24 credits in total) in the corresponding
subject group, and undertake a dissertation or a project (COMP7704 or COMP7705) in the area of the
corresponding stream.

A. Cyber Security
COMP7806. Topic in information security
COMP7901. Legal protection of digital property
COMP7903. Digital investigation and forensics
COMP7904. Information security: attacks and defense
COMP7905. Reverse engineering and malware analysis
COMP7906. Introduction to cyber security
FITE7410. Financial fraud analytics

B. Financial Computing
COMP7103. Data mining
COMP7405. Techniques in computational finance
COMP7406. Software development for quantitative finance
COMP7407. Securities transaction banking
COMP7408. Distributed ledger and blockchain technology
COMP7409. Machine learning in trading and finance
COMP7802. Introduction to financial computing
COMP7808. Topic in financial computing
COMP7906. Introduction to cyber security
FITE7405. Techniques in computational finance
FITE7406. Software development for quantitative finance
FITE7407. Securities transaction banking
FITE7410. Financial fraud analytics

C. Multimedia Computing
COMP7502. Image processing and computer vision
COMP7503. Multimedia technologies
COMP7504. Pattern recognition and applications
COMP7505. User interface design and development
COMP7506. Smart phone apps development
COMP7507. Visualization and visual analytics
COMP7508. Data-driven computer animation
COMP7604. Game design and development
COMP7807. Topic in multimedia computing

D. Other discipline courses


COMP7104. Advanced database systems
15

COMP7105. Advanced topics in data science


COMP7106. Big data management
COMP7107. Management of complex data types
COMP7201. Analysis and design of enterprise applications in UML
COMP7305. Cluster and cloud computing
COMP7308. Introduction to unmanned systems
COMP7309. Quantum computing and artificial intelligence
COMP7310. Artificial intelligence of things
COMP7404. Computational intelligence and machine learning
COMP7602. Introduction to bioinformatics
COMP7606. Deep learning
COMP7607. Natural language processing
COMP7801. Topic in computer science
COPM7805. Topic in computer network and systems
COMP7809. Topic in artificial intelligence
DASC7606. Deep learning

Candidate may select no more than 2 courses (at most 12 credits in total) offered by other taught
postgraduate curricula in the Faculty of Engineering as electives. All course selection will be subject
to approval by the Programme Director and Course coordinators concerned.

MSc(CompSc) Course descriptions

The following is a list of discipline courses offered by the Department of Computer Science for the
MSc(CompSc) curriculum. The list below is not final and some courses may not be offered every year.

All courses are assessed through examination and / or coursework assessment, the weightings of which
are subject to approval by the Board of Examiners.

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

COMP7104. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the
aspects of database systems design & algorithms and big data processing for structured data. Traditional
topics include query optimization, physical database design, transaction management, crash recovery,
parallel databases. The course will also survey some the recent developments in selected areas such as
NoSQL databases and SQL-based big data management systems for relational (structured) data.

__________________________________________________________________________________

COMP7105. Advanced topics in data science (6 credits)


16

This course will introduce selected advanced computational methods and apply them to problems in
data analysis and relevant applications.

COMP7106. Big data management (6 credits)

The course will study some advanced topics and techniques in Big Data. It will also survey the recent
development and progress in specific areas in big data management and scalable data science. Topics
include but not limited to: large database management techniques, spatial data management and spatial
networks, data quality and uncertain databases, top-k queries, graph and text databases, and data
analytics.

Mutually exclusive with: COMP7107 Management of complex types

__________________________________________________________________________________

COMP7107. Management of complex data types (6 credits)

The course studies the management and analysis of data types which are not simple scalars. Such
complex data types include spatial data, multidimensional data, time-series data, temporal and spatio-
temporal data, sparse multidimensional vectors, set-valued data, strings and sequences, homogeneous
and heterogeneous graphs, knowledge-base graphs, geo-textual and geo-social data. For each of these
data types, we will learn popular queries and analysis tasks, as well as storage and indexing methods
for main memory and the disk.

Mutually exclusive with: COMP7106 Big data management

__________________________________________________________________________________

COMP7201. Analysis and design of enterprise applications in UML (6 credits)

This course presents an industrial-strength approach to software development based on 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;
modern web 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.

COMP7305. Cluster and cloud computing (6 credits)

This course offers an overview of current cloud technologies, and discusses various issues in the design
and implementation of cloud systems. Topics include cloud delivery models (SaaS, PaaS, and IaaS)
with motivating examples from Google, Amazon, and Microsoft; virtualization techniques
implemented in Xen, KVM, VMWare, and Docker; distributed file systems, such as Hadoop file system;
MapReduce and Spark programming models for large-scale data analysis, networking techniques in
cluster and hyper-scale data centers. The students will learn the use of Amazon EC2 to deploy
applications on cloud, and implement a SPARK application on a Xen-enabled PC cluster as part of their
term project.
17

Prerequisites: The students are expected to install various open-source cloud software in their Linux
cluster, and exercise the system configuration and administration. Basic understanding of Linux
operating system and some programming experiences (C/C++, Java, or Python) in a Linux environment
are required.

COMP7308. Introduction to unmanned systems (6 credits)

To study the theory and algorithms in unmanned systems. Topics include vehicle modelling, vehicle
control, state estimation, perception and mapping, motion planning, and deep learning related
techniques.
__________________________________________________________________________________

COMP7309. Quantum computing and artificial intelligence (6 credits)

This course offers a theoretical overview of selected topics from the interdisciplinary fields of quantum
computation and quantum AI. The scope of the lectures encompasses an accessible introduction to the
fundamental concepts of quantum computation. Importantly, the introduction takes the angle of
computer science and logic, such that no preliminary knowledge of quantum theory is required.
Thereupon, detailed comparisons of computational principles and related phenomena in the classical
and quantum domain outline the stark potential and challenges of quantum theory for fundamentally
novel algorithms which are more powerful than possible with conventional computers. Thereupon, the
theoretical capability of quantum computers is illustrated by analyzing a selection of milestone
algorithms of quantum computation, and their potential applications to artificial intelligence.

__________________________________________________________________________________

COMP7310. Artificial intelligence of things (6 credits)

This course introduces basic concepts, technologies, and applications of the Internet of Things (IoT),
with a focus on smart sensing. The course features various topics on sensors and sensing techniques
that enable ubiquitous sensing intelligence for IoT devices, and connects them to exciting applications
in smart homes, healthcare, security, etc. The lectures introduce topics like localization, mobile sensing,
wireless sensing, acoustic sensing and their applications.

__________________________________________________________________________________

COMP7404. Computational intelligence and machine learning (6 credits)

This course will teach a broad set of principles and tools that will provide the mathematical, algorithmic
and philosophical 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. Ethical issues in advanced AI and how
to prevent learning algorithms from acquiring morally undesirable biases will be covered.

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 and ethical challenges of AI and ML.

Pre-requisites: Nil, but knowledge of data structures and algorithms, probability, linear algebra, and
programming would be an advantage.
18

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.

Mutually exclusive with: FITE7405 Techniques in computational finance

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.

Mutually exclusive with: FITE7406 Software development for quantitative finance

COMP7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: FITE7407 Securities transaction banking

COMP7408. Distributed ledger and blockchain technology (6 credits)


In this course, students will learn the key technical elements behind the blockchain (or in general, the
distributed ledger) technology and some advanced features, such as smart contracts, of the technology.
Variations, such as permissioned versus permissionless and private blockchains, and the available
blockchain platforms will be discussed.

Students will also learn the following issues: the security, efficiency, and the scalability of the
technology. Cyber-currency (e.g. Bitcoin) and other typical application examples in areas such as
finance will also be introduced.
19

Prerequisites: COMP7906 Introduction to cyber security or ICOM6045 Fundamentals of e-commerce


security and experience in programming is required.

Mutually exclusive with: FITE3011 Distributed Ledger and Blockchain

__________________________________________________________________________________

COMP7409. Machine learning in trading and finance (6 credits)

The course introduces our students to the field of Machine Learning, and help them develop skills of
applying Machine Learning, or more precisely, applying supervised learning, unsupervised learning
and reinforcement learning to solve problems in Trading and Finance.

This course will cover the following topics. (1) Overview of Machine Learning and Artificial
Intelligence, (2) Supervised Learning, Unsupervised Learning and Reinforcement Learning, (3) Major
algorithms for Supervised Learning and Unsupervised Learning with applications to Trading and
Finance, (4) Basic algorithms for Reinforcement Learning with applications to optimal trading, asset
management, and portfolio optimization, (5) Advanced methods of Reinforcement Learning with
applications to high-frequency trading, cryptocurrency trading and peer-to-peer lending.

COMP7502. Image processing and computer vision (6 credits)


To study the theory and algorithms in image processing and computer vision. Topics include image
representation; image enhancement; image restoration; mathematical morphology; image compression;
scene understanding and motion analysis.

COMP7503. Multimedia technologies (6 credits)


This course presents fundamental concepts and emerging technologies for multimedia computing.
Students are expected to learn how to develop various kinds of media communication, presentation,
and manipulation techniques. At the end of course, students should acquire proper skill set to utilize,
integrate and synchronize different information and data from media sources for building
specific multimedia applications. Topics include media data acquisition methods and techniques;
nature of perceptually encoded information; processing and manipulation of media data; multimedia
content organization and analysis; trending technologies for future multimedia computing.

COMP7504. Pattern recognition and applications (6 credits)


To study techniques in pattern recognition. Topics include statistical decision theory; density
estimation; dimension reduction; discriminant functions; unsupervised classification and clustering;
neural network; hidden Markov model; and selected applications in pattern recognition such as
characters and speech recognition.

COMP7505. User interface design and development (6 credits)


For technology products and services, the user experience is a major key to success. With advanced
development of processors, sensors, and new algorithms and software tools, more powerful and
expressive user interfaces can be implemented to improve human computer interaction and operation.
The course will study matching input and output devices with user capabilities, software and hardware
considerations, interface design methodologies, and future interface technologies. All of these topics
will be supported and demonstrated with current research and actual case studies.
20

COMP7506. Smart phone apps development (6 credits)


Smart phones have become an essential part of our everyday lives. The number of smart phone users
worldwide today surpasses six billion and is forecast to further grow by more than one billion in the
next few years. Smart phones play an important role in mobile communication and applications.

Smart phones are powerful as they support a wide range of applications (called apps). Most of the time,
smart phone users just download their favorite apps remotely from the app stores. There is a great
potential for software developer to reach worldwide users.

This course aims at introducing the design and technical issues of smart phone apps. For example,
smart phone screens are usually smaller than computer monitors while smart phones usually possess
more hardware sensors than conventional computers. We have to pay special attention to these aspects
in order to develop attractive and successful apps. Various modern smart phone apps development
environments and programming techniques (such as Java for Android phones and Swift for iPhones)
will also be introduced to facilitate students to develop their own apps.

Students should have basic programming knowledge.

Mutually exclusive with: COMP3330 Interactive Mobile Application Design and Programming

COMP7507. Visualization and visual analytics (6 credits)

This course introduces the basic principles and techniques in visualization and visual analytics, and
their applications. Topics include human visual perception; color; visualization techniques for spatial,
geospatial and multivariate data, graphs and networks; text and document visualization; scientific
visualization; interaction and visual analysis.

COMP7508. Data-driven computer animation (6 credits)

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

COMP7602. Introduction to bioinformatics (6 credits)

The course will focus primarily on human genomics and medical applications, but the
techniques will be broadly applicable across all species. The topics will include 1)
bioinformatics big data analytics and algorithms for sequence alignment and sequence
assembly, 2) bioinformatics tasks such variant identification and annotation, gene expression
and regulation, and 3) real-life bioinformatics applications such as personal genome analysis
and cancer genomics.

COMP7604. Game design and development (6 credits)


21

The course studies the basic concepts and techniques for digital game design and development. Topics
include: game history and genres, game design process, game production, 2D/3D graphics, physics,
audio/visual design, artificial intelligence.

Prerequisites: Basic programming skill, e.g. C++ or Java, is required

COMP7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

Mutually exclusive with: DASC7606 Deep learning

__________________________________________________________________________________

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

COMP7704. Dissertation (24 credits)

Candidate will be required to carry out independent work on a major project that will culminate in the
writing of a dissertation.

COMP7705. Project (12 credits)

Candidate will be required to carry out independent work on a major project under the supervision of
individual staff member. A written report is required.

__________________________________________________________________________________

COMP7801. Topic in computer science (6 credits)

Selected topics that are of current interest will be discussed.


22

COMP7802. Introduction to financial computing (6 credits)

This course introduces the students to different aspects of financial computing in the investment banking
area. The topics include yield curve construction in practice, financial modelling and modern risk
management practice, etc. Financial engineering is an area of growing demand. The course is a
combination of financial product knowledge, financial mathematics and computational techniques.
This course will be suitable for students who want to pursue a career in this fast growing area.

Prerequisites: This course does not require any prior knowledge in the area of finance. Basic calculus
and numeric computational techniques are useful. Knowledge in Excel spreadsheet operations is
required to complete the assignments and final project.

COMP7805. Topic in computer network and systems (6 credits)

Selected topics in computer network and systems that are of current interest will be discussed.

COMP7806. Topic in information security (6 credits)

Selected topics in information security that are of current interest will be discussed.

COMP7807. Topic in multimedia computing (6 credits)

Selected topics in multimedia computing that are of current interest will be discussed.

COMP7808. Topic in financial computing (6 credits)

Selected topics in financial computing that are of current interest will be discussed.

COMP7809. Topic in artificial intelligence (6 credits)

Selected topics in artificial intelligence that are of current interest will be discussed.
__________________________________________________________________________________

COMP7901. Legal protection of digital property (6 credits)

This course introduces computer professionals to the various legal means of protecting digital property
including computer software, algorithms, and any work or innovation in digital form. Focus is on the
main issues in protecting digital property arising from developments in information technology, and
their legal solutions. Topics covered include, but are not limited to, the following: 1) Copyright
protection of software and websites, 2) Patent protection of software and algorithms, 3) Protection of
personal data.

Mutually exclusive with: COMP3311/CSIS0311 Legal aspects of computing and ECOM6004 Legal
aspects of IT and e-commerce
23

COMP7903. Digital investigation and forensics (6 credits)

This course introduces the fundamental principles of digital investigation and forensics. The course
starts with a brief introduction to common computer crimes and digital evidence, and then moves on to
the computer basics and network basics pertaining to digital forensics, and finally comes to the
techniques for digital investigation and forensic examination.

COMP7904. Information security: attacks and defense (6 credits)

This is an ethical hacking course. In this course, we will teach students how to conduct ethical hacking
so as to better protect a computer system in a company. Topics include physical security, password
cracking, network hacking, operating system hacking, and application hacking. The course will also
discuss R&D problems related to hacking and defense. The course will try to strike a balance between
theory and practice so that students can understand the theories behind the hacking process as well as
get enough hands-on exercises to perform ethical hacking and defense.

Prerequisites: Students are expected to have knowledge in university level mathematics and systems
plus experience in programming.

COMP7905. Reverse engineering and malware analysis (6 credits)

This course provides students a foundational knowledge about reverse engineering and malware
analysis, through the study of various cases and hand-on analysis of malware samples. It covers
fundamental concepts in malware investigations so as to equip the students with enough background
knowledge in handling malicious software attacks. Various malware incidents will be covered, such as
cases in Ransomware, banking-Trojan, state-sponsored and APT attacks, cases in Stuxnet and malicious
software attacks on Industrial Control System and IoT devices. With the experience of studying these
cases and analyzing selected samples, the students will be able to understand the global cyber security
landscape and its future impact. Hands-on exercises and in-depth discussion will be provided to enable
students to acquire the required knowledge and skill set for defending and protecting an enterprise
network environment.

Students should have programming/development skills (Assembly, C, C++, Python) and knowledge in
Operating System and computer network.
__________________________________________________________________________________

COMP7906. Introduction to cyber security (6 credits)

The aim of the course is to introduce different methods of protecting information and data in the cyber
world, including the privacy issue. Topics include introduction to security; cyber attacks and threats;
cryptographic algorithms and applications; network security and infrastructure.

Mutually exclusive with: ICOM6045 Fundamentals of e-commerce security

__________________________________________________________________________________

DASC7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
24

networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

Mutually exclusive with: COMP7606 Deep learning

__________________________________________________________________________________

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

Mutually exclusive with: COMP7405 Techniques in computational finance

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

Mutually exclusive with: COMP7406 Software development for quantitative finance

FITE7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: COMP7407 Securities transaction banking


25

FITE7410. Financial fraud analytics (6 credits)

This course aims at introducing various analytics techniques to fight against financial fraud. These
analytics techniques include, descriptive analytics, predictive analytics, and social network learning.
Various data set will also be introduced, including labeled or unlabeled data sets, and social network
data set. Students learn the fraud patterns through applying the analytics techniques in financial frauds,
such as, insurance fraud, credit card fraud, etc.

Key topics include: Handling of raw data sets for fraud detection; Applications of descriptive analytics,
predictive analytics and social network analytics to construct fraud detection models; Financial Fraud
Analytics challenges and issues when applied in business context.

Required to have basic knowledge about statistics concepts.


26

SYLLABUSES FOR THE DEGREE OF


MASTER OF SCIENCE IN COMPUTER SCIENCE

[This syllabus is applicable to students admitted to the curriculum in the academic year 2018-19.]

Definition and Terminology

Stream of study – a specialisation in the curriculum selected by a candidate which can be General,
Cyber Security, Financial Computing and Multimedia Computing.

Discipline course – any course on a list of courses in the discipline of curriculum which a candidate
must pass at least a certain number of credits as specified in the Regulations.

Subject group – a subset of courses in the list of discipline courses which have the same specialisation.

Stream specific course – any course in a subject group which corresponds to the specialisation of the
stream of study.

Elective course – any Taught Postgraduate level course offered by the Departments of the Faculty of
Engineering for the fulfilment of the curriculum requirements of the degree of MSc in Computer
Science that are not classified as discipline courses.

Capstone Experience – a 12-credit project or a 24-credit dissertation which is a compulsory and integral
part of the curriculum.

Curriculum Structure

Candidates are required to complete 72 credits of courses as set out below, normally over one academic
year of full-time study or two academic years of part-time study:

Enrolment Mode of Enrolment Mode of


10 courses + Project 8 courses + Dissertation
General Stream Cyber Security / General Stream Cyber Security /
Financial Financial
Computing / Computing /
Multimedia Multimedia
Computing Stream Computing Stream
Course Category No. of Credits No. of Credits
Discipline Courses Not less than 48 Not less than 48 Not less than 36 Not less than 36
[Include at least 24 [Include at least 24
credits in Stream credits in Stream
Specific Courses in Specific Courses
the candidate’s in the candidate’s
corresponding corresponding
stream of study] stream of study]
Elective Courses Not more than 12 Not more than 12
Capstone 12 24
Experience
Total 72 72
27

Enrolment Mode

Candidates are required to successfully complete 72 credits to graduate. They can do that by studying
in one of the following enrolment modes:
(a) 10 courses (each equivalent to 6 credits) + Project (equivalent to 12 credits)
OR
(b) 8 courses (each equivalent to 6 credits) + Dissertation (equivalent to 24 credits)

Course Selection

Candidates shall select courses in accordance with the regulations of the degree. For General Stream,
candidate can choose any discipline courses listed below in any subject group, and undertake a
dissertation or a project (COMP7704 or COMP7705) in any area in computer science. In addition, to
qualify as a graduate of Cyber Security, Financial Computing or Multimedia Computing Stream,
candidates must pass at least 4 stream specific courses (at least 24 credits in total) in the corresponding
subject group, and undertake a dissertation or a project (COMP7704 or COMP7705) in the area of the
corresponding stream.

A. Cyber Security
COMP7806. Topic in information security
COMP7901. Legal protection of digital property
COMP7903. Digital investigation and forensics
COMP7904. Information security: attacks and defense
COMP7905. Reverse engineering and malware analysis
COMP7906. Introduction to cyber security
FITE7410. Financial fraud analytics

B. Financial Computing
COMP7103. Data mining
COMP7405. Techniques in computational finance
COMP7406. Software development for quantitative finance
COMP7407. Securities transaction banking
COMP7408. Distributed ledger and blockchain technology
COMP7409. Machine learning in trading and finance
COMP7802. Introduction to financial computing
COMP7808. Topic in financial computing
COMP7906. Introduction to cyber security
FITE7405. Techniques in computational finance
FITE7406. Software development for quantitative finance
FITE7407. Securities transaction banking
FITE7410. Financial fraud analytics

C. Multimedia Computing
COMP7502. Image processing and computer vision
COMP7503. Multimedia technologies
COMP7504. Pattern recognition and applications
COMP7505. User interface design and development
COMP7506. Smart phone apps development
COMP7507. Visualization and visual analytics
COMP7508. Data-driven computer animation
COMP7604. Game design and development
COMP7605. Advanced multimedia data analysis and applications
COMP7807. Topic in multimedia computing
28

D. Other discipline courses


COMP7104. Advanced database systems
COMP7105. Advanced topics in data science
COMP7106. Big data management
COMP7107. Management of complex data types
COMP7201. Analysis and design of enterprise applications in UML
COMP7203. Modern software design
COMP7205. Enterprise architecture
COMP7303. High-performance computing
COMP7304. The wireless Internet and mobile network
COMP7305. Cluster and cloud computing
COMP7306. Web technologies
COMP7307. Advanced real-time embedded systems and applications
COMP7308. Introduction to unmanned systems
COMP7309. Quantum computing and artificial intelligence
COMP7310. Artificial intelligence of things
COMP7403. Computational molecular biology
COMP7404. Computational intelligence and machine learning
COMP7602. Introduction to bioinformatics
COMP7606. Deep learning
COMP7607. Natural language processing
COMP7801. Topic in computer science
COPM7805. Topic in computer network and systems
COMP7809. Topic in artificial intelligence
DASC7606. Deep learning

Candidate may select no more than 2 courses (at most 12 credits in total) offered by other taught
postgraduate curricula in the Faculty of Engineering as electives. All course selection will be subject
to approval by the Programme Director and Course coordinators concerned.

MSc(CompSc) Course descriptions

The following is a list of discipline courses offered by the Department of Computer Science for the
MSc(CompSc) curriculum. The list below is not final and some courses may not be offered every year.

All courses are assessed through examination and / or coursework assessment, the weightings of which
are subject to approval by the Board of Examiners.

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

COMP7104. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the
aspects of database systems design & algorithms and big data processing for structured data. Traditional
topics include query optimization, physical database design, transaction management, crash recovery,
29

parallel databases. The course will also survey some the recent developments in selected areas such as
NoSQL databases and SQL-based big data management systems for relational (structured) data.

__________________________________________________________________________________

COMP7105. Advanced topics in data science (6 credits)

This course will introduce selected advanced computational methods and apply them to problems in
data analysis and relevant applications.
__________________________________________________________________________________

COMP7106. Big data management (6 credits)

The course will study some advanced topics and techniques in Big Data. It will also survey the recent
development and progress in specific areas in big data management and scalable data science. Topics
include but not limited to: large database management techniques, spatial data management and spatial
networks, data quality and uncertain databases, top-k queries, graph and text databases, and data
analytics.

Mutually exclusive with: COMP7107 Management of complex types

__________________________________________________________________________________

COMP7107. Management of complex data types (6 credits)

The course studies the management and analysis of data types which are not simple scalars. Such
complex data types include spatial data, multidimensional data, time-series data, temporal and spatio-
temporal data, sparse multidimensional vectors, set-valued data, strings and sequences, homogeneous
and heterogeneous graphs, knowledge-base graphs, geo-textual and geo-social data. For each of these
data types, we will learn popular queries and analysis tasks, as well as storage and indexing methods
for main memory and the disk.

Mutually exclusive with: COMP7106 Big data management


__________________________________________________________________________________

COMP7201. Analysis and design of enterprise applications in UML (6 credits)

This course presents an industrial-strength approach to software development based on 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;
modern web 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.
30

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.

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 cloud technologies, and discusses various issues in the design
and implementation of cloud systems. Topics include cloud delivery models (SaaS, PaaS, and IaaS)
with motivating examples from Google, Amazon, and Microsoft; virtualization techniques
implemented in Xen, KVM, VMWare, and Docker; distributed file systems, such as Hadoop file system;
MapReduce and Spark programming models for large-scale data analysis, networking techniques in
cluster and hyper-scale data centers. The students will learn the use of Amazon EC2 to deploy
applications on cloud, and implement a SPARK application on a Xen-enabled PC cluster as part of their
term project.
31

Prerequisites: The students are expected to install various open-source cloud software in their Linux
cluster, and exercise the system configuration and administration. Basic understanding of Linux
operating system and some programming experiences (C/C++, Java, or Python) in a Linux environment
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.

Prerequisites: basic web programming knowledge, e.g. HTML, JavaScript, and Java.

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.


__________________________________________________________________________________

COMP7308. Introduction to unmanned systems (6 credits)

To study the theory and algorithms in unmanned systems. Topics include vehicle modelling, vehicle
control, state estimation, perception and mapping, motion planning, and deep learning related
techniques.

COMP7309. Quantum computing and artificial intelligence (6 credits)

This course offers a theoretical overview of selected topics from the interdisciplinary fields of quantum
computation and quantum AI. The scope of the lectures encompasses an accessible introduction to the
fundamental concepts of quantum computation. Importantly, the introduction takes the angle of
computer science and logic, such that no preliminary knowledge of quantum theory is required.
Thereupon, detailed comparisons of computational principles and related phenomena in the classical
and quantum domain outline the stark potential and challenges of quantum theory for fundamentally
novel algorithms which are more powerful than possible with conventional computers. Thereupon, the
theoretical capability of quantum computers is illustrated by analyzing a selection of milestone
algorithms of quantum computation, and their potential applications to artificial intelligence.

__________________________________________________________________________________

COMP7310. Artificial intelligence of things (6 credits)

This course introduces basic concepts, technologies, and applications of the Internet of Things (IoT),
with a focus on smart sensing. The course features various topics on sensors and sensing techniques
that enable ubiquitous sensing intelligence for IoT devices, and connects them to exciting applications
32

in smart homes, healthcare, security, etc. The lectures introduce topics like localization, mobile sensing,
wireless sensing, acoustic sensing and their applications.

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, algorithmic
and philosophical 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. Ethical issues in advanced AI and how
to prevent learning algorithms from acquiring morally undesirable biases will be covered.

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 and ethical challenges of AI and ML.

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.

Mutually exclusive with: FITE7405 Techniques in computational finance

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

Experience in C++/C programming is required.

Mutually exclusive with: FITE7406 Software development for quantitative finance

COMP7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: FITE7407 Securities transaction banking

COMP7408. Distributed ledger and blockchain technology (6 credits)


In this course, students will learn the key technical elements behind the blockchain (or in general, the
distributed ledger) technology and some advanced features, such as smart contracts, of the technology.
Variations, such as permissioned versus permissionless and private blockchains, and the available
blockchain platforms will be discussed.

Students will also learn the following issues: the security, efficiency, and the scalability of the
technology. Cyber-currency (e.g. Bitcoin) and other typical application examples in areas such as
finance will also be introduced.

Prerequisites: COMP7906 Introduction to cyber security or ICOM6045 Fundamentals of e-commerce


security and experience in programming is required.

Mutually exclusive with: FITE3011 Distributed Ledger and Blockchain

__________________________________________________________________________________

COMP7409. Machine learning in trading and finance (6 credits)

The course introduces our students to the field of Machine Learning, and help them develop skills of
applying Machine Learning, or more precisely, applying supervised learning, unsupervised learning
and reinforcement learning to solve problems in Trading and Finance.

This course will cover the following topics. (1) Overview of Machine Learning and Artificial
Intelligence, (2) Supervised Learning, Unsupervised Learning and Reinforcement Learning, (3) Major
algorithms for Supervised Learning and Unsupervised Learning with applications to Trading and
Finance, (4) Basic algorithms for Reinforcement Learning with applications to optimal trading, asset
management, and portfolio optimization, (5) Advanced methods of Reinforcement Learning with
applications to high-frequency trading, cryptocurrency trading and peer-to-peer lending.

COMP7502. Image processing and computer vision (6 credits)


To study the theory and algorithms in image processing and computer vision. Topics include image
representation; image enhancement; image restoration; mathematical morphology; image compression;
scene understanding and motion analysis.
34

COMP7503. Multimedia technologies (6 credits)


This course presents fundamental concepts and emerging technologies for multimedia computing.
Students are expected to learn how to develop various kinds of media communication, presentation,
and manipulation techniques. At the end of course, students should acquire proper skill set to utilize,
integrate and synchronize different information and data from media sources for building
specific multimedia applications. Topics include media data acquisition methods and techniques;
nature of perceptually encoded information; processing and manipulation of media data; multimedia
content organization and analysis; trending technologies for future multimedia computing.

COMP7504. Pattern recognition and applications (6 credits)


To study techniques in pattern recognition. Topics include statistical decision theory; density
estimation; dimension reduction; discriminant functions; unsupervised classification and clustering;
neural network; hidden Markov model; and selected applications in pattern recognition such as
characters and speech recognition.

COMP7505. User interface design and development (6 credits)


For technology products and services, the user experience is a major key to success. With advanced
development of processors, sensors, and new algorithms and software tools, more powerful and
expressive user interfaces can be implemented to improve human computer interaction and operation.
The course will study matching input and output devices with user capabilities, software and hardware
considerations, interface design methodologies, and future interface technologies. All of these topics
will be supported and demonstrated with current research and actual case studies.

COMP7506. Smart phone apps development (6 credits)


Smart phones have become an essential part of our everyday lives. The number of smart phone users
worldwide today surpasses six billion and is forecast to further grow by more than one billion in the
next few years. Smart phones play an important role in mobile communication and applications.

Smart phones are powerful as they support a wide range of applications (called apps). Most of the time,
smart phone users just download their favorite apps remotely from the app stores. There is a great
potential for software developer to reach worldwide users.

This course aims at introducing the design and technical issues of smart phone apps. For example,
smart phone screens are usually smaller than computer monitors while smart phones usually possess
more hardware sensors than conventional computers. We have to pay special attention to these aspects
in order to develop attractive and successful apps. Various modern smart phone apps development
environments and programming techniques (such as Java for Android phones and Swift for iPhones)
will also be introduced to facilitate students to develop their own apps.

Students should have basic programming knowledge.

Mutually exclusive with: COMP3330 Interactive Mobile Application Design and Programming

COMP7507. Visualization and visual analytics (6 credits)


35

This course introduces the basic principles and techniques in visualization and visual analytics, and
their applications. Topics include human visual perception; color; visualization techniques for spatial,
geospatial and multivariate data, graphs and networks; text and document visualization; scientific
visualization; interaction and visual analysis.

COMP7508. Data-driven computer animation (6 credits)

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

COMP7602. Introduction to bioinformatics (6 credits)

The course will focus primarily on human genomics and medical applications, but the
techniques will be broadly applicable across all species. The topics will include 1)
bioinformatics big data analytics and algorithms for sequence alignment and sequence
assembly, 2) bioinformatics tasks such variant identification and annotation, gene expression
and regulation, and 3) real-life bioinformatics applications such as personal genome analysis
and cancer genomics.

COMP7604. Game design and development (6 credits)

The course studies the basic concepts and techniques for digital game design and development. Topics
include: game history and genres, game design process, game production, 2D/3D graphics, physics,
audio/visual design, artificial intelligence.

Prerequisites: Basic programming skill, e.g. C++ or Java, is required

COMP7605. Advanced multimedia data analysis and applications (6 credits)

This course’s objective is to introduce advanced multimedia data analysis techniques, and the design
and implementation of signal processing algorithms. It covers topics on Digital Filter Realization,
Recursive and Non-Recursive filters, Frequency Domain Processing, Two-Dimensional Signal
Processing, and application of multimedia signal processing to speech production and analysis, image
and video processing.

COMP7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
36

reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

Mutually exclusive with: DASC7606 Deep learning

__________________________________________________________________________________

COMP7607. 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.
__________________________________________________________________________________

COMP7704. Dissertation (24 credits)

Candidate will be required to carry out independent work on a major project that will culminate in the
writing of a dissertation.
__________________________________________________________________________________

COMP7705. Project (12 credits)

Candidate will be required to carry out independent work on a major project under the supervision of
individual staff member. A written report is required.
__________________________________________________________________________________

COMP7801. Topic in computer science (6 credits)

Selected topics that are of current interest will be discussed.

COMP7802. Introduction to financial computing (6 credits)

This course introduces the students to different aspects of financial computing in the investment banking
area. The topics include yield curve construction in practice, financial modelling and modern risk
management practice, etc. Financial engineering is an area of growing demand. The course is a
combination of financial product knowledge, financial mathematics and computational techniques.
This course will be suitable for students who want to pursue a career in this fast growing area.

Prerequisites: This course does not require any prior knowledge in the area of finance. Basic calculus
and numeric computational techniques are useful. Knowledge in Excel spreadsheet operations is
required to complete the assignments and final project.

COMP7805. Topic in computer network and systems (6 credits)

Selected topics in computer network and systems that are of current interest will be discussed.
37

COMP7806. Topic in information security (6 credits)

Selected topics in information security that are of current interest will be discussed.

COMP7807. Topic in multimedia computing (6 credits)

Selected topics in multimedia computing that are of current interest will be discussed.

COMP7808. Topic in financial computing (6 credits)

Selected topics in financial computing that are of current interest will be discussed.

COMP7809. Topic in artificial intelligence (6 credits)

Selected topics in artificial intelligence that are of current interest will be discussed.
__________________________________________________________________________________

COMP7901. Legal protection of digital property (6 credits)

This course introduces computer professionals to the various legal means of protecting digital property
including computer software, algorithms, and any work or innovation in digital form. Focus is on the
main issues in protecting digital property arising from developments in information technology, and
their legal solutions. Topics covered include, but are not limited to, the following: 1) Copyright
protection of software and websites, 2) Patent protection of software and algorithms, 3) Protection of
personal data.

Mutually exclusive with: COMP3311/CSIS0311 Legal aspects of computing and ECOM6004 Legal
aspects of IT and e-commerce

COMP7903. Digital investigation and forensics (6 credits)

This course introduces the fundamental principles of digital investigation and forensics. The course
starts with a brief introduction to common computer crimes and digital evidence, and then moves on to
the computer basics and network basics pertaining to digital forensics, and finally comes to the
techniques for digital investigation and forensic examination.

COMP7904. Information security: attacks and defense (6 credits)

This is an ethical hacking course. In this course, we will teach students how to conduct ethical hacking
so as to better protect a computer system in a company. Topics include physical security, password
cracking, network hacking, operating system hacking, and application hacking. The course will also
discuss R&D problems related to hacking and defense. The course will try to strike a balance between
theory and practice so that students can understand the theories behind the hacking process as well as
get enough hands-on exercises to perform ethical hacking and defense.

Prerequisites: Students are expected to have knowledge in university level mathematics and systems
38

plus experience in programming.

COMP7905. Reverse engineering and malware analysis (6 credits)

This course provides students a foundational knowledge about reverse engineering and malware
analysis, through the study of various cases and hand-on analysis of malware samples. It covers
fundamental concepts in malware investigations so as to equip the students with enough background
knowledge in handling malicious software attacks. Various malware incidents will be covered, such as
cases in Ransomware, banking-Trojan, state-sponsored and APT attacks, cases in Stuxnet and malicious
software attacks on Industrial Control System and IoT devices. With the experience of studying these
cases and analyzing selected samples, the students will be able to understand the global cyber security
landscape and its future impact. Hands-on exercises and in-depth discussion will be provided to enable
students to acquire the required knowledge and skill set for defending and protecting an enterprise
network environment.

Students should have programming/development skills (Assembly, C, C++, Python) and knowledge in
Operating System and computer network.
__________________________________________________________________________________

COMP7906. Introduction to cyber security (6 credits)

The aim of the course is to introduce different methods of protecting information and data in the cyber
world, including the privacy issue. Topics include introduction to security; cyber attacks and threats;
cryptographic algorithms and applications; network security and infrastructure.

Mutually exclusive with: ICOM6045 Fundamentals of e-commerce security


__________________________________________________________________________________

DASC7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

Mutually exclusive with: COMP7606 Deep learning

__________________________________________________________________________________

FITE7405. 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
39

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.

Mutually exclusive with: COMP7405 Techniques in computational finance

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

Mutually exclusive with: COMP7406 Software development for quantitative finance

FITE7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: COMP7407 Securities transaction banking

FITE7410. Financial fraud analytics (6 credits)

This course aims at introducing various analytics techniques to fight against financial fraud. These
analytics techniques include, descriptive analytics, predictive analytics, and social network learning.
Various data set will also be introduced, including labeled or unlabeled data sets, and social network
data set. Students learn the fraud patterns through applying the analytics techniques in financial frauds,
such as, insurance fraud, credit card fraud, etc.

Key topics include: Handling of raw data sets for fraud detection; Applications of descriptive analytics,
predictive analytics and social network analytics to construct fraud detection models; Financial Fraud
Analytics challenges and issues when applied in business context.

Required to have basic knowledge about statistics concepts.


40

SYLLABUSES FOR THE DEGREE OF


MASTER OF SCIENCE IN COMPUTER SCIENCE

[This syllabus is applicable to students admitted to the curriculum in the academic year 2016-17 and
2017-18.]

Definition and Terminology

Stream of study – a specialisation in the curriculum selected by a candidate which can be General,
Financial Computing, Information Security and Multimedia Computing.

Discipline course – any course on a list of courses in the discipline of curriculum which a candidate
must pass at least a certain number of credits as specified in the Regulations.

Subject group – a subset of courses in the list of discipline courses which have the same specialisation.

Stream specific course – any course in a subject group which corresponds to the specialisation of the
stream of study.

Elective course – any Taught Postgraduate level course offered by the Departments of the Faculty of
Engineering for the fulfilment of the curriculum requirements of the degree of MSc in Computer
Science that are not classified as discipline courses.

Capstone Experience – a 24-credit dissertation which is a compulsory and integral part of the curriculum.

Curriculum Structure

Candidates are required to complete 72 credits of courses as set out below, normally over one academic
year of full-time study or two academic years of part-time study:

General Stream Financial Computing /


Information Security / Multimedia
Computing Stream
Course Category No. of Credits No. of Credits
Discipline Courses Not less than 36 Not less than 36
[Include at least 24 credits in
Stream Specific Courses in the
candidate’s corresponding stream
of study]
Elective Courses Not more than 12 Not more than 12
Capstone Experience 24 24
Total 72 72

Course Selection

Candidates shall select courses in accordance with the regulations of the degree. For General Stream,
41

candidate can choose any discipline courses listed below in any subject group, and undertake a
dissertation (COMP7704) in any area in computer science. In addition, to qualify as a graduate of
Financial Computing, Information Security or Multimedia Computing Stream, candidates must pass at
least 4 stream specific courses (at least 24 credits in total) in the corresponding subject group, and
undertake a dissertation (COMP7704) in the area of the corresponding stream.

A. Financial Computing
COMP7103. Data mining
COMP7405. Techniques in computational finance
COMP7406. Software development for quantitative finance
COMP7407. Securities transaction banking
COMP7408. Distributed ledger and blockchain technology
COMP7409. Machine learning in trading and finance
COMP7802. Introduction to financial computing
COMP7808. Topic in financial computing
COMP7906. Introduction to cyber security
FITE7405. Techniques in computational finance
FITE7406. Software development for quantitative finance
FITE7407. Securities transaction banking
FITE7410. Financial fraud analytics

B. Information Security
COMP7301. Computer and network security
COMP7804. E-commerce security cases and technologies
COMP7806. Topic in information security
COMP7901. Legal protection of digital property
COMP7903. Digital investigation and forensics
COMP7904. Information security: attacks and defense
COMP7905. Reverse engineering and malware analysis
COMP7906. Introduction to cyber security
FITE7410. Financial fraud analytics

C. Multimedia Computing
COMP7502. Image processing and computer vision
COMP7503. Multimedia technologies
COMP7504. Pattern recognition and applications
COMP7505. User interface design and development
COMP7506. Smart phone app development
COMP7507. Visualization and visual analytics
COMP7508. Data-driven computer animation
COMP7604. Game design and development
COMP7605. Advanced multimedia data analysis and applications
COMP7807. Topic in multimedia computing

D. Other discipline courses


COMP7104. Advanced database systems
COMP7105. Advanced topics in data science
COMP7106. Big data management
COMP7107. Management of complex data types
COMP7201. Analysis and design of enterprise applications in UML
COMP7203. Modern software design
COMP7205. Enterprise architecture
COMP7303. High-performance computing
COMP7304. The wireless Internet and mobile network
COMP7305. Cluster and cloud computing
COMP7306. Web technologies
42

COMP7307. Advanced real-time embedded systems and applications


COMP7308. Introduction to unmanned systems
COMP7309. Quatum computing and artificial intelligence
COMP7310. Artificial intelligence of things
COMP7403. Computational molecular biology
COMP7404. Computational intelligence and machine learning

COMP7602. Introduction to bioinformatics


COMP7606. Deep learning
COMP7607. Natural language processing
COMP7801. Topic in computer science
COMP7805. Topic in computer network and systems
COMP7809. Topic in artificial intelligence
DASC7606. Deep learning

Candidate may select no more than 2 courses offered by other taught postgraduate curricula in the
Faculty of Engineering as electives. All course selection will be subject to approval by the Programme
Director and Course coordinators concerned.

MSc(CompSc) Course descriptions

The following is a list of discipline courses offered by the Department of Computer Science for the
MSc(CompSc) curriculum. The list below is not final and some courses may not be offered every year.

All courses are assessed through examination and / or coursework assessment, the weightings of which
are subject to approval by the Board of Examiners.

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

COMP7104. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the
aspects of database systems design & algorithms and big data processing for structured data. Traditional
topics include query optimization, physical database design, transaction management, crash recovery,
parallel databases. The course will also survey some the recent developments in selected areas such as
NoSQL databases and SQL-based big data management systems for relational (structured) data.

COMP7105. Advanced topics in data science (6 credits)

This course will introduce selected advanced computational methods and apply them to problems in
data analysis and relevant applications.
__________________________________________________________________________________

COMP7106. Big data management (6 credits)


43

The course will study some advanced topics and techniques in Big Data. It will also survey the recent
development and progress in specific areas in big data management and scalable data science. Topics
include but not limited to: large database management techniques, spatial data management and spatial
networks, data quality and uncertain databases, top-k queries, graph and text databases, and data
analytics.

Mutually exclusive with: COMP7107 Management of complex types

__________________________________________________________________________________

COMP7107. Management of complex data types (6 credits)

The course studies the management and analysis of data types which are not simple scalars. Such
complex data types include spatial data, multidimensional data, time-series data, temporal and spatio-
temporal data, sparse multidimensional vectors, set-valued data, strings and sequences, homogeneous
and heterogeneous graphs, knowledge-base graphs, geo-textual and geo-social data. For each of these
data types, we will learn popular queries and analysis tasks, as well as storage and indexing methods
for main memory and the disk.

Mutually exclusive with: COMP7106 Big data management

COMP7201. Analysis and design of enterprise applications in UML (6 credits)

This course presents an industrial-strength approach to software development based on 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;
modern web 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
44

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.

Mutually exclusive with: COMP7906 Introduction to cyber security and ICOM6045 Fundamentals of
e-commerce security

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 cloud technologies, and discusses various issues in the design
and implementation of cloud systems. Topics include cloud delivery models (SaaS, PaaS, and IaaS)
with motivating examples from Google, Amazon, and Microsoft; virtualization techniques
implemented in Xen, KVM, VMWare, and Docker; distributed file systems, such as Hadoop file system;
MapReduce and Spark programming models for large-scale data analysis, networking techniques in
cluster and hyper-scale data centers. The students will learn the use of Amazon EC2 to deploy
applications on cloud, and implement a SPARK application on a Xen-enabled PC cluster as part of their
term project.

Prerequisites: The students are expected to install various open-source cloud software in their Linux
cluster, and exercise the system configuration and administration. Basic understanding of Linux
45

operating system and some programming experiences (C/C++, Java, or Python) in a Linux environment
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.

Prerequisites: basic web programming knowledge, e.g. HTML, JavaScript, and Java.

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.

__________________________________________________________________________________

COMP7308. Introduction to unmanned systems (6 credits)

To study the theory and algorithms in unmanned systems. Topics include vehicle modelling, vehicle
control, state estimation, perception and mapping, motion planning, and deep learning related
techniques.
__________________________________________________________________________________

COMP7309. Quantum computing and artificial intelligence (6 credits)

This course offers a theoretical overview of selected topics from the interdisciplinary fields of quantum
computation and quantum AI. The scope of the lectures encompasses an accessible introduction to the
fundamental concepts of quantum computation. Importantly, the introduction takes the angle of
computer science and logic, such that no preliminary knowledge of quantum theory is required.
Thereupon, detailed comparisons of computational principles and related phenomena in the classical
and quantum domain outline the stark potential and challenges of quantum theory for fundamentally
novel algorithms which are more powerful than possible with conventional computers. Thereupon, the
theoretical capability of quantum computers is illustrated by analyzing a selection of milestone
algorithms of quantum computation, and their potential applications to artificial intelligence.

__________________________________________________________________________________

COMP7310. Artificial intelligence of things (6 credits)

This course introduces basic concepts, technologies, and applications of the Internet of Things (IoT),
with a focus on smart sensing. The course features various topics on sensors and sensing techniques
that enable ubiquitous sensing intelligence for IoT devices, and connects them to exciting applications
in smart homes, healthcare, security, etc. The lectures introduce topics like localization, mobile sensing,
wireless sensing, acoustic sensing and their applications.
__________________________________________________________________________________
46

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, algorithmic
and philosophical 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. Ethical issues in advanced AI and how
to prevent learning algorithms from acquiring morally undesirable biases will be covered.

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 and ethical challenges of AI and ML.

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.

Mutually exclusive with: FITE7405 Techniques in computational finance

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.

Mutually exclusive with: FITE7406 Software development for quantitative finance


47

COMP7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: FITE7407 Securities transaction banking

COMP7408. Distributed ledger and blockchain technology (6 credits)

In this course, students will learn the key technical elements behind the blockchain (or in general, the
distributed ledger) technology and some advanced features, such as smart contracts, of the technology.
Variations, such as permissioned versus permissionless and private blockchains, and the available
blockchain platforms will be discussed.

Students will also learn the following issues: the security, efficiency, and the scalability of the
technology. Cyber-currency (e.g. Bitcoin) and other typical application examples in areas such as
finance will also be introduced.

Prerequisites: COMP7301 Computer and network security or COMP7906 Introduction to cyber security
or ICOM6045 Fundamentals of e-commerce security and experience in programming is required.

Mutually exclusive with: FITE3011 Distributed Ledger and Blockchain

__________________________________________________________________________________

COMP7409. Machine learning in trading and finance (6 credits)

The course introduces our students to the field of Machine Learning, and help them develop skills of
applying Machine Learning, or more precisely, applying supervised learning, unsupervised learning
and reinforcement learning to solve problems in Trading and Finance.

This course will cover the following topics. (1) Overview of Machine Learning and Artificial
Intelligence, (2) Supervised Learning, Unsupervised Learning and Reinforcement Learning, (3) Major
algorithms for Supervised Learning and Unsupervised Learning with applications to Trading and
Finance, (4) Basic algorithms for Reinforcement Learning with applications to optimal trading, asset
management, and portfolio optimization, (5) Advanced methods of Reinforcement Learning with
applications to high-frequency trading, cryptocurrency trading and peer-to-peer lending.

__________________________________________________________________________________

COMP7502. Image processing and computer vision (6 credits)


To study the theory and algorithms in image processing and computer vision. Topics include image
representation; image enhancement; image restoration; mathematical morphology; image compression;
scene understanding and motion analysis.

COMP7503. Multimedia technologies (6 credits)


48

This course presents fundamental concepts and emerging technologies for multimedia computing.
Students are expected to learn how to develop various kinds of media communication, presentation,
and manipulation techniques. At the end of course, students should acquire proper skill set to utilize,
integrate and synchronize different information and data from media sources for building
specific multimedia applications. Topics include media data acquisition methods and techniques;
nature of perceptually encoded information; processing and manipulation of media data; multimedia
content organization and analysis; trending technologies for future multimedia computing.

COMP7504. Pattern recognition and applications (6 credits)

To study techniques in pattern recognition. Topics include statistical decision theory; density
estimation; dimension reduction; discriminant functions; unsupervised classification and clustering;
neural network; hidden Markov model; and selected applications in pattern recognition such as
characters and speech recognition.

COMP7505. User interface design and development (6 credits)

For technology products and services, the user experience is a major key to success. With advanced
development of processors, sensors, and new algorithms and software tools, more powerful and
expressive user interfaces can be implemented to improve human computer interaction and operation.
The course will study matching input and output devices with user capabilities, software and hardware
considerations, interface design methodologies, and future interface technologies. All of these topics
will be supported and demonstrated with current research and actual case studies.

COMP7506. Smart phone apps development (6 credits)

Smart phones have become an essential part of our everyday lives. The number of smart phone users
worldwide today surpasses six billion and is forecast to further grow by more than one billion in the
next few years. Smart phones play an important role in mobile communication and applications.

Smart phones are powerful as they support a wide range of applications (called apps). Most of the time,
smart phone users just download their favorite apps remotely from the app stores. There is a great
potential for software developer to reach worldwide users.

This course aims at introducing the design and technical issues of smart phone apps. For example,
smart phone screens are usually smaller than computer monitors while smart phones usually possess
more hardware sensors than conventional computers. We have to pay special attention to these aspects
in order to develop attractive and successful apps. Various modern smart phone apps development
environments and programming techniques (such as Java for Android phones and Swift for iPhones)
will also be introduced to facilitate students to develop their own apps.

Students should have basic programming knowledge.

Mutually exclusive with: COMP3330 Interactive Mobile Application Design and Programming

COMP7507. Visualization and visual analytics (6 credits)

This course introduces the basic principles and techniques in visualization and visual analytics, and
their applications. Topics include human visual perception; color; visualization techniques for spatial,
49

geospatial and multivariate data, graphs and networks; text and document visualization; scientific
visualization; interaction and visual analysis.

COMP7508. Data-driven computer animation (6 credits)

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

COMP7602. Introduction to bioinformatics (6 credits)

The course will focus primarily on human genomics and medical applications, but the techniques will
be broadly applicable across all species. The topics will include 1) bioinformatics big data analytics and
algorithms for sequence alignment and sequence assembly, 2) bioinformatics tasks such variant
identification and annotation, gene expression and regulation, and 3) real-life bioinformatics
applications such as personal genome analysis and cancer genomics.

COMP7604. Game design and development (6 credits)

The course studies the basic concepts and techniques for digital game design and development. Topics
include: game history and genres, game design process, game production, 2D/3D graphics, physics,
audio/visual design, artificial intelligence.

Prerequisites: Basic programming skill, e.g. C++ or Java, is required

COMP7605. Advanced multimedia data analysis and applications (6 credits)

This course's objective is to introduce advanced multimedia data analysis techniques, and the design
and implementation of signal processing algorithms. It covers topics on Digital Filter Realization,
Recursive and Non-Recursive filters, Frequency Domain Processing, Two Dimensional Signal
Processing, and application of multimedia signal processing to speech production and analysis, image
and video processing.

__________________________________________________________________________________

COMP7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.


50

Mutually exclusive with: DASC7606 Deep learning

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

COMP7704. Dissertation (24 credits)

Candidate will be required to carry out independent work on a major project that will culminate in the
writing of a dissertation.
___________________________________________________________________________

COMP7801. Topic in computer science (6 credits)

Selected topics that are of current interest will be discussed.

COMP7802. Introduction to financial computing (6 credits)

This course introduces the students to different aspects of financial computing in the investment banking
area. The topics include yield curve construction in practice, financial modelling and modern risk
management practice, etc. Financial engineering is an area of growing demand. The course is a
combination of financial product knowledge, financial mathematics and computational techniques.
This course will be suitable for students who want to pursue a career in this fast growing area.

Prerequisites: This course does not require any prior knowledge in the area of finance. Basic calculus
and numeric computational techniques are useful. Knowledge in Excel spreadsheet operations is
required to complete the assignments and final project.

COMP7804. E-commerce security cases and technologies (6 credits)

This course provides students knowledge about modern e-commerce security, through the study of
various cases. It covers fundamental concepts in security technology so as to equip the students with
enough background knowledge in security, and then covers the impact of the modern e-commerce
environment to the changing demand of security. After that a bundle of cases will be covered, such as
cases in communication security, cases in Internet security, cases in data security including personal
data protection in both client-side and server-side, and application security cases. With the experience
of studying these cases, the students will be asked to assess or design security solutions to some given
e-commerce security problems, so as to acquire the ability to apply the learnt security technology to
real-life cases.

Mutually exclusive with: COMP7905 Reverse engineering and malware analysis

COMP7805. Topic in computer network and systems (6 credits)


51

Selected topics in computer network and systems that are of current interest will be discussed.

COMP7806. Topic in information security (6 credits)

Selected topics in information security that are of current interest will be discussed.

COMP7807. Topic in multimedia computing (6 credits)

Selected topics in multimedia computing that are of current interest will be discussed.

COMP7808. Topic in financial computing (6 credits)

Selected topics in financial computing that are of current interest will be discussed.

COMP7809. Topic in artificial intelligence (6 credits)

Selected topics in artificial intelligence that are of current interest will be discussed.
__________________________________________________________________________________

COMP7901. Legal protection of digital property (6 credits)

This course introduces computer professionals to the various legal means of protecting digital property
including computer software, algorithms, and any work or innovation in digital form. Focus is on the
main issues in protecting digital property arising from developments in information technology, and
their legal solutions. Topics covered include, but are not limited to, the following: 1) Copyright
protection of software and websites, 2) Patent protection of software and algorithms, 3) Protection of
personal data.

Mutually exclusive with: COMP3311/CSIS0311 Legal aspects of computing and ECOM6004 Legal
aspects of IT and e-commerce

COMP7903. Digital investigation and forensics (6 credits)

This course introduces the fundamental principles of digital investigation and forensics. The course
starts with a brief introduction to common computer crimes and digital evidence, and then moves on to
the computer basics and network basics pertaining to digital forensics, and finally comes to the
techniques for digital investigation and forensic examination.

COMP7904. Information security: attacks and defense (6 credits)

This is an ethical hacking course. In this course, we will teach students how to conduct ethical hacking
so as to better protect a computer system in a company. Topics include physical security, password
cracking, network hacking, operating system hacking, and application hacking. The course will also
discuss R&D problems related to hacking and defense. The course will try to strike a balance between
theory and practice so that students can understand the theories behind the hacking process as well as
get enough hands-on exercises to perform ethical hacking and defense.

Prerequisites: Students are expected to have knowledge in university level mathematics and systems
52

plus experience in programming.

COMP7905. Reverse engineering and malware analysis (6 credits)

This course provides students a foundational knowledge about reverse engineering and malware
analysis, through the study of various cases and hand-on analysis of malware samples. It covers
fundamental concepts in malware investigations so as to equip the students with enough background
knowledge in handling malicious software attacks. Various malware incidents will be covered, such as
cases in Ransomware, banking-Trojan, state-sponsored and APT attacks, cases in Stuxnet and malicious
software attacks on Industrial Control System and IoT devices. With the experience of studying these
cases and analyzing selected samples, the students will be able to understand the global cyber security
landscape and its future impact. Hands-on exercises and in-depth discussion will be provided to enable
students to acquire the required knowledge and skill set for defending and protecting an enterprise
network environment.

Students should have programming/development skills (Assembly, C, C++, Python) and knowledge in
Operating System and computer network.

Mutually exclusive with: COMP7804 E-commerce security cases and technologies.

COMP7906. Introduction to cyber security (6 credits)

The aim of the course is to introduce different methods of protecting information and data in the cyber
world, including the privacy issue. Topics include introduction to security; cyber attacks and threats;
cryptographic algorithms and applications; network security and infrastructure.

Mutually exclusive with: COMP7301 Computer and network security and ICOM6045 Fundamentals
of e-commerce security
__________________________________________________________________________________

DASC7606. Deep learning (6 credits)

Machine learning is a fast-growing field in computer science and deep learning is the cutting edge
technology that enables machines to learn from large-scale and complex datasets. Ethical implications
of deep learning and its applications will be covered and the course will focus on how deep neural
networks are applied to solve a wide range of problems in areas such as natural language processing,
and image processing. Other applications such as financial predictions, game playing and robotics may
also be covered. Topics covered include linear and logistic regression, artificial neural networks and
how to train them, recurrent neural networks, convolutional neural networks, generative models, deep
reinforcement learning, and unsupervised feature learning.

Prerequisites: Basic programming skills, e.g., Python is required.

Mutually exclusive with: COMP7606 Deep learning

FITE7405. 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.
53

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.

Mutually exclusive with: COMP7405 Techniques in computational finance

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

Mutually exclusive with: COMP7406 Software development for quantitative finance

FITE7407. Securities transaction banking (6 credits)


The course introduces the business and technology scenarios in the field of Transaction Banking for
financial markets. It balances the economic and financial considerations for products and markets with
the organizational and technological requirements to successfully implement a banking function in this
scenario. It is a crossover between studies of economics, finance and information technology, and
features the concepts from basics of the underlying financial products to the latest technology of
tokenization of assets on a Blockchain.

Mutually exclusive with: COMP7407 Securities transaction banking

FITE7410. Financial fraud analytics (6 credits)

This course aims at introducing various analytics techniques to fight against financial fraud. These
analytics techniques include, descriptive analytics, predictive analytics, and social network learning.
Various data set will also be introduced, including labeled or unlabeled data sets, and social network
data set. Students learn the fraud patterns through applying the analytics techniques in financial frauds,
such as, insurance fraud, credit card fraud, etc.

Key topics include: Handling of raw data sets for fraud detection; Applications of descriptive analytics,
predictive analytics and social network analytics to construct fraud detection models; Financial Fraud
Analytics challenges and issues when applied in business context.

Required to have basic knowledge about statistics concepts.

You might also like