Introduction to Blockchain, Cryptocurrencies and Smart Contracts

Undergraduate Course at HKUST CSE - Course Code: COMP 4901W

First Offering: Spring Semester 2021-22

Number of Students: 149 (125 for credit) - Most popular CSE elective course

Average Rating by the Students: 4.84/5.0 for the course and 4.90/5.0 for the instructor - Highest student ratings among all CSE courses at HKUST

This course was taught online and is available as a youtube playlist.

Next offering: Spring Semester 2022-23

Covered topics:

  • Hash Functions and Public-key Cryptography

  • The Double-spending Problem

  • Bitcoin and Proof-of-Work (PoW)

  • Proof-of-stake and other alternatives to PoW

  • Programmable Blockchains

  • Introduction to Ethereum and Solidity

  • Implementing Smart Contracts

  • Commitment Schemes

  • Auctions and Escrows

  • Re-entrancy and Out-of-gas Vulnerabilities

  • Incentivization Bugs

Advanced Algorithms

Postgraduate Course at HKUST CSE - Course Code: COMP 5711

First offering: Fall Semester 2022-23

Topics in Programming Languages: Semantics and Verification

Postgraduate Course at HKUST CSE - Course Code: COMP 6613B

First Offering: Spring Semester 2020-21

Number of Students: 16

Average Rating by the Students: 4.71/5.0 for the course and 4.71/5.0 for the instructor

This course was taught online and is available as a youtube playlist.

Covered topics:

  • Operational, Denotational and Axiomatic Semantics

  • Infinite-duration Two-player Games on Graphs (with Omega-regular objectives)

  • Automata on Infinite Words

  • Linear Temporal Logic

  • Termination Analysis

Research Courses

I often provide research and self-study courses to particularly talented students in theoretical computer science. If you are a UG/PG student at HKUST and are interested in such courses, please write an email to me. I have offered the following titles in the past:

  1. Axiomatic Probability Theory (UG, COMP 4901F)

  2. Parameterized Algorithms (UG, COMP 4971A)

  3. Martingale Theory (PG, COMP 6931A)

  4. Parameterized Algorithms and Complexity (PG, COMP 6931A)

  5. Computability and Contractability on the Blockchain (PG, COMP 6931A)

  6. Parameterized Algorithms in Computational Algebraic Geometry (COMP4981H)

  7. Parameterized Algorithms in Static Program Analysis (UROP)

  8. Optimization Problems in Blockchain Ecosystems (UROP)

See my CV for more info about my past teaching experience.