Undergraduate Courses 2018-19
COMP
Computer Science and Engineering
Undergraduate courses marked with [BLD] or [ONL] may be offered in the mode of blended learning or pure online delivery respectively, subject to different offerings. Students should check the delivery mode of the class section before registration.
- COMP 1001Exploring Multimedia and Internet Computing3 Credit(s)Exclusion(s)ISOM 2010, any COMP courses of 2000-level or aboveMode of Delivery[BLD] Blended learningDescriptionThis course is an introduction to computers and computing tools. It introduces the organization and basic working mechanism of a computer system, including the development of the trend of modern computer system. It covers the fundamentals of computer hardware design and software application development. The course emphasizes the application of the state-of-the-art software tools to solve problems and present solutions via a range of skills related to multimedia and internet computing tools such as internet, e-mail, WWW, webpage design, computer animation, spread sheet charts/figures, presentations with graphics and animations, etc. The course also covers business, accessibility, and relevant security issues in the use of computers and Internet.
- COMP 1021Introduction to Computer Science3 Credit(s)Exclusion(s)COMP 1022P, COMP 1022Q, COMP 2011DescriptionThis course introduces students to the world of Computer Science. Students will experience a range of fun and interesting areas from the world of computing, such as game programming, web programming, user interface design and computer graphics. These will be explored largely by programming in the Python language.
- COMP 1022PIntroduction to Computing with Java3 Credit(s)Exclusion(s)COMP 1021, COMP 1022Q, COMP 2011, ISOM 3320Mode of Delivery[ONL] Pure online delivery
[BLD] Blended learningDescriptionThis course is designed to equip students with the fundamental concepts of programming elements and data abstraction using Java. Students will learn how to write procedural programs using variables, arrays, control statements, loops, recursion, data abstraction and objects using an integrated development environment. - COMP 1022QIntroduction to Computing with Excel VBA3 Credit(s)Exclusion(s)COMP 1021, COMP 1022P, COMP 2011, ISOM 3230DescriptionThis course is designed to equip students with the fundamental concepts of programming using the VBA programming language, within the context of the Microsoft Excel program. Students will first learn how to use Excel to analyze and present data, and will then learn how to use VBA code to build powerful programs.
- COMP 1029AIntroduction to Mobile Application Development Using Android1 Credit(s)Previous Course Code(s)COMP 4901CPrerequisite(s)COMP 1021 OR COMP 1022P OR COMP1022QDescriptionThis course provides a basic introduction to mobile application development using the Android platform. It is intended for students who have some prior programming experience, but wish to learn the basics of mobile application development. The course will introduce them to the Android SDK and development environment, Android application components: Activities and their lifecycle, UI design, Multimedia, and 2D graphics support in Android. Students explore these concepts through self-learning course materials and guided laboratory exercises. Graded P or F.
- COMP 1029CC Programming Bridging Course1 Credit(s)Prerequisite(s)COMP 1021 OR COMP 1022P OR COMP 1022Q OR ISOM 3230 OR ISOM 3320Exclusion(s)COMP 2011DescriptionThis course introduces the C programming language. It is intended for students who already have some experience in computer programming but wish to learn how to apply those programming skills to the C language. The course covers basic programming topics, such as variables, control, loops, and functions, to more advanced topics. Students explore these by self-learning of course materials together with guided programming exercises. Students without the prerequisites but possess relevant programming knowledge may seek instructor's approval for enrolling in the course. Graded P or F.
- COMP 1029JJava Programming Bridging Course1 Credit(s)Prerequisite(s)COMP 1021 OR COMP 1022Q OR ISOM 3230Exclusion(s)COMP 1022P, COMP 3021, ISOM 3320DescriptionThis course introduces the Java programming language. It is intended for students who already have some experience in computer programming but wish to learn how to apply those programming skills to the Java language. The course covers basic programming topics such as variables, control statements, loops, functions, and object-oriented programming concepts. Students explore these by self-learning of course materials together with guided programming exercises. Students without the prerequisites but possess relevant programming knowledge may seek instructor's approval for enrolling in the course. Graded P or F.
- COMP 1029PPython Programming Bridging Course1 Credit(s)Prerequisite(s)COMP 1022P OR COMP 1022Q OR ISOM 3230 OR ISOM 3320Exclusion(s)COMP 1021DescriptionThis course introduces the Python programming language. It is intended for students who already have some experience in computer programming but wish to learn how to apply those programming skills to the Python language. The course covers basic programming topics, such as variables, functions and loops, to more advanced topics. Students explore these by self-learning of course materials together with guided programming exercises. Students without the prerequisites but possess relevant programming knowledge may seek instructor's approval for enrolling in the course. Graded P or F.
- COMP 1029VExcel VBA Programming Bridging Course1 Credit(s)Prerequisite(s)COMP 1021 OR COMP 1022P OR ISOM 3320Exclusion(s)COMP 1022Q, ISOM 3230DescriptionThis course introduces the VBA programming language, in the context of Microsoft Excel. It is intended for students who already have some experience in computer programming but wish to learn how to apply those programming skills to VBA, within Excel. The course covers basic programming topics, such as variables, functions and loops, to more advanced topics. Appropriate features of the Excel program are also covered. Students explore these by self-learning of course materials together with guided programming exercises. Students without the prerequisites but possess relevant programming knowledge may seek instructor's approval for enrolling in the course. Graded P or F.
- COMP 1900Academic and Professional Development I0 Credit(s)DescriptionA compulsory one-year course for students of the Department of Computer Science and Engineering under the three-year degree. This course is designed to provide academic advising to students and to develop their communication skills in interacting with technical and non-technical audiences. Graded P or F.
- COMP 1941Great Ideas in Computing3 Credit(s)DescriptionDigital computing technology has brought many sweeping revolutions to our society. This course introduces some great and inspiring ideas in computing in the modern world, and discusses how people use computing tools to create useful solutions for challenging and important problems we are facing. Topics include artificial intelligence, data mining, biometrics, computational complexity, cryptography, efficient search, webpage ranking, network science, computer and society, and computational photography.
- COMP 1942Exploring and Visualizing Data3 Credit(s)Exclusion(s)COMP 4331, ISOM 3360, RMBI 4310DescriptionThis course teaches concepts and tools for exploring and visualizing data. There are a lot of real-life decision-making problems (e.g., business, logistics, economics, marketing, finance, resource management, forecasting and engineering) which can be formulated using some existing data analysis models. Existing computer science tools such as Microsoft Excel can help us to model and solve these problems easily, and to visualize the solutions.
- COMP 1943Creative Sound Design3 Credit(s)DescriptionAn experiential common core course in creative sound design. In the lab assignments, students will create short soundtracks for computer games and short videos with strong emotional characters. The course will introduce techniques in sound and music manipulation and development, including sound effects and simple music composition and arrangement techniques. A strong emphasis on music emotion, where students build each soundtrack based on emotional descriptions such as those given by film directors and computer game designers. No background in music or computer programming required.
- COMP 1991Industrial Experience0 Credit(s)DescriptionFull-time internship training for a period of at least six weeks in an organization or company recognized by the Department for providing qualified internship training relevant to the computer science and engineering profession. Cantonese or other working languages may be used in off-campus trainings and internships, in some situations. For students of the Department of Computer Science and Engineering in their second year of study or above only. Internship coordinator's approval is required for enrollment in the course. Graded P, PP or F.
- COMP 1999Industrial Training0 Credit(s)DescriptionA practical training course in a simulated industrial environment. For students of the Department of Computer Science and Engineering only. Graded P or F.
- COMP 2011Programming with C++4 Credit(s)Prerequisite(s)COMP 1021 OR COMP 1022P OR COMP 1022Q OR ISOM 3230DescriptionThis course covers programming and data structures using C++. In addition to basic programming concepts such as variables and control statements, students will learn about arrays, pointers, dynamic data allocation, linked lists, stacks, queues, binary trees, recursion, and the basics of object oriented programming.
- COMP 2012Object-Oriented Programming and Data Structures4 Credit(s)Prerequisite(s)COMP 2011Exclusion(s)COMP 2012HDescriptionTo learn the fundamental concepts and techniques behind object-oriented programming. They include: abstract data types; creation, initialization, and destruction of objects; class hierarchies; polymorphism, inheritance and dynamic binding; generic programming using templates. To learn the object-oriented view of data structures: linked lists, stacks, queues, binary trees, and algorithms such as searching and hashing.
- COMP 2012HHonors Object-Oriented Programming and Data Structures5 Credit(s)Prerequisite(s)Grade A or above in COMP 1021 / COMP 1022P / COMP 1022Q / ISOM 3230Exclusion(s)COMP 2011, COMP 2012DescriptionThis course is an accelerated and intensive course on concepts and techniques behind object-oriented programming (OOP) and data structures using an OOP language. It covers the major materials of COMP2011 and COMP2012, and its curriculum is designed for students with excellent programming background or substantial programming experience. Topics include: functions; pointers; abstract data types and their class implementation; static and dynamic construction and destruction of objects; data member and member functions; public interface and encapsulation; class hierarchies; polymorphism; inheritance and dynamic binding; standard template library; generic programming using templates; object-oriented view of data structures: linked lists, queues, stacks, trees, and their algorithms such as searching, sorting and hashing.
- COMP 2021Unix and Script Programming3 Credit(s)Prerequisite(s)COMP 1021 OR COMP 1022P OR COMP 1022Q; OR a passing grade in HKALE Computer Studies or HKCEE Computer Studies; OR level 3 or above in HKDSE Information and Communication TechnologyDescriptionUnix utilities and file structure; links and symbolic links; data processing and process control in the Unix shell; Shell programming; regular expressions; script programming in the Unix environment. Laboratory exercises are designed to give hands-on practice with software tools and to increase programmer productivity.
- COMP 2521Mobile Application Development Projects3 Credit(s)Previous Course Code(s)COMP 4901EDescriptionThis course is intended to bring together students from different disciplines to focus on coming up with innovative mobile solutions to address domain-specific problems. This will be a student-led project-based course. Teams of students will focus on developing applications to address the needs of specific application domains. Learning additional technical knowledge will be demand-driven in self-learning mode. Students will be supported by technical advisors, which include a faculty member who is the main instructor, as well as instructional assistant(s) and student helpers with technical knowledge.
- COMP 2611Computer Organization4 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012HExclusion(s)ELEC 2300DescriptionInner workings of modern digital computer systems and tradeoffs at the hardware-software interface. Topics include: instructions set design, memory systems, input-output systems, interrupts and exceptions, pipelining, performance and cost analysis, assembly language programming, and a survey of advanced architectures.
- COMP 2711Discrete Mathematical Tools for Computer Science4 Credit(s)Prerequisite(s)A passing grade in AL Pure Mathematics/AL Applied Mathematics; OR level 3 or above in HKDSE Mathematics Extended Module M1/M2Corequisite(s)(For students without prerequisites) MATH 1012 OR MATH 1013 OR MATH 1014 OR MATH 1020 OR MATH 1023 OR MATH 1024Exclusion(s)COMP 2711H, MATH 2343DescriptionBasic concepts in discrete mathematics needed for the study of computer science: enumeration techniques, basic number theory, logic and proofs, recursion and recurrences, probability theory and graph theory. The approach of this course is specifically computer science application oriented.
- COMP 2711HHonors Discrete Mathematical Tools for Computer Science4 Credit(s)Prerequisite(s)Grade B or above in AL Pure Mathematics/AL Applied Mathematics; OR level 5* or above in HKDSE Mathematics Extended Module M1/M2; OR grade A- or above in MATH 1014; OR grade B+ or above in MATH 1020 / MATH 1024Exclusion(s)COMP 2711, MATH 2343DescriptionDiscrete mathematics needed for the study of computer science: sets, functions; propositional logic, predicate logic, rules of inference, proof techniques; pigeonhole principle, basic and generalized permutations and combinations, binomial coefficients, inclusion-exclusion principle; probability theory, Bayes theorem, expectation, variance, random variables, hashing; cryptography and modular arithmetic, Euclid’s division theorem, multiplicative inverse, divisibility, RSA cryptosystem, Chinese remainder theorem; mathematical induction, strong induction and well-ordering property, recursion, recurrence relations; graph representation, isomorphism, connectivity, Euler paths, Hamilton paths, planarity, graph coloring. Gentle introduction to many discrete mathematical concepts that will appear later in more advanced computer science courses.
- COMP 2900Academic and Professional Development II0 Credit(s)DescriptionContinuation of COMP 1900. A compulsory, one year course for students of the Department of Computer Science and Engineering under the three-year degree. Graded P or F.
- COMP 3021Java Programming3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HExclusion(s)ISOM 3320DescriptionIntroduction to Java programming. Fundamentals include language syntax, object-oriented programming, inheritance, polymorphism, exception handling, multithreading and lambdas. Standard libraries for input/output, graphics programming, built-in data structures. Programming for events, generics and higher-order functions.
- COMP 3031Principles of Programming Languages3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HDescriptionComparative studies of programming languages, programming language concepts and constructs. Non-imperative programming paradigms: object-oriented, functional, logic, concurrent programming. Basic concepts of program translation and interpretation. Storage allocation and run-time organization.
- COMP 3071Honors Competitive Programming2 Credit(s)DescriptionIntensive programming laboratory to equip students with creative problem solving and competitive programming skills. International programming competition-type problems will be used to motivate the study of algorithms, programming, and other topics in computer science. Enrollment in the course requires approval of the course instructor.
- COMP 3111Software Engineering4 Credit(s)Co-list withCOMP 3111HPrerequisite(s)COMP 2012 OR COMP 2012HExclusion(s)COMP 3111H, ISOM 3210, RMBI 4420 (prior to 2016-17)DescriptionMethods and tools for planning, designing, implementing, validating, and maintaining large software systems. Project work to build a software system as a team, using appropriate software engineering tools and techniques.
- COMP 3111HHonors Software Engineering4 Credit(s)Co-list withCOMP 3111Prerequisite(s)Grade A- or above in COMP 2012 / COMP 2012HExclusion(s)COMP 3111, ISOM 3210, RMBI 4420 (prior to 2016-17)DescriptionGeneral methodologies, techniques, and tools for planning, designing, implementing, validating, and maintaining large-scale software systems. Collaborative development environment, automatic static analysis, and testing techniques. Open source project development methodologies and techniques.
- COMP 3211Fundamentals of Artificial Intelligence3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012 OR COMP 2012HExclusion(s)COMP 5211DescriptionFoundations underlying design of intelligent systems. Relations between logical, statistical, cognitive, biological paradigms; basic techniques for heuristic search, theorem proving, knowledge representation, adaptation; applications in vision, language, planning, expert systems.
- COMP 3311Database Management Systems3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012 OR COMP 2012HExclusion(s)COMP 5311, IEDA 3300, ISOM 3260DescriptionPrinciples of database systems; conceptual modeling and data models; logical and physical database design; query languages and query processing; database services including concurrency, crash recovery, security and integrity. Hands-on DBMS experience.
- COMP 3511Operating Systems3 Credit(s)Prerequisite(s)COMP 2611 OR [ELEC 2300 AND (COMP 2011 OR COMP 2012H)]DescriptionPrinciples, purpose and structure of operating systems; processes, threads, and multi-threaded programming; CPU scheduling; synchronization, mutual exclusion; memory management and virtual memory; device management; file systems, security and protection.
- COMP 3632Principles of Cybersecurity3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HDescriptionThis course is an introduction to the principles of cybersecurity. Cybersecurity, also called computer security or IT security, refers to the study of techniques to protect computing systems from attacks that threaten data confidentiality, system integrity and availability. By modeling, analyzing, and evaluating the security of computer systems, students will learn to find weaknesses in software, hardware, networks, data storage systems, mobile applications, and the Internet, and identify current security practices and defenses to protect these systems.
- COMP 3711Design and Analysis of Algorithms3 Credit(s)Prerequisite(s)(COMP 2011 OR COMP 2012 OR COMP 2012H) AND (COMP 2711 OR COMP 2711H OR MATH 2343)Exclusion(s)COMP 3711HDescriptionTechniques for designing algorithms, proving their correctness, and analyzing their running times. Topics covered include: sorting, selection, heaps, balanced search trees, divide-and-conquer, greedy algorithms, dynamic programming, and graph algorithms.
- COMP 3711HHonors Design and Analysis of Algorithms4 Credit(s)Prerequisite(s)(Grade B+ or above in COMP 2011 / COMP 2012 / COMP 2012H) AND (grade A- or above in COMP 2711 / COMP 2711H / MATH 2343)Exclusion(s)COMP 3711DescriptionTechniques for designing algorithms, proving their correctness, and analyzing their running times. Topics covered include: sorting, selection, heaps, balanced search trees, divide-and-conquer, greedy algorithms, dynamic programming, and graph algorithms. The class will also provide an introduction to advanced techniques such as amortized analysis and the design of randomized and approximation algorithms, as well as providing exposure to more advanced algorithmic solutions to optimization problems, e.g. linear programming and network flow.
- COMP 3721Theory of Computation3 Credit(s)Prerequisite(s)(COMP 3711 OR COMP 3711H) AND (MATH 2111 OR MATH 2121 OR MATH 2350)DescriptionThis course is an introduction to the foundation of computation. Topics covered include set theory and countability, formal languages, finite automata and regular languages, pushdown automata and context-free languages, Turing machines, undecidability, P and NP, NP completeness.
- COMP 3900Academic and Professional Development III0 Credit(s)DescriptionContinuation of COMP 2900. A compulsory, one year course for students of the Department of Computer Science and Engineering under the three-year degree. Graded P or F.
- COMP 4021Internet Computing3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HDescriptionTechnologies and standards for World Wide Web (WWW), user interfaces and Browsers, authoring tools, Internet protocols, Internet servers, database connectivity, Robots, Search engines, server-side programming, client-side programming, security and privacy, recent advances.
- COMP 4111Software Engineering Practices3 Credit(s)Prerequisite(s)COMP 3111 OR COMP 3111HDescriptionThis course provides students with the exposure of effective real-world software engineering practices and the underlying concepts via working around a realistic modern software system and applying popular tools and practices in industry. Students will gain experience in collaborative software development as well as the skills required to succeed as software professional. Topics of the course cover advanced software engineering concepts, project setup, code management, testing, defect analysis, quality metrics, and issue management. For students of the Department of Computer Science and Engineering only.
- COMP 4211Machine Learning3 Credit(s)Prerequisite(s)(COMP 2011 OR COMP 2012 OR COMP 2012H) AND (ELEC 2600 OR IEDA 2540 OR MATH 2411)Exclusion(s)COMP 4331, COMP 5212, ISOM 3360DescriptionFundamentals of machine learning. Concept learning. Evaluating hypotheses. Supervised learning, unsupervised learning and reinforcement learning. Bayesian learning. Ensemble Methods. Deep learning.
- COMP 4221Introduction to Natural Language Processing3 Credit(s)Prerequisite(s)ELEC 2600 OR IEDA 2520 OR IEDA 2540 OR MATH 2411 OR MATH 2421 OR MATH 2431Exclusion(s)COMP 5221DescriptionHuman language technology for text and spoken language. Machine learning, syntactic parsing, semantic interpretation, and context-based approaches to machine translation, text mining, and web search.
- COMP 4311Principles of Database Design3 Credit(s)Prerequisite(s)COMP 3311Exclusion(s)ISOM 3260DescriptionData modeling concepts; conceptual, logical and physical design; analyzing, evaluating and improving schemas; schema documentation and maintenance; functional analysis; design tools; schema mappings; database tuning; distributed database design.
- COMP 4321Search Engines for Web and Enterprise Data3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012 OR COMP 2012HDescriptionText retrieval models, vector space model, document ranking, performance evaluation; indexing, pattern matching, relevance feedback, clustering; web search engines, authority-based ranking; enterprise data management, content creation, meta data, taxonomy, ontology; semantic web, digital libraries and knowledge management applications.
- COMP 4331Data Mining3 Credit(s)Prerequisite(s)IEDA 2540 OR ISOM 2500 OR LIFS 3150 OR MATH 2411Exclusion(s)COMP 4211, ISOM 3360DescriptionThis course will provide an introduction to concepts and techniques in the field of data mining. Materials include an introduction to data warehousing and OLAP, data preprocessing and the techniques used to explore the large quantities of data for the discovery of predictive models and knowledge. The course will include techniques such as nearest neighbor, decision tress, neural networks, Bayesian networks and Naive Bayes, rule-based methods, association analysis and clustering, as well as social networks and data mining applications in business and finance applications, and other emerging data mining subareas. Students learn the materials by attending lectures and implementing and applying different data analysis and mining techniques to large datasets throughout the semester.
- COMP 4332Big Data Mining and Management3 Credit(s)Co-list withRMBI 4310Prerequisite(s)COMP 4211 OR COMP 4331 OR ISOM 3360DescriptionThis course will expose students to new and practical issues of real world mining and managing big data. Data mining and management is to effectively support storage, retrieval, and extracting implicit, previously unknown, and potentially useful knowledge from data. This course will place emphasis on two parts. The first part is big data issues such as mining and managing on distributed data, sampling on big data and using some cloud computing techniques on big data. The second part is applications of the techniques learnt on areas such as business intelligence, science and engineering, which aims to uncover facts and patterns in large volumes of data for decision support. This course builds on basic knowledge gained in the introductory data-mining course, and explores how to more effectively mine and manage large volumes of real-world data and to tap into large quantities of data. Working on real world data sets, students will experience all steps of a data-mining and management project, beginning with problem definition and data selection, and continuing through data management, data exploration, data transformation, sampling, portioning, modeling, and assessment.
- COMP 4411Computer Graphics3 Credit(s)Prerequisite(s)COMP 3711 OR COMP 3711HDescriptionDisplay technologies; scan conversion; clipping; affine transformations; homogeneous coordinates and projection; viewing transformations; hidden surface removal; reflectance and shading models; ray tracing; spline curves and surfaces; hierarchical modeling; texture mapping; color models.
- COMP 4421Image Processing3 Credit(s)Prerequisite(s)(COMP 2011 OR COMP 2012 OR COMP 2012H) AND (MATH 2011 OR MATH 2111 OR MATH 2350 OR MATH 2351 OR MATH 2352)Exclusion(s)ELEC 4130, MATH 4336DescriptionIntroduction to image processing. Topics include image processing and analysis in spatial and frequency domains, image restoration and compression, image segmentation and registration, morphological image processing, representation and description, object recognition, related application areas and some other closely related topics. Some sophisticated image processing and analysis tools and state-of-the-art methods may also be introduced subject to the availability of time.
- COMP 4431Multimedia Computing3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HExclusion(s)ELEC 4170DescriptionColor theory; digital audio, image and video fundamentals, representation, and processing; digital multimedia applications and programming.
- COMP 4441Computer Music3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012 OR COMP 2012HDescriptionThis experiential project course will provide hands-on experiences in creating music and soundtracks with a wide range of emotional characteristics for a variety of situations in computer games and videos. The course is structured as if at an LA film school for sound designers, and contrasting in style and content from other UST courses, where the primary focus includes emotional not just technical control. This course will provide a creative outlet for applying problem-solving in a deep and engaging way to music. Whether students have music background or not, this course will provide them a chance to explore music almost like a composer. Students will share their musical creations and learn from one another, and create music that modulates the moods of listeners.
- COMP 4451Game Programming3 Credit(s)Corequisite(s)COMP 4411DescriptionComputer game development touches on many facets of computer science, including computer graphics, artificial intelligence, algorithms, networking, human-computer interaction, music, and sound. This course will cover all of these aspects, with special emphasis on real-time graphics rendering. Students will get hands-on experience on how to design and implement real-world computer games, which will help improve their skills in programming, teamwork, management, and communication.
- COMP 4461Human-Computer Interaction3 Credit(s)Previous Course Code(s)COMP 4901GPrerequisite(s)COMP 2011DescriptionThis course is a broad introduction to Human-Computer Interaction (HCI), with an emphasis on techniques, models, theories, and applications for designing, prototyping, and evaluating current and future interactive systems for human use. HCI is an interesting and important area of study, providing the human perspective to computing. Besides technology and innovation, it also touches on issues like ethics and social responsibilities related to technologies in the real world. Selected topics include multimodal interaction design, usability evaluation, computer-supported cooperative work, assistive technologies, social computing, crowd computing, ubiquitous/mobile computing, virtual/augmented reality and gaming, agents and robots, and HCI applications in various domains such as education, health, urban sustainability, scientific discoveries, etc.
- COMP 4462Data Visualization3 Credit(s)Previous Course Code(s)COMP 4901FPrerequisite(s)COMP 2011DescriptionThis course will introduce visualization techniques for data from everyday life, social media, business, scientific computing, medical imaging, etc. The topics include human visual system and perception, visual design principles, open- source visualization tools and systems, visualization techniques for CT/MRI data, computational fluid dynamics, graphs and networks, time-series data, text and documents, Twitter data, and spatio-temporal data. The labs and the course project will give students hands-on experience to turn their data into beautiful visualizations.
- COMP 4511System and Kernel Programming in Linux3 Credit(s)Prerequisite(s)COMP 3511Corequisite(s)COMP 4621 OR ELEC 4120DescriptionThis course is designed to equip students, who have a particular interest in becoming practitioners, with substantial hands-on experience in solving concrete problems in a computer operating system, via programming, in a laboratory intensive course. Students will notably experiment with many topics in the areas of operating systems and network protocols, such as: boot loaders, shell, process management, system calls, process scheduler, file system, virtual memory, network protocols and packet filtering, system modules and device drivers. For students of the Department of Computer Science and Engineering only.
- COMP 4521Mobile Application Development3 Credit(s)Prerequisite(s)(COMP 2611 OR ELEC 2300) AND COMP 3511DescriptionPrinciples of application development for mobile and embedded devices. Mobile software development environments and software architectures. Features of typical mobile platforms: user-interface and user-experience design, multimedia, 2D and 3D graphics and data storage support, networking, location and mapping services. Design patterns and application frameworks. Mobile back-end support. Web applications. Students need to design and implement a full-fledged mobile application.
- COMP 4611Design and Analysis of Computer Architectures3 Credit(s)Prerequisite(s)COMP 2611 or ELEC 2300DescriptionAnalysis, synthesis and evaluation of different computer architectures. Emphasis on computer design with respect to price/performance and its relation to architectural choices such as pipelining, memory hierarchy, input/output, instruction set design, vector processing, and multiprocessing.
- COMP 4621Computer Communication Networks I3 Credit(s)Prerequisite(s)COMP 3511Exclusion(s)COMP 5621, ELEC 4120, ISOM 3180BackgroundProbability and statisticsDescriptionPrinciples of computer network architectures and communication protocols; the OSI reference model; switching and multiplexing techniques; data link, network, transport and application layers; LAN and medium access protocols; network programming.
- COMP 4631Computer and Communication Security3 Credit(s)Prerequisite(s)COMP 3711 OR COMP 3711HExclusion(s)COMP 5631DescriptionCryptosystems, symmetric-key and public-key cryptography, cryptanalysis, authentication, message digests, digital signatures, and random number generation. Access controls and firewalls. Applications such as certificate authorities, electronic commerce, smartcards, and digital cash.
- COMP 4632Practicing Cybersecurity: Attacks and Counter-measures3 Credit(s)Prerequisite(s)COMP 2012 OR COMP 2012HCorequisite(s)COMP 3511DescriptionThis course equips students with cybersecurity knowledge and current IT practices on security risk management. Through hands-on laboratory sessions, students will understand existing IT security issues, learn how to assess IT security risks, and conduct experiments on ethical hacking. They will practice system attack and defense strategies using security tools, so as to gain practical experience to become a cybersecurity professional. The course covers current security trends, industrial practices on IT security, design requirements for secure web and mobile applications, security assessment, risk analysis and risk management. Knowledge in web programming and database administration is not essential but a plus.
- COMP 4641Social Information Network Analysis and Engineering3 Credit(s)Previous Course Code(s)COMP 4901BPrerequisite(s)(COMP 2011 OR COMP 2012H) AND MATH 2111 AND (ELEC 2600 OR IEDA 2520 OR IEDA 2540 OR MATH 2411 OR MATH 2421 OR MATH 2431)DescriptionThis course is an introduction to social information network analysis and engineering. Students will learn both mathematical and programming knowledge for analyzing the structures and dynamics of typical social information networks (e.g. Facebook, Twitter, and MSN). They will also learn how social metrics can be used to improve computer system design as people are the networks. It will cover topics such as small world phenomenon; contagion, tipping and influence in networks; models of network formation and evolution; the web graph and PageRank; social graphs and community detection; measuring centrality; greedy routing and navigations in networks; introduction to game theory and strategic behavior; social engineering; and principles of computer system design. Students who do not have the prerequisites but with equivalent background may seek approval from the instructor for enrollment in the course.
- COMP 4651Cloud Computing and Big Data Systems3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012HDescriptionBig data systems, including Cloud Computing and parallel data processing frameworks, emerge as enabling technologies in managing and mining the massive amount of data across hundreds or even thousands of commodity servers in datacenters. This course exposes students to both the theory and hands-on experience of this new technology. The course will cover the following topics. (1) Basic concepts of Cloud Computing and production Cloud services; (2) MapReduce - the de facto datacenter-scale programming abstraction - and its open source implementation of Hadoop. (3) Apache Spark - a new generation parallel processing framework - and its infrastructure, programming model, cluster deployment, tuning and debugging, as well as a number of specialized data processing systems built on top of Spark. By walking through a number of hands-on labs and assignments, students are expected to gain first-hand experience programming on real world clusters in production datacenters.
- COMP 4900Academic and Professional Development0 Credit(s)DescriptionThis course is for academic and professional development of students in the programs offered by the Department of Computer Science and Engineering. Activities may include seminars, workshops, advising and sharing sessions, interaction with faculty and teaching staff, and discussion with student peers or alumni. Graded P/PP/F.
- COMP 4901Special Topics in Computer Science1-4 Credit(s)DescriptionSelected topics of current interest to the Department not covered by existing courses. Offerings are announced each semester. May be graded by letter, P/F, or DI/PA/F for different offerings.
- COMP 4911IT Entrepreneurship3 Credit(s)Prerequisite(s)COMP 2011 OR COMP 2012HExclusion(s)ELEC 3710DescriptionBasic elements of starting a new business in information technology; exploiting an "unfair" advantage; preparing a business plan; arranging financial support; accounting and legal requirements; exit strategy. Case studies of successful and failed ventures in Hong Kong and elsewhere.
- COMP 4971Independent Work1-4 Credit(s)DescriptionIndependent studies or projects under the directed guidance of a faculty member on a computer science topic. A written report, presentation, and/or an examination are required. Enrollment in the course requires prior approval of the course instructor, and credits assigned depend on the workload. May be repeated for credits.
- COMP 4981Final Year Project6 Credit(s)Exclusion(s)COMP 4981HDescriptionStudents are expected to complete a project in an area of specialization in Computer Science and Engineering under the guidance of a faculty member. Objectives are to integrate the classroom material from several courses, and to apply them to solve practical problems. Credit load will be spread over the year. For students in the BEng in Computer Science and BEng in Computer Engineering programs under the four-year degree only.
- COMP 4981HFinal Year Thesis6 Credit(s)Exclusion(s)COMP 4981DescriptionStudents are expected to conduct research under the supervision of a faculty member, summarize their work in an individual thesis and make a defense at the end. Credit load will be spread over the year. For students in the BEng in Computer Science and BEng in Computer Engineering programs under the four-year degree only. Instructor's approval is required for enrollment in the course.
- COMP 4982Final Year Project7 Credit(s)Exclusion(s)COMP 4982HDescriptionStudents are expected to complete a project in an area of specialization in Computer Science under the guidance of a faculty member. Objectives are to integrate the classroom material from several courses, and to apply them to solve practical problems. Credit load will be spread over the year.
- COMP 4982HFinal Year Thesis (Honors Study Track)7 Credit(s)Exclusion(s)COMP 4982DescriptionStudents are expected to conduct research work under the supervision of a faculty member, summarize their work in an individual thesis and make a presentation at the end. Enrollment in the course requires approval of the course instructor. Credit load will be spread over the year.
- COMP 4991Computer Engineering Final Year Project8 Credit(s)DescriptionEach Computer Engineering student is required to complete a final year project before graduation. The project is conducted under the supervision of faculty members of the Department of Computer Science and Engineering and/or Department of Electronic and Computer Engineering. Credit load will be spread over 3 terms.
- COMP 4992Computer Engineering Final Year Thesis8 Credit(s)DescriptionOnly for honors students of the BEng Computer Engineering program. They are expected to conduct research/independent work under the supervision of faculty members of the Department of Computer Science and Engineering and/or Department of Electronic and Computer Engineering, summarize their work in an individual thesis and make a presentation at the end of the sequence. Credit load will be spread over 3 terms.