COMP8301 Advanced topics in computer systems [Section 1A, 2025]
COMP7906 Introduction to cyber security [Section 2C, 2025]
COMP7906 Introduction to cyber security [Section 1B, 2025]
COMP7906 Introduction to cyber security [Section 1A, 2025]
COMP7904 Information security: attacks and defense [Section 2A, 2025]
COMP7901 Legal protection of digital property [Section 2A, 2025]
COMP7802 Introduction to financial computing [Section 1C, 2025]
COMP7802 Introduction to financial computing [Section 1B, 2025]
COMP7802 Introduction to financial computing [Section 1A, 2025]
COMP3278 Introduction to database management systems [Section 1A, 2025]
COMP3270 Introduction to artificial intelligence [Section 1A, 2025]
COMP3259 Principles of programming languages [Section 2A, 2025]
Welcome to Principles of Programming Languages!
This course covers central concepts in programming language theory, design, implementation, and paradigms.The course will have a practical focus, encouraging students to implement a progressively more sophisticated programming language illustrating various concepts and ideas from functional, imperative and object-oriented programming. These concepts include, for example, static scoping, closures, inheritance, mutable state, and type systems. All such features are widely used by many existing programming languages.
The Haskell programming language, which is a functional language, will be used in for the coursework and will serve as a prime example of a modern, functional language. Haskell is an obvious choice for this class because of its excellent support for declaring the abstract syntax of a programming language and writing various analyses over that syntax.
COMP3258 Functional programming [Section 2A, 2025]
The course teaches the basics of functional programming using the language Haskell. The main goal is to introduce students to fundamental programming concepts such as recursion, abstraction, lambda expressions and higher-order functions and data types. The course will also study the mathematical reasoning involved in the design of functional programs and techniques for proving the properties of functions so defined. With the adoption of lambda expressions, recent versions of Java, C++ or C#, functional programming and related programming techniques are becoming increasingly more relevant even for programmers of languages that are not traditionally viewed as functional. This course is important to introduce students to such techniques.
COMP3252 Algorithm design and analysis [Section 2A, 2025]
COMP3251 Algorithm design [Section 2A, 2025]
Instructor
- Zhiyi Huang
- Consultation Hour: Monday, 16:00 - 17:00, CYC 423 (or grab me after the lecture)
Time and Venue
- Monday, 15:00 - 15:50
- Thursday, 11:00 - 12:50
Tutors
- YANG, Peilin (peilinyang@connect.hku.hk)
- ZHOU, Zihan (andrewchew@connect.hku.hk)
- LOU, Qinpei (qinpeilou@connect.hku.hk)
- (TBD) at CYC LG101
COMP3230 Principles of operating systems [Section 1B, 2025]
To present the fundamentals of operating systems, to study the detailed operation and principles behind the design of various components of an operating system.
The course involves a certain amount of Unix-based C programming. Students who are not already familiar with C Language should learn it quickly.
