Below are all courses I have taken, or am currently taking, at HKUST.
The assigned credit load of the courses are stated to the right of the course codes.
Year 1
Introduction to Computer Science
COMP 1021 (3)
Introduction to Computer Science (COMP 1021) (3)
This 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.
Cultures and Values: Freedom, Justice, and the Good
HUMA 1000E (3)
Cultures and Values: Freedom, Justice, and the Good (HUMA 1000E) (3)
This course focuses on conceptions of the "good life" and justice in relation to questions of human and environmental flourishing. We will consider issues such as the practices and values that are involved in a good life and a just society; whether ethics is universal or particular and what we owe our nations and humanity; the reality of conflict and how conflicts might be resolved or managed; the morality of human nature; environmental and animal ethics; the ethics of war and peace; utilitarian, deontological, virtue and existential ethics. These issues will allow students to reflect upon a range of values in both their personal and public lives involving the nature of goodness, rightness, justice and the common good in modern social-political conditions.
Calculus IB
MATH 1013 (3)
Calculus IB (MATH 1013) (3)
This is an introductory course in one-variable calculus, the first in the Calculus I and II sequence, designed for students that have taken HKDSE Mathematics Extended Module M1/M2. Topics include functions and their limits, continuity, derivatives and rules of differentiation, applications of derivatives, and basic integral calculus.
General Physics I with Calculus
PHYS 1112 (3)
General Physics I with Calculus (PHYS 1112) (3)
PHYS 1111 and PHYS 1112 target students who have learned the most basic knowledge in physics in high school. Students with more advanced physics background should consider taking PHYS 1312. PHYS 1112 employs a calculus-based approach. Students without knowledge of calculus should take PHYS 1111 instead. Key topics include motions and Newton’s Laws, work and energy, conservation of energy and momentum, rotation, rigid body, simple harmonic and damped oscillations, forced oscillations, standing waves and sound waves, kinetic theory and the laws of thermodynamics. For students under the 4-year degree only. Students without the physics prerequisite but have taken PHYS 1001 or equivalent, and/or without the mathematics prerequisite but have taken MATH 1012/ MATH 1013/ MATH 1020/ MATH 1023 or equivalent may seek instructor’s approval for enrolling in the course.
The phrase "PHYS 1001 or equivalent" in the description has been updated to "PHYS 1101 or equivalent" in the academic year of 2022-23.
PHYS 1111: General Physics I
PHYS 1312: Honors General Physics I
MATH 1012: Calculus IA
MATH 1013: Calculus IB
MATH 1020: Accelerated Calculus
MATH 1023: Honors Calculus I
Social Media: Collective Intelligence & Creativity
ISOM 1090 (3)
Social Media: Collective Intelligence & Creativity (ISOM 1090) (3)
This course provides an analysis of the power of social media, such as Facebook, Twitter, blogs, mashups, wikis, etc. It examines how social media can facilitate creativity and collective intelligence, through enhanced information sharing and online collaboration among netizens; ultimately building the social pool of knowledge. It also examines the downside of this participatory culture.
General Chemistry I
CHEM 1020 (3)
General Chemistry I (CHEM 1020) (3)
This course targets at students who have acquired more advanced knowledge in fundamental Chemistry in high school. Key topics include atomic structure and periodicity, bonding theories, chemical energy, and properties of gases, liquids and solids. Other topics such as chemical kinetics, chemical equilibrium and organic molecules will be briefly reviewed.
This course has been renamed to CHEM 1012 - General Chemistry B: Atomic Structure, Molecules, and Bonding Theories in the academic year of 2024-2025.
Discovering Civil and Environmental Engineering
CIVL 1100 (3)
Discovering Civil and Environmental Engineering (CIVL 1100) (3)
A general overview of civil and environmental engineering, infrastructure development and engineering ethics is provided. The course includes both lectures and laboratory sessions, where the laboratory sessions are primarily directed to students who require the development of feasible conceptual solutions for the analysis and design of the basic problems in structural, geotechnical and environmental engineering. For first year engineering students under the four‐year degree curriculum only.
Exploring Multimedia and Internet Computing
COMP 1001 (3)
Exploring Multimedia and Internet Computing (COMP 1001) (3)
This 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, spreadsheet 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.
Technical Communication I
LANG 2030H (3)
Technical Communication I (LANG 2030H) (3)
The course provides students with a broad introduction to English within the discipline of engineering. A central aim of the course is to encourage students to analyze critically the wider social implications of engineering products and processes, through the careful examination of texts (and other media) beyond their own specific engineering field and to communicate effectively by delivering oral presentations and writing reports on topics relevant to all engineers.
Calculus II
MATH 1014 (3)
Calculus II (MATH 1014) (3)
This is an introductory course in one-variable calculus, the second in the MATH 1013 – MATH 1014 sequence. Topics include applications of definite integral, improper integrals, vectors, curves and parametric equations, modeling with differential equations, solving simple differential equations, infinite sequences and series, power series and Taylor series.
C Programming Bridging Course
COMP 1029C (1)
C Programming Bridging Course (COMP 1029C) (1)
This 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.
Java Programming Bridging Course
COMP 1029J (1)
Java Programming Bridging Course (COMP 1029J) (1)
This 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.
Year 2
Programming with C++
COMP 2011 (4)
Programming with C++ (COMP 2011) (4)
This 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.
Introduction to Electro-Robot Design
ELEC 1100 (4)
Introduction to Electro-Robot Design (ELEC 1100) (4)
The course introduces the fundamental knowledge on the design, implementation and evaluation of a robot and its sub-systems. It covers the basic principles of analog and digital circuits as well as robot sensing and control mechanisms. Students have to apply the knowledge and principles learned to design and build a functional robot by the end of the course. Students who have completed ELEC 2200, ELEC 2350, ELEC 2400, ELEC 2420, or ELEC 3310, must obtain instructor's approval to take this course.
ELEC 2200: Digital Circuits and Systems (Removed Course)
ELEC 2350: Introduction to Computer Organization and Design
ELEC 2400: Electronic Circuits
ELEC 2420: Basic Electronics
ELEC 3310: Digital Fundamentals and System Design
A System View of Communications: from Signals to Packets
ELEC 1200 (4)
A System View of Communications: from Signals to Packets (ELEC 1200) (4)
Have you ever wondered what technologies go into your mobile phone or a Wi-Fi hotspot? Through hands on work with a simple but fully functional wireless communication system, you will understand the basic engineering tools used and tradeoffs encountered in the design of these systems. This course is centered on weekly laboratories, each designed to introduce an important concept in the design of these systems. The lab sessions are supported by two one-hour lectures and a tutorial that introduce the concepts for the next laboratory, as well as reviewing and expanding the concepts learned in the previous laboratory.
Introduction to Multivariable Calculus
MATH 2011 (3)
Introduction to Multivariable Calculus (MATH 2011) (3)
Differentiation in several variables, with applications in approximation, maximum and minimum and geometry. Integration in several variables, vector analysis.
General Physics II
PHYS 1114 (3)
General Physics II (PHYS 1114) (3)
This course targets students who have learned the most basic knowledge in physics in high school. Students with more advanced physics background should consider taking PHYS 1314. This course employs a calculus‐based approach. Key topics include Coulomb's law, electric field and potential, Gauss' law, capacitance, circuits, magnetic force and field, Ampere's law, electromagnetic induction, AC circuit, Maxwell's equations, electromagnetic waves, wave optics, interference and diffraction.
PHYS 1314: Honors General Physics II
Excel VBA Programming Bridging Course
COMP 1029V (1)
Excel VBA Programming Bridging Course (COMP 1029V) (1)
This 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.
Technology and Innovation: Social and Business Perspectives
ISOM 1380 (3)
Technology and Innovation: Social and Business Perspectives (ISOM 1380) (3)
This course describes the development of technology and innovation from social and business perspectives. It covers the technology side of innovations, how an invention can be developed into a successful commercial product, the role of innovation in society and how innovations are created from a socioeconomic perspective. It highlights that successful development and adoption of innovative products relies not only on the technology itself but also a complex process that is subject to the impact of cultural, political, economic and managerial factors.
Object-Oriented Programming and Data Structures
COMP 2012 (4)
Object-Oriented Programming and Data Structures (COMP 2012) (4)
To 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.
Discrete Mathematical Tools for Computer Science
COMP 2711 (4)
Discrete Mathematical Tools for Computer Science (COMP 2711) (4)
Basic 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.
Electronic and Information Technology
CORE 1240/ELEC 1010 (3)
Electronic and Information Technology (CORE 1240/ELEC 1010) (3)
This general-education course introduces the basics of electronic and information technology and their applications to daily-life consumer electronics and communication devices. Contents include the representation of signals in the time and frequency domains; digitization of information; coding for data compression and error protection; transmission of signals; cellular mobile phones and wireless communications; and the Internet. It is expected that through studying these technologies and how they address the problems encountered in the information technology area, students will also grasp the skills in solving problems with engineering approach and spirit and appreciate how these technologies impact the society.
Due to a temporary change in the HKUST Common Core system, this course was coded CORE 1240 that semester, which is what is listed in official records.
Electronic Circuits
ELEC 2400 (4)
Electronic Circuits (ELEC 2400) (4)
Fundamental electronic concepts for DC and AC circuits, KVL and KCL, Thevenin and Norton Theroems, linearity and superposition, nodal and mesh analyses, sinusoidal steady state and phasor, transient analysis, transfer functions and Bode plots, op-amps, diodes, MOS transistors and related circuits.
Matrix Algebra and Applications
MATH 2111 (3)
Matrix Algebra and Applications (MATH 2111) (3)
Systems of linear equations; vector spaces; linear transformations; matrix representation of linear transformations; linear operators, eigenvalues and eigenvectors; similarity invariants and canonical forms.
Applied Statistics
MATH 2411 (4)
Applied Statistics (MATH 2411) (4)
A systematic introduction to statistical inference, including the necessary probabilistic background, point and interval estimation, hypothesis testing.
Year 3
Exploring Artificial Intelligence
COMP 2211 (3)
Exploring Artificial Intelligence (COMP 2211) (3)
This course aims to give a gentle introduction to the basic elements of artificial intelligence (AI) through understanding examples from various applications and hands-on experimentation using AI software tools. In addition to covering the technical aspect of AI through such topics as search and problem-solving, knowledge representation, probabilistic reasoning, machine learning, computer vision and image processing, speech and language processing, and robotics, this course will also study the historical perspective, social and ethical implications, as well as potential and limitations of AI.
Computer Organization
COMP 2611 (4)
Computer Organization (COMP 2611) (4)
Inner 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.
Java Programming
COMP 3021 (3)
Java Programming (COMP 3021) (3)
Introduction 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.
Honors Software Engineering
COMP 3111H (4)
Honors Software Engineering (COMP 3111H) (4)
General 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.
Principles of Cybersecurity
COMP 3632 (3)
Principles of Cybersecurity (COMP 3632) (3)
This 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.
This course has been renamed to COMP 4634 - Cybersecurity in the academic year of 2024-2025.
Introduction to Chinese Painting
HUMA 2660 (3)
Introduction to Chinese Painting (HUMA 2660) (3)
A survey of major monuments, schools and theories from the earliest times to the twentieth century, with an introduction to the problems of connoisseurship in Chinese painting.
I did not take any courses in Winter 2024.
Operating Systems
COMP 3511 (3)
Operating Systems (COMP 3511) (3)
Principles, 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.
Design and Analysis of Algorithms
COMP 3711 (3)
Design and Analysis of Algorithms (COMP 3711) (3)
Techniques 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.
Introduction to Natural Language Processing
COMP 4221 (3)
Introduction to Natural Language Processing (COMP 4221) (3)
This course provides an introduction to the tasks, models and algorithms of natural language processing (NLP) including the fundamental NLP tasks and models (such as language model, text classification, word vectors, sequence labelling, etc.), and several typical NLP applications (such as question answering, dialogue systems and machine translation, etc.), and the linguistic structure annotation (such as constituency parsing and dependency parsing). The course also introduces some advanced topics such as pre-trained language models and their prompt tuning and instruct tuning methods to give the students more perspectives of the NLP industry.
The Art of Thinking in the Hong Kong Context
HUMA 1710 (3)
The Art of Thinking in the Hong Kong Context (HUMA 1710) (3)
This course aims to provide a basic introduction to the art of thinking. The focus of this course is on methodology. Students will be equipped with critical tools for the analysis of arguments. Moreover, special attention will be given to the application of such tools to the practical affairs of everyday life.
Metaphors in English and Chinese
HUMA 2010 (3)
Metaphors in English and Chinese (HUMA 2010) (3)
A comprehensive study of metaphors in English and Chinese, not only as a rhetorical device, but also as an essential tool of our ordinary language and thought. The course encompasses a wide range of diverse topics such as literary metaphors, metaphors in everyday language (about time, life, change, quantity, love, anger, etc.), and metaphors in politics, mathematics, physics, artificial intelligence, and cyberspace. The approach is interdisciplinary and comparative, and most topics are to be discussed from a cross-linguistic and cross-cultural perspective. An ordinary reading knowledge of Chinese is required for enrollment.
Language, Power and Identity
HUMA 2032 (3)
Language, Power and Identity (HUMA 2032) (3)
This course aims to stimulate students’ thinking around the complex notion of ‘identity’, challenging classic sociolinguistic and sociological approaches and introducing poststructuralist approaches. The language of individuals and/or institutions will be analysed in depth, with reference to critical theories of society, ideology and discourse. The course also aims to raise awareness of how language is used to create and maintain power through narratives of identity. Case studies will be presented, with a view to deconstructionist analysis on the role of language in producing and reproducing ostensibly stable ‘identities’ along binary lines such as masculine/feminine, Western/Asian and straight/queer. The course also investigates how humans perform other types of social difference and belonging such as ethnicity and social class.
Undergraduate Teaching Opportunities
IDPO 2910 (3)
Undergraduate Teaching Opportunities (IDPO 2910) (3)
This course aims to provide students with real-life, hands-on learning and teaching experience. Students will take part in lesson preparation, actual teaching and reflection session. Training on teaching skills and consultation with faculty will be provided to ensure the quality of students’ teaching.
This course has been recoded to AISC 2910 - Undergraduate Teaching Opportunities in the academic year of 2024-2025.
Computer Engineering Final Year Project in COMP
CPEG 4901 (6)
Computer Engineering Final Year Project in COMP (CPEG 4901) (6)
Each student of the Computer Engineering program is required to complete a final year project before graduation. The student is expected to conduct a project on a topic related to Computer Engineering and/or its application. The project is guided and conducted under the supervision of faculty members from the Department of Computer Science and Engineering. Credit load will be spread over the year. Instructor's approval is required for enrollment in the course. For CPEG students only.
The credit load is spread into 3 parts:
Hence, the credit load of this course is 1 in Summer 2024.
Year 4
Principle of Programming Languages
COMP 3031 (3)
Principle of Programming Languages (COMP 3031) (3)
Comparative 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.
Machine Learning
COMP 4211 (3)
Machine Learning (COMP 4211) (3)
Fundamentals of machine learning. Concept learning. Evaluating hypotheses. Supervised learning, unsupervised learning and reinforcement learning. Bayesian learning. Ensemble Methods. Deep learning.
Cloud Computing and Big Data Systems
COMP 4651 (3)
Cloud Computing and Big Data Systems (COMP 4651) (3)
Big 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.
Computer Engineering Final Year Project in COMP
CPEG 4901 (6)
Computer Engineering Final Year Project in COMP (CPEG 4901) (6)
Each student of the Computer Engineering program is required to complete a final year project before graduation. The student is expected to conduct a project on a topic related to Computer Engineering and/or its application. The project is guided and conducted under the supervision of faculty members from the Department of Computer Science and Engineering. Credit load will be spread over the year. Instructor's approval is required for enrollment in the course. For CPEG students only.
The credit load is spread into 3 parts:
Hence, the credit load of this course is 2 in Fall 2024.
Introduction to Embedded Systems
ELEC 3300 (4)
Introduction to Embedded Systems (ELEC 3300) (4)
This course is designed to teach techniques on how to integrate machine-level software and hardware in ARM-core microcontroller based systems. It makes use of industry-standard techniques and technologies, from which students can interface, design and program microcontroller systems. The task of the course will be to complete five laboratory experiments which address different aspects of hardware/software interfacing, and one large microprocessor/microcontroller based project which should result in the design and implementation of a small working embedded system.
Ethical Theories and Contemporary Issues
HUMA 2921 (3)
Ethical Theories and Contemporary Issues (HUMA 2921) (3)
This course introduces students to the ethical theories of deontology (or the ethics of duty), utilitarianism (or the ethics of consequences), and virtue ethics (or the ethics of character). This is followed by an examination of their application to selected contemporary moral issues. In general, issues relating to the following areas may be considered: the environment, business, information technology, and bioethics. The precise issues discussed may vary from year to year.
These are courses taken that do not bear credits, i.e. 0 credits.
Industrial Experience
CPEG 1971
Industrial Experience (CPEG 1971)
Full-time internship training for a period of at least six weeks in an organization or company recognized by the Program for providing qualified internship training relevant to the computer engineering profession. Separately, students must also complete the 1-day Safety Training module. Cantonese or other working languages may be used in off-campus trainings and internships, in some situations. For students in the BEng in Computer Engineering program under the four-year degree only. Internship coordinator's approval is required for enrollment in the course. Graded P, PP or F.
Spring 2023, Fall 2023, Spring 2024 and Fall 2024
Academic and Professional Development I
CPEG 2930
Academic and Professional Development I (CPEG 2930)
A compulsory, one year course for Computer Engineering students only. This course is intended to offer advice to students on academic and professional matters, and to improve the students' communication skills. This will be achieved through: (1) Small student group meetings with an assigned advisor; (2) Professional and academic seminars, and (3) Social activities. Graded P or F.
Fall 2022 and Spring 2023
Academic and Professional Development II
CPEG 3930
Academic and Professional Development II (CPEG 3930)
Continuation of CPEG 2930. This is a compulsory, one year course for Computer Engineering students only. Graded P or F.
Fall 2023 and Spring 2024
Academic Orientation
ENGG 1010
Academic Orientation (ENGG 1010)
This course is designed specifically for engineering students of the First Year of 4Y curriculum. This year-long course aims at providing an induction to the School of Engineering for the freshmen year. It will cover topics such as learning and time-management skills, purposes of university and engineering education, and planning for personal and professional development. Graded PP, P or F. For Year 1 Engineering students only.
Fall 2021 and Spring 2022
Engineering Seminar Series
ENGG 2010
Engineering Seminar Series (ENGG 2010)
This course is designed for non-freshman students in the School of Engineering to promote the awareness of the role of engineers and the impact of engineering in the society. As a continuation of ENGG 1010, students are required to attend a few seminars from a series of seminars offered by the school each year. The seminars cover areas including the ethical and environmental responsibilities as an engineer, the importance and the considerations of safety and health related issues in engineering designs and solutions, and in general the impact of engineering to the society. This course helps to provide the needed components for meeting the accreditation requirement and also helps to broaden the students' horizon in different engineering disciplines. For SENG students not in their first year of study only. Graded P or F. May be graded PP.
Fall 2022
Healthy Lifestyle
HLTH 1010
Healthy Lifestyle (HLTH 1010)
A compulsory, one-year course for all undergraduates to learn how to maintain a well-balanced and healthy lifestyle that will help them to manage their lives, learning, transitions and holistic development. Students will complete at least 45 hours of activities including physical and wellness assessments, sports skill classes, organized sports and fitness events, community service, as well as enrichment topics, for example, mental health, wellness, transitions, student life, and personal growth. Students with special personal reasons may seek exemption from the Director of Student Affairs. Graded P or F.
Fall 2021 and Spring 2022