COMPUTER SCIENCE/IT TECHNOLOGY
BACHELOR OF SCIENCE
COMPUTER SCIENCE/IT TECHNOLOGY
SYLLABUS
The syllabus applies to students admitted in the academic year 2015-16 and thereafter under the four- year curriculum.
Definition and Terminology
Each course offered by the Department of Computer Science shall be classified as either introductory level course or advanced level course.
A Discipline Core course is a compulsory course which a candidate must pass in the manner provided for in the Regulations.
A Discipline elective course refers to any technical course offered by the Department of Computer Science for the fulfillment of the curriculum requirements of the degree of BEng in Computer Science that are not classified as discipline core course.
Curriculum
The Curriculum comprises 240 credits of courses as follows:
General Engineering Courses
Students are required to complete at least 36 credits of General Engineering Course.
Discipline Core Courses
Students are required to complete ALL discipline core courses (60 credits), comprising 24 credits of introductory core courses and 36 credits of advanced core courses.
Discipline Elective Courses
Students are required to complete at least 30 credits of discipline elective courses offered by the Department of Computer Science.
Elective Courses
Students are required to complete 42 credits of elective course(s) offered by either the Department of Computer Science, or other departments within or outside of the Faculty of Engineering.
University Requirements Students are required to complete:
a) 12 credits in English language enhancement, including 6 credits in “CAES1000 Core University English” and 6 credits in “CAES9542 Technical English for computer science”;
- b) 6 credits in Chinese language enhancement course “CENG9001 Practical Chinese for
engineering students”; and
- c) 36 credits of courses in the Common Core Curriculum, selecting not more than one course
from each Area of Inquiry within one academic year and at least one but no more than two courses from each Area of Inquiry during the whole period of study.
Capstone Experience
Students are required to complete the 12-credit “COMP4801 Final year project” to fulfill the capstone experience requirement for the degree of BEng in Computer Science.
Internship
Students are required to complete the 6-credit internship “COMP3412 Internship”, which normally takes place after their third year of study.
Degree Classification
The degree of Bachelor of Engineering shall be awarded in five divisions in accordance with EN16 of the Regulations for the Degree of Bachelor of Engineering and UG9 of the Regulations for the First Degree Curricula.
The details of the distribution of the above course categories are as follows:
The curriculum of BEng (Computer Science) comprises 240 credits of courses with the following structure:
UG 5 Requirements (54 credits)
* Students can select not more than one course from each Area of Inquiry within one academic year and at least one but no more than two courses from each Area of Inquiry during the whole period of study.
General Engineering Courses (36 credits)
| Course Code | Course | No. of credits |
| CAES1000 | Core University English | 6 |
| CAES9542 | Technical English for computer science | 6 |
| CENG9001 | Practical Chinese for engineering students | 6 |
| CC##XXXX | University Common Core Course (6 courses)* | 36 |
| Total for UG5 Requirements | 54 | |
| Course Code | Course | No. of credits |
| MATH1851 | Calculus and ordinary differential equations | 6 |
| MATH1853 | Linear algebra, probability and statistics | 6 |
| ENGG1111/ ENGG1112 | Computer programming and applications/ Computer programming and applications I | 6 |
| PHYS1050 | Physics for engineering students | 6 |
| ENGG1202 | Introduction to computer science | 6 |
| ENGG120X | Any one of the General Engineering Courses offered by other Departments of the Faculty of Engineering* | 6 |
| Total for General Engineering Courses | 36 | |
*Choose one General Engineering Course from the following list:
ENGG1201 ENGG1203 ENGG1204 ENGG1205 ENGG1206 ENGG1207
Engineering for sustainable development Introduction to electrical and electronic engineering Industrial management and logistics
Introduction to mechanical engineering Introduction to biomedical engineering
Foundation of biochemistry for medical engineering
Discipline Core Courses (60 credits)
Introductory Courses (24 credits)
| Course Code | Course | No. of credits |
| COMP2119 | Introduction to data structures and algorithms | 6 |
| COMP2120 | Computer organization | 6 |
| COMP2121 | Discrete mathematics | 6 |
| COMP2123 | Programming technologies and tools | 6 |
2
| Total for Introductory Discipline Core Courses | 24 |
Advanced Courses (36 credits)
| Course Code | Course | No. of credits |
| COMP3230 | Principles of operation systems | 6 |
| COMP3234 | Computer and communication networks | 6 |
| COMP3250 | Design and analysis of algorithms | 6 |
| COMP3278 | Introduction to database management systems | 6 |
| COMP3297 | Introduction to software engineering | 6 |
| COMP3311 | Legal aspects of computing | 6 |
| Total for Advanced Discipline Core Courses | 36 | |
Capstone Experience and Internship (18 credits)
+Capstone Experience
*Training
*Students who are selected to participate in the Undergraduate Research Fellowship Programme are required to complete COMP3413 Research internship and are not required to complete COMP3412 Internship.
Discipline Elective Courses (30 credits)
| Course Code | Course | No. of credits |
| COMP4801 | Final year project+ | 12 |
| COMP3412 | Internship* | 6 |
| Total for Capstone Experience and Internship | 18 | |
| Course Code | Course | No. of credits |
| COMP2396 | Object-oriented programming and Java | 6 |
| COMP3231 | Computer architecture | 6 |
| COMP3235 | Compiling techniques | 6 |
| COMP3258 | Functional programming | 6 |
| COMP3259 | Principles of programming languages | 6 |
| COMP3270 | Artificial intelligence | 6 |
| COMP3271 | Computer graphics | 6 |
| COMP3314 | Machine learning | 6 |
| COMP3315 | Multimedia computing and applications | 6 |
| COMP3316 | Quantum Information and Computation | 6 |
| COMP3317 | Computer vision | 6 |
| COMP3320 | Electronic commerce technology | 6 |
| COMP3322 | Modern technologies on World Wide Web | 6 |
| COMP3323 | Advanced database systems | 6 |
| COMP3327 | Computer and network security | 6 |
| COMP3328 | Wireless and mobile communication | 6 |
| COMP3329 | Computer game design and programming | 6 |
| COMP3330 | Interactive mobile application design and programming | 6 |
| COMP3351 | Advanced algorithm analysis | 6 |
| COMP3402 | System architecture and distributed computing | 6 |
| COMP3403 | Implementation, testing and maintenance of software systems | 6 |
| COMP3404 | Software quality and project management | 6 |
| COMP3407 | Scientific computing | 6 |
3
| COMP3413 | Research internship | 6 |
| Complete at least five discipline elective courses for a total of 30 credits | 30 | |
Elective Courses (42 credits)
At least 42 credits of courses offered by either the Department of Computer Science, or other departments within or outside of the Faculty of Engineering.
Summary of curriculum structure of BEng (Computer Science)
| Course Categories | No. of credits |
| UG5 Requirements | 54 |
| General Engineering Courses | 36 |
| Discipline Core Courses (Introductory) | 24 |
| Discipline Core Courses (Advanced) | 36 |
| Capstone Experience and Internship | 18 |
| Discipline elective Courses | 30 |
| Elective Courses | 42 |
| Total | 240 |
The proposed syllabus by study year is as follows:
FIRST YEAR
General Engineering Courses (36 credits)
MATH1851 MATH1853 ENGG1111 PHYS1050 ENGG1202 ENGG120X
Calculus and ordinary differential equations Linear algebra, probability and statistics Computer programming and applications Physics for engineering students Introduction to computer science
Any one of the General Engineering Courses offered by other Departments of the Faculty of Engineering
University Requirements (UG5) (24 credits)
CAES1000 Core University English CC##XXXX Three Common Core Courses
SECOND YEAR
Introductory Core Courses (24 credits)
COMP2119 COMP2120 COMP2121 COMP2123
Introduction to data structures and algorithms Computer organization
Discrete mathematics
Programming technologies and tools
Discipline Elective Courses (6 credits)
Elective Courses (12 credits)
University Requirements (UG5) (18 credits)
CC##XXXX Three Common Core Courses
THIRD YEAR
4
Advanced Core Courses (36 credits)
COMP3230 COMP3234 COMP3250 COMP3278 COMP3297 COMP3311
Principles of operation systems
Computer and communication networks Design and analysis of algorithms Introduction to database management systems Introduction to software engineering
Legal aspects of computing
Internship (6 credits)
COMP3412 Internship
University Requirements (UG5) (6 credits)
CENG9001 Practical Chinese for engineering students
Discipline Elective Courses (12 credits) Elective Courses (6 credits)
FOURTH YEAR
Discipline Elective Courses (12 credits)
Capstone Experience (12 credits)
COMP4801 Final year project
University Requirements (UG5) (6 credits)
CAES9542 Technical English for computer science
Elective Courses (24 credits) MAJOR IN COMPUTER SCIENCE
(for non-BEng(CompSc) students)
The curriculum comprises 84 credits of courses with the following structure:
Prerequisite: Level 3 or above in Mathematics in the Hong Kong Diploma of Secondary Education (HKDSE) Examination
Introductory Courses (30 credits)
Advanced Courses (48 credits)
| Course Code | Course | No. of credits |
| COMP1117 | Computer programming | 6 |
| COMP2119 | Introduction to data structures and algorithms | 6 |
| COMP2120 | Computer organization | 6 |
| COMP2121 | Discrete mathematics | 6 |
| COMP2123 | Programming technologies and tools | 6 |
| Total for Introductory Courses | 30 | |
| Course Code | Course | No. of credits |
5
12 credits of courses to be chosen from the following list:
Principles of operating systems
Computer and communication networks Introduction to database management systems
COMP3297 Introduction to software engineering
36 credits of elective courses to be chosen from the following list:
Principles of operating systems
Computer and communication networks Introduction to database management systems Introduction to software engineering Object-oriented programming and Java Computer architecture
Compiling techniques
Design and analysis of algorithms
Functional programming
Principles of programming languages Artificial intelligence
Computer graphics
COMP3351 Advanced algorithm analysis
COMP3402 System architecture and distributed computing
COMP3403 Implementation, testing and maintenance of software systems COMP3404 Software quality and project management
Legal aspects of computing
Machine learning
Multimedia computing and applications
Quantum Information and Computation
Computer vision
Electronic commerce technology
Modern technologies on World Wide Web
Advanced database systems
Computer and network security
Wireless and mobile communication
Computer game design and programming
Interactive mobile application design and programming
COMP3407 Scientific computing Total for Advanced Courses
Capstone Experience (6 credits)
Note 1
| Course Code | Course | No. of credits |
| COMP4805 | Project | 6 |
| Total for Capstone Experience | 6 | |
Students who have completed MATH2600 Discrete mathematics are deemed to have completed COMP2121, they are not permitted to take COMP2121 and are required to complete one more elective in Computer Science as replacement.
Note 2
Computer Science, in consideration of class quota and other academic issues.
Course enrollment in elective courses is subject to the approval of the Department of 6
MINOR IN COMPUTER SCIENCE
(This minor option is not available for BEng(CE) and BEng(CompSc) students) The curriculum comprises 42 credits of courses with the following structure:
Prerequisite: Level 3 or above in Mathematics in the Hong Kong Diploma of Secondary Education (HKDSE) Examination
Introductory Courses (18 credits)
Advanced Courses (24 credits)
| Course Code | Course | No. of credits |
| COMP1117 | Computer programming | 6 |
| COMP2119 | Introduction to data structures and algorithms | 6 |
| COMP2123 | Programming technologies and tools | 6 |
| Total for Introductory Courses | 18 | |
| Course Course Code | No. of credits |
| 24 credits of courses to be chosen from the following list: | 24 |
| COMP2120 Computer organization | |
| COMP2121 Discrete mathematics | |
| COMP2396 Object-oriented programming and Java | |
| COMP3230 Principles of operation systems | |
| COMP3231 Computer architecture | |
| COMP3234 Computer and communication networks | |
| COMP3235 Compiling techniques | |
| COMP3250 Design and analysis of algorithms | |
| COMP3258 Functional programming | |
| COMP3259 Principles of programming languages | |
| COMP3270 Artificial intelligence | |
| COMP3271 Computer graphics | |
| COMP3278 Introduction to database management systems | |
| COMP3297 Introduction to software engineering | |
| COMP3311 Legal aspects of computing | |
| COMP3314 Machine learning | |
| COMP3315 Multimedia computing and applications | |
| COMP3316 Quantum Information and Computation | |
| COMP3317 Computer vision | |
| COMP3320 Electronic commerce technology | |
| COMP3322 Modern technologies on World Wide Web | |
| COMP 3323 Advanced database systems | |
| COMP 3327 Computer and network security | |
| COMP 3328 Wireless and mobile communication | |
| COMP 3329 Computer game design and programming | |
| COMP3330 Interactive mobile application design and programming | |
| COMP 3351 Advanced algorithm analysis | |
| COMP 3402 System architecture and distributed computing |
7
| COMP 3403 | Implementation, testing and maintenance of software systems | |
| COMP 3404 | Software quality and project management | |
| COMP 3407 | Scientific computing | |
| Total for Advanced Courses | 24 | |
Note 1
BEng students who have completed ENGG1111 Computer programming and applications are deemed to have completed COMP1117 Computer programming, and they are required to complete one more elective in Computer Science as replacement (i.e. a total of 30 credits).
Note 2
Computer Science, in consideration of class quota and other academic issues.
ENGG1111 ENGG1112 MATH1851 MATH1853 PHYS1050 ENGG1201 ENGG1202 ENGG1203 ENGG1204 ENGG1205 ENGG1206 ENGG1207
Please refer
Computer programming (6 credits)
Computer programming I (6 credits)
Calculus and ordinary differential equations (6 credits)
Linear algebra, probability and statistics (6 credits)
Physics for engineering students (6 credits)
Engineering for sustainable development (6 credits) Foundation of computer science (6 credits)
Introduction to electrical and electronic engineering (6 credits) Industrial management and logistics (6 credits)
Introduction to mechanical engineering (6 credits) Introduction to biomedical engineering (6 credits)
Foundation of biochemistry for medical engineering
Course enrollment in elective courses is subject to the approval of the Department of
COURSE DESCRIPTIONS
Candidates will be required to do the coursework in the respective courses selected. Not all courses are offered every semester.
General Engineering Courses
to the General Engineering Courses in the syllabus for the degree of BEng for details.
University Requirements on Language Enhancement Courses
CAES1000. Core University English (6 credits)
CENG9001. Practical Chinese for engineering students (6 credits)
Please refer to the University Language Enhancement Courses in the syllabus for the degree of BEng for details.
CAES9542. Technical English for computer science (6 credits)
Running alongside Computer Science project based courses, this one semester, 6-credit course will build and consolidate final year CS and Computing and data analytics students’ ability to compose technical reports, and make technical oral presentations. The focus of this course is on helping students to report on the progress of their Final Year Project in an effective, professional manner in both written and oral communication. Topics include accessing, abstracting, analyzing, organizing and summarizing information; making effective grammatical and lexical choices; technical report writing; and technical presentations. Assessment is wholly by coursework.
Co-requisite: COMP4801 or COMP4804 Assessment: 100% continuous assessment.
University Common Core Curriculum
36 credits of courses in the University Common Core Curriculum, in which students can select not more than one course from each Area of Inquiry within one academic year and at least one but no more than two courses from each Area of Inquiry during the whole period of study:
• Scientific and Technology Literacy • Humanities
• Global Issues
• China: Culture, State and Society
Courses with prefix CSISxxxx are offered to students admitted to the 3-year curriculum in 2012/13 and before, courses with prefix COMPxxxx are offered to students admitted to the 4-year curriculum in 2012/13 and thereafter.
COMP1117 Computer programming (6 credits)
This course covers both the basic and advanced features of the C/C++ programming languages, including syntax, identifiers, data types, control statements, functions, arrays, file access, objects and classes, class string, structures and pointers. It introduces programming techniques such as recursion, linked lists and dynamic data structures. The concept and skills of program design, implementation and debugging, with emphasis on problem-solving, will also be covered.
Assessment: 50% continuous assessment, 50% examination
COMP2121. Discrete mathematics (6 credits)
This course provides students a solid background on discrete mathematics and structures pertinent to computer science. Topics include logic; set theory; mathematical reasoning; counting techniques; discrete probability; trees, graphs, and related algorithms; modeling computation.
Assessment: 50% continuous assessment, 50% examination
COMP2119. Introduction to data structures and algorithms (6 credits)
Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees;
sorting algorithms; complexity analysis.
Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112 Pre-/Co-requisite: CSIS1122 or CSIS1123 or COMP2123
Assessment: 40% continuous assessment, 60% examination
COMP2120. Computer organization (6 credits)
Introduction to computer organization and architecture; data representations; instruction sets; machine and assembly languages; basic logic design and integrated devices; the central processing unit and its control; memory and caches; I/O and storage systems; computer arithmetic.
Co-requisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112 Assessment: 50% continuous assessment, 50% examination
COMP2123. Programming technologies and tools (6 credits)
This course introduces various technologies and tools that are useful for software development, including Linux, C++ STL, the C language, shell scripts, python and xml. Learning materials will be provided but there will be no lecture. This strengthens the self-learning ability of the students.
Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112 Assessment: 50% continuous assessment, 50% examination
COMP2396. Object-oriented programming and Java (6 credits)
Introduction to object-oriented programming; abstract data types and classes; inheritance and polymorphism; object-oriented program design; Java language and its program development environment; user interfaces and GUI programming; collection class and iteration protocol; program documentation.
Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112 Assessment: 50% continuous assessment, 50% examination
COMP3230. Principles of operating systems (6 credits)
Operating system structures, process and thread, CPU scheduling, process synchronization, deadlocks, memory management, file systems, I/O systems and device driver, mass-storage structure and disk scheduling, case studies.
Prerequisites: CSIS1122 or CSIS1123 or COMP2123 and CSIS1120 or COMP2120 or ELEC1401 or ELEC2441
Assessment: 50% continuous assessment, 50% examination
COMP3231. Computer architecture (6 credits)
Introduction to computer design process; performance and cost analysis; instruction set design; data- path and controller design; pipelining; memory system; I/O design; introduction to advanced topics.
Prerequisite: CSIS1120 or COMP2120
Assessment: 40% continuous assessment, 60% examination
COMP3234. Computer and communication networks (6 credits)
Network structure and architecture; reference models; stop and wait protocol; sliding window protocols; character and bit oriented protocols; virtual circuits and datagrams; routing; flow control; congestion control; local area networks; issues and principles of network interconnection; transport
protocols and application layer; and examples of network protocols.
Prerequisite: CSIS1120 or COMP2120 or ELEC1401 or ELEC2441 Assessment: 50% continuous assessment, 50% examination
COMP3235. Compiling techniques (6 credits)
Lexical analysis; symbol table management; parsing techniques; error detection; error recovery; error diagnostics; run-time memory management; optimization; code generation.
Prerequisite: CSIS1119 or COMP2119; and CSIS1122 or CSIS1123 or COMP2123 Assessment: 50% continuous assessment, 50% examination
COMP3250. Design and analysis of algorithms (6 credits)
The course studies various algorithm design techniques, such as divide and conquer, and dynamic programming. These techniques are applied to design highly non-trivial algorithms from various areas of computer science. Topics include: advanced data structures; graph algorithms; searching algorithms; geometric algorithms; overview of NP-complete problems.
Prerequisite: CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543 Assessment: 50% continuous assessment, 50% examination
COMP3258. Functional programming (6 credits)
The course teaches the basics of functional programming using the language Haskell. The main goal is introduce students to fundamental programming concepts such as recursion, abstraction, lambda expressions and higher-order functions and data types. The course will also study the mathematical reasoning involved in the design of functional programs and techniques for proving properties about functions so defined. With the adoption of lambda expressions recent versions of Java, C++ or C#, functional programming and related programming techniques are becoming increasingly more relevant even for programmers of languages that are not traditionally viewed as functional. This course is important to introduce students to such techniques.
Prerequisite: CSIS1118 or CSIS1121 or COMP2121 Assessment: 50% continuous assessment, 50% examination
COMP3259. Principles of programming languages (6 credits)
Syntax and semantics specification; data types; data control and memory management; expressions, precedence and associativity of operators; control structures; comparative study of existing programming languages; advanced topics such as polymorphism, programming paradigms, exception handling and concurrency.
Prerequisites: CSIS1119 or COMP2119; and CSIS1120 or COMP2120 or ELEC1401 or ELEC2441 Assessment: 40% continuous assessment, 60% examination
COMP3270. Artificial intelligence (6 credits)
This is an introduction course on the subject of artificial intelligence. Topics include: intelligent agents; search techniques for problem solving; knowledge representation; logical inference; reasoning under uncertainty; statistical models and machine learning. This course may not be taken with BUSI0088.
Prerequisite: CSIS1119 or COMP2119 or CSIS1122 or CSIS1123 or COMP2123 Assessment: 50% continuous assessment, 50% examination
COMP3271. Computer graphics (6 credits)
Overview of graphics hardware, basic drawing algorithms, 2-D transformations, windowing and clipping, interactive input devices, curves and surfaces, 3-D transformations and viewing, hidden-surface and hidden-line removal, shading and colour models, modelling, illumination models, image synthesis, computer animation.
Prerequisite: CSIS1119 or COMP2119 or CSIS1122 or CSIS1123 or COMP2123 Assessment: 50% continuous assessment, 50% examination
COMP3278. Introduction to database management systems (6 credits)
This course studies the principles, design, administration, and implementation of database management systems. Topics include: entity-relationship model, relational model, relational algebra, database design and normalization, database query languages, indexing schemes, integrity and concurrency control. This course may not be taken with BUSI0052.
Prerequisite: CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543 Assessment: 50% continuous assessment, 50% examination
COMP3297. Introduction to software engineering (6 credits)
This course introduces the fundamental principles and methodologies of software engineering. It covers the software process and methods and tools employed in the development of modern systems. The use of CASE tools and the UML are emphasized. The course includes a team-based project in which students apply their new knowledge to a full development lifecycle, including maintenance.
Prerequisite: CSIS1122 or CSIS1123 or COMP2123 Assessment: 50% continuous assessment, 50% examination
COMP3311. Legal aspects of computing (6 credits)
To introduce students to the laws affecting computing and the legal issues arising from the technology. Contents include: the legal system of Hong Kong; copyright protection for computer programs; intellectual property issues on the Internet; data privacy; computer-related crimes; codes of professional conduct for computer professionals.
Prerequisite: CSIS1122 or CSIS1123 or COMP2123 Assessment: 40% continuous assessment, 60% examination
COMP3314. Machine learning (6 credits)
An introduction to algorithms and applications of machine learning. Topics include: decision theory; parametric models; supervised learning (classification and regression); unsupervised learning (clustering, mixture models, principal component analysis); Bayesian methods.
Prerequisite: MATH1853; and CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543 Assessment: 50% continuous assessment, 50% examination
COMP3315. Multimedia computing and applications (6 credits)
This course introduces various aspects of the interdisciplinary and multidisciplinary field of multimedia computing. Current developments of technologies and techniques in multimedia will also be covered. Applications of multimedia techniques are also highlighted through a media production course project. Major topics include: what are media, audio, acoustics and psychoacoustics, MIDI, basic compression techniques, video compression techniques, standards, and current multimedia technologies. This course may not be taken with BUSI0068.
Prerequisite: CSIS1119 or COMP2119
Assessment: 50% continuous assessment, 50% examination
COMP3316. Quantum Information and Computation (6 credits)
This course offers a gentle introduction to the field of quantum information and computation, designed for computer science students. We will start from the basic principles of quantum theory, becoming familiar with the counterintuitive notions of quantum superposition and entanglement. Once the basics have been established, we will explore the cornerstones of quantum information theory: quantum cloning, quantum teleportation, quantum state discrimination, quantum error correction, and cryptography. Finally, we will conclude with an overview of quantum computation and of the main quantum algorithms, including Shor’s algorithm for prime factorization in polynomial time and Grover’s quantum search algorithm.
Prerequisite: MATH1853 or MATH2101 or equivalent Assessment: 50% continuous assignment, 50% examination
COMP3317. Computer vision (6 credits)
This course introduces the principles, mathematical models and applications of computer vision. Topics include: image processing techniques, feature extraction techniques, imaging models and camera calibration techniques, stereo vision, and motion analysis.
Prerequisite: CSIS1119 or COMP2119 or ELEC1502 or ELEC1503 or ELEC2543 Assessment: 50% continuous assessment, 50% examination
COMP3320. Electronic commerce technology (6 credits)
This course aims to help students to understand the technical and managerial challenges they will face as electronic commerce becomes a new locus of economics activities. Topics include Internet and WWW technology, information security technologies, public-key crypto-systems, public-key infrastructure, electronic payment systems, and electronic commerce activities in different sectors.
Prerequisite: CSIS0278 or COMP3278
Assessment: 30% continuous assessment, 70% examination
COMP3322. Modern technologies on World Wide Web (6 credits)
Basics on Internet and network protocols (TCP and IP); Internet applications; Domain Name System; World Wide Web; Web addressing; HTTP; HTML, XML, style sheets, etc.; programming the Web: PHP , JavaScript, etc.; other topics of current interest (AJAX, HTML5, web services, cloud computing). This course may not be taken with BUSI0063.
Prerequisite: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112 Assessment: 50% continuous assessment, 50% examination
COMP3323. Advanced database systems (6 credits)
The course will study some advanced topics and techniques in database systems, with a focus on the system and algorithmic aspects. It will also survey the recent development and progress in selected areas. Topics include: query optimization, spatial-spatiotemporal data management, multimedia and time-series data management, information retrieval and XML, data mining.
Prerequisite: CSIS0278 or COMP3278
Assessment: 50% continuous assessment, 50% examination
COMP3327. Computer and network security (6 credits)
This course introduces the principles, mechanisms and implementation of computer security and data protection. Knowledge about the attack and defend are included. Topics include notion and terms of information security; introduction to encryption: classic and modern encryption technologies include public-key systems; authentication methods; access control methods; system integrity attacks and defences (e.g. viruses); introduction to network/Internet security; analysis and models of secure systems.
Pre-requisites: CSIS0230 or COMP3230; and CSIS0234 or COMP3234 Assessment: 30% continuous assessment, 70% examination
COMP3328. Wireless and mobile communication (6 credits)
This course introduces the basic principles and technologies in various mobile and wireless communication systems. Topics include mobile communication environment; digital modulation; channel coding; medium access technologies; cellular mobile radio systems; wireless LANs; security in wireless systems; internetworking in wireless systems; mobility applications.
Prerequisite: CSIS0234 or COMP3234; and CSIS0396 or COMP2396 Assessment: 50% continuous assessment, 50% examination
COMP3329. Computer game design and programming (6 credits)
The course will study practical topics in game design. Topics includes: types of game, game 14
platforms, design of game, 3D model and kinematics, rendering techniques, collision detection, project management, AI, UI, sound effects, and networking.
Pre-requisite: CSIS1119 or COMP2119
Assessment: 50% continuous assessment, 50% examination
COMP3330. Interactive mobile application design and programming (6 credits)
This course introduces the Android platform for developing interactive mobile applications. Topics include user interface, parallel computing, graphics, multimedia, sensors, database, and social computing. Students participate in both individual assignments and group projects to practice ideation, reading, writing, coding, and presentation.
Prerequisite: CSIS0396 or COMP2396
Assessment: Assessment: 50% continuous assessment, 50% examination
COMP3351. Advanced algorithm analysis (6 credits)
This class introduces advanced mathematical techniques for analyzing the complexity and correctness of algorithms. NP-complete problems are believed to be not solvable in polynomial time and we study how approximation algorithms could give near optimal solutions. In particular, we will see that probability theory gives us a very powerful tool to tackle problems that are otherwise hard to solve.
Prerequisite: CSIS0250 or COMP3250; or basic knowledge in probability and algorithms Assessment: 50% continuous assessment, 50% examination
COMP3402. System architecture and distributed computing (6 credits)
This course introduces the architecture of modern systems and the concepts and principles of distributed computing. Topics include: client-server computing, multi-tier architectures, data/object persistence, parallel server systems, naming services, transaction processing, middleware and messaging, component technologies, and web services/APIs.
Prerequisite: CSIS0396 or COMP2396
Assessment: 50% continuous assessment, 50% examination
COMP3403. Implementation, testing and maintenance of software systems (6 credits)
This course examines the theory and practice of software implementation, testing and maintenance. Topics in implementation include: detailed design issues and implementation strategies; coding style and standards; the review process; quality metrics; pattern implementation and reuse. Testing covers strategies and techniques for unit and component testing; integration testing; system, performance and acceptance testing; test documentation and test management. Topics in maintenance include maintenance techniques, tools and metrics; software rejuvenation; and refactoring.
Pre/Co-requisite: CSIS0396 or COMP2396
Assessment: 50% continuous assessment, 50% examination
COMP3404. Software quality and project management (6 credits)
Topics in software quality include: software quality models; quality assurance; software quality metrics; quality reviews, inspections and audits. Topics in project management include: project planning, cost estimation and scheduling; project monitoring and control; agile, traditional and extreme process models and their management; risk analysis; configuration management and control; software acquisition; contract management; and process improvement. This course may not be taken with BUSI0060 or BUSI0061.
Prerequisite: CSIS0297 or COMP3297
Assessment: 40% continuous assessment, 60% examination
COMP3407. Scientific computing (6 credits)
This course provides an overview and covers the fundamentals of scientific and numerical computing. Topics include numerical analysis and computation, symbolic computation, scientific visualization, architectures for scientific computing, and applications of scientific computing.
Prerequisites: CSIS1117 or COMP1117 or ENGG1002 or ENGG1111 or ENGG1112; and CSIS1118 or ENGG1007 or COMP2121
Assessment: 50% continuous assessment, 50% examination
COMP3412 Internship (6 credits) [for intakes of 2012 and thereafter (4-year curriculum)]
The course consists of two components: internship and professionalism. Internship requires students to spend a minimum of four weeks employed, full-time, as IT interns or trainees. During this period, they are engaged in work of direct relevance to their programme of study. The Internship provides students with practical, real-world experience and represents a valuable complement to their academic training. Professionalism exposes students to social and professional issues in computing. Students need to understand their professional roles when working as computer professionals as well as the responsibility that they will bear. They also need to develop the ability to ask serious questions about the social impact of computing and to evaluate proposed answers to those questions. Topics include social context of computing, risks, safety and security concerns for computer professionals, professional and ethical responsibilities, and continuing professional development.
Assessment: 100% continuous assessment
COMP3413. Research internship (6 credits)
The student will participate in a research project under the guidance and supervision of a teacher over a prescribed period of time; the results will be presented in an oral and a written report.
Assessment: 100% continuous assessment
COMP4801. Final year project (12 credits)
Student individuals or groups, during the final year of their studies, undertake full end-to-end development of a substantial project, taking it from initial concept through to final delivery. Topics range from applied software development to assignments on basic research. In case of a team project, significant contribution is required from each member and students are assessed individually, such
that each student is given a separate project title. Strict standards of quality will be enforced throughout the project development.
Assessment: 100% continuous assessment
COMP4804 Computing and data analytics project (6-credits) [for candidates pursuing the degree BEng(EngSc) – Computing and Data Analytics]
Students during the final year of their studies undertake a substantial project, taking it from initial concept through to final delivery, and integrating their knowledge and skills on computing and data analytics.
Assessment: 100% continuous assessment
COMP4805 Project (6-credits) [for non-BEng(CompSc) candidates pursuing Computer Science as second major]
Students during the final year of their studies undertake a substantial project, taking it from initial concept through to final delivery, and integrating their knowledge and skills on computing.
Assessment: 100% continuous assessment
Candidates may take up to two MSc(CompSc) courses as electives, subject to the approval of the Head of Department. An MSc(CompSc) course is equivalent to a 6-credit course, by undertaking additional workload than an MSc(CompSc) student in the course concerned.