I am currently teaching the following postgraduate courses at Masdar Institute.

Distributed Computer Systems Engineering (CIS 508)
(Embedded, Networked and Cloud Computing Systems)

Computer systems need to work together. But figuring out how computer systems can work together efficiently isn’t easy. This course offers both principles and hands-on experiences for engineering distributed computer systems (ranging from large-scale Internet-wide cloud computing to portable embedded systems in a car). This course is designed with a dozen of practical and creative projects (featuring Arduino embedded systems, Android mobile systems, Amazon Web Services).

Advanced Topics in Algorithms (CIS 617)
(Approximation, Online and Randomized Algorithms)

Making sub-optimal or random choices, an apparently silly idea, can have unexpectedly drastic improvement in the efficiency, complexity and other desirable properties of algorithms for diverse problems. In this course, we embark on an amazing journey to explore the power of using approximate, incomplete, or probabilistic knowledge in algorithmic design, and the elegant theories that explain such power.

Sustainability and Computing (CIS 618)
(Smart Grids, Smart Buildings, Env. Sensing, Energy Efficient Computations)

While computation has revolutionized the information era, a bigger challenge lies ahead – how do we harness the power of computation to address the pressing issues of sustainability? In this course, we explore the state-of-the-art work in sustainable computing and novel uses of computation to address sustainability challenges, as well as enjoying hands-on experiences such as building a smart plug and intelligent building sensor systems.

Previously, I co-lectured Computer Systems Modelling at University of Cambridge.