 Programming Language
Principles, Design, and
Implementation, the
University of Birmingham,
20202022.
 Mathematical and Logical
foundations of Computer
Science, the University of
Birmingham,
20202022.

ComputerAided
Verification, the
University of Birmingham,
20192020.
Guest Lectures and Tutorials

MICS 3.25, Fault and Intrusion Tolerance, Luxembourg University, 2016.
Taught by Prof. Paulo Verissimo.

MICS 2.6, Foundations of Computing, Luxembourg University, 2016.
Taught by Prof. Gabriele Lenzini.

CS 6110, Advanced Programming Languages, Cornell, 2015.
Taught by Prof. Robert L. Constable.

CS 5860, Introduction to Formal Methods, Cornell, 2014.
Taught by Prof. Robert L. Constable.

CS 3110, Data Structures and Functional Programming, Cornell, 2013.
Taught by Prof. Robert L. Constable.

CS 5860, Introduction to Formal Methods, Cornell, 2011.
Taught by Prof. Robert L. Constable.

Foundations 2 (HeriotWatt, 20092010 second semester). Taught by
Doctor J. B. Wells.

Foundations 1 (HeriotWatt, 20092010 first semester). Taught by
Doctor Patrícia Vargas
and
Doctor J. B. Wells.

Foundations 2 (HeriotWatt, 20082009 second semester). Taught by
Doctor J. B. Wells.

Theory Bridge (HeriotWatt, 20072008 first term): Logic (Proposition, Predicate, Boolean
interpretation), Z specification, Lambdacalculus,
computability. Taught by Professor Fairouz Kamareddine.

Logic and Proof (HeriotWatt, 20072008 first term): Logic
(Proposition, Predicate, Boolean interpretation,
Quantification). Taught by Professor Fairouz Kamareddine.