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 Algorithms and Complexity to second year and MSc students. This introduces a number of fundamental topics in theoretical computer science, including automata, formal languages, computability theory, complexity, and the formal analysis of algorithms. I am happy to share my notes and lecture material on request.
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: