Probabilistic Artificial Intelligence
Written in collaboration with Andreas Krause from ETH Zurich. Bayesian learning (Gaussian processes & Bayesian deep learning), approximate inference (variational & MCMC), active learning, Bayesian optimization, Markov decision processes, and reinforcement learning.
Discrete Probability Theory
Undergraduate revision course covering discrete and continuous probability spaces, random variables, inductive statistics, and Markov chains.
Functional Programming and Verification
Undergraduate revision course covering basics of Haskell, proofs of correctness by structural/computation induction and abstraction functions, I/O and monads, evaluation order.
Theory of Computation
Languages and grammars, regular and context-free languages, decidability and computability, P and NP.