Here is a brief overview of my undergraduate and postgraduate teaching. For short lecture courses on research topics given at international schools, see my talks page.
I lecture the unit Foundations of Computation to second year and MSc students. This introduces a number of fundamental topics in theoretical computer science, including automata, formal languages, computability theory and complexity. I am happy to share my notes and lecture material on request. In 2023/24 I am also lecturing Data Structures and Algorithms.
I often supervise research projects for both final year undergraduates and masters students, typically on one or more of the following topics:
In 2019 I created and lectured a new course:
I was also assistant for the following modules: