I mainly enjoy teaching courses related to Programming Languages, though in general I like the challenge of finding a simple way to explain complex concepts in Computer Science.

In 2013 I was delighted to receive the award for Best Teaching for Undergraduates at the Imperial College Union Student Academic Choice Awards, and in 2014 I was shortlisted for the award for Best Innovation.

Current teaching

Research schools:

At Oxford University:

  • Software Verification (Hilary Term 2011). Gave two lectures on Predicate Abstraction and Counterexample Guided Abstraction Refinements.
  • Software Verification (Hilary Term 2010). Designed and oversaw practicals on Bounded Model Checking and Counter Example Guided Abstraction Refinement.
  • Compilers (Hilary Term 2010). Gave guest lectures on Type Checking and Runtime Environments. Also took classes and helped with practicals.
  • Object-Oriented Programming (Michaelmas Term 2009). Gave guest lectures on Object Identity and Memory Management. Took students from Merton College and Corpus-Christi College for tutorial sessions.

Guest lectures while at Codeplay Software Ltd:

  • Advances in Programming Languages course at University of Edinburgh (2008 and 2009). Gave guest lectures: The Cell Processor: a Compiler Challenge (2008) and Method Duplication: Automating Code Migration to Multicore (2009).
  • Compilers course at University of Glasgow (2008 and 2009). Gave same guest lectures as for the Edinburgh course above.

At University of Glasgow:

  • Data Structures and Algorithms (Autumn 2006). Gave guest lectures on Abstract Data Types and Binary Trees.
  • CS1P Introductory Programming (2002-2006). Tutored groups of 1st year undergraduates.
  • CS1Q Introduction to HCI, Databases and Systems (2002-2006), Tutored groups of 1st year undergraduates.