All Courses Taken at HKUST

Below are all courses I have taken, or am currently taking, at HKUST.

Credit-Bearing Courses

The assigned credit load of the courses are stated to the right of the course codes.

  • Year 1

  • Fall 2021
  • Introduction to Computer Science (COMP 1021) (3)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note 1:

    The phrase "PHYS 1001 or equivalent" in the description has been updated to "PHYS 1101 or equivalent" in the academic year of 2022-23.

    Note 2:

    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

  • Winter 2022
  • Social Media: Collective Intelligence & Creativity (ISOM 1090) (3)

    Course description:

    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.

  • Spring 2022
  • General Chemistry I (CHEM 1020) (3)

    Course description:

    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.

    Note:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

  • Summer 2022
  • C Programming Bridging Course (COMP 1029C) (1)

    Course description:

    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)

    Course description:

    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

  • Fall 2022
  • Programming with C++ (COMP 2011) (4)

    Course description:

    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)

    Course description:

    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.

    Note:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note:

    PHYS 1314: Honors General Physics II

  • Winter 2023
  • Excel VBA Programming Bridging Course (COMP 1029V) (1)

    Course description:

    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)

    Course description:

    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.

  • Spring 2023
  • Object-Oriented Programming and Data Structures (COMP 2012) (4)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note:

    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)

    Course description:

    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)

    Course description:

    Systems of linear equations; vector spaces; linear transformations; matrix representation of linear transformations; linear operators, eigenvalues and eigenvectors; similarity invariants and canonical forms.

  • Summer 2023
  • Applied Statistics (MATH 2411) (4)

    Course description:

    A systematic introduction to statistical inference, including the necessary probabilistic background, point and interval estimation, hypothesis testing.

  • Year 3

  • Fall 2023
  • Exploring Artificial Intelligence (COMP 2211) (3)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note:

    This course has been renamed to COMP 4634 - Cybersecurity in the academic year of 2024-2025.

  • Introduction to Chinese Painting (HUMA 2660) (3)

    Course description:

    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.

  • Winter 2024
  • I did not take any courses in Winter 2024.

  • Spring 2024
  • Operating Systems (COMP 3511) (3)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note:

    This course has been recoded to AISC 2910 - Undergraduate Teaching Opportunities in the academic year of 2024-2025.

  • Summer 2024
  • Computer Engineering Final Year Project in COMP (CPEG 4901) (6)

    Course description:

    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.

    Note:

    The credit load is spread into 3 parts:

    • 1 credit in the Summer semester before the final year
    • 2 credits in the Fall semester of the final year
    • 3 credits in the Spring semester of the final year

    Hence, the credit load of this course is 1 in Summer 2024.

  • Year 4

  • Fall 2024
  • Principle of Programming Languages (COMP 3031) (3)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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)

    Course description:

    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.

    Note:

    The credit load is spread into 3 parts:

    • 1 credit in the Summer semester before the final year
    • 2 credits in the Fall semester of the final year
    • 3 credits in the Spring semester of the final year

    Hence, the credit load of this course is 2 in Fall 2024.

  • Introduction to Embedded Systems (ELEC 3300) (4)

    Course description:

    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)

    Course description:

    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.

Other Courses

These are courses taken that do not bear credits, i.e. 0 credits.

  • Industrial Experience (CPEG 1971)

    Course description:

    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.

    Semesters:

    Spring 2023, Fall 2023, Spring 2024 and Fall 2024

  • Academic and Professional Development I (CPEG 2930)

    Course description:

    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.

    Semesters:

    Fall 2022 and Spring 2023

  • Academic and Professional Development II (CPEG 3930)

    Course description:

    Continuation of CPEG 2930. This is a compulsory, one year course for Computer Engineering students only. Graded P or F.

    Semesters:

    Fall 2023 and Spring 2024

  • Academic Orientation (ENGG 1010)

    Course description:

    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.

    Semesters:

    Fall 2021 and Spring 2022

  • Engineering Seminar Series (ENGG 2010)

    Course description:

    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.

    Semester:

    Fall 2022

  • Healthy Lifestyle (HLTH 1010)

    Course description:

    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.

    Semesters:

    Fall 2021 and Spring 2022

sunny