After 12 amazing years I left the Department of Computing in 2015.
Formely a First Year Teaching Fellow in the Department of Computing, Imperial College, London
The First Year Noticeboard can be found online.
First Year Tweets (informal communication, behind the scenes updates and ocassionally important reminders) ara available via @DoCFirstYear.
I lectured Introductory Java Programming, and also some one-off lectures on tooling, including Git.
I have some notes on lecture recording in DoC available.
My PhD was supervised by Prof. Susan Eisenbach. Prof. Sophia Drossopoulou also provided secondary supervision.
My research interests have gravitated around Haskell programming, with a theme of Random Test Generation.
My publications are available online, from the ACM and from the dblp.
I am part of the SLURP research group. The calendar for our meetings is available online.
Automatic Crash finder / black box testing for Haskell using the GHC API. Lecturer Cristian Cadar also mentored me on this project.
I undertook a 3 month internship at Microsoft Research, Cambridge, under Simon Peyton Jones. During this time I developed a prototype stack-trace facility for GHC.
I started trying to make a structured editor for an extended lambda calculus. As part of that project, I developed a practically useful zipper-like library/tooling that used interesting GHC features (Type Families, GADTs).
I Used FeatherWeight Java to define a space of programs and act as a type checking oracle. I then generated FJ programs and using them to check a Java compiler agrees with the FJ type checker.
This work was then built upon by a Prize winning student group project.
At the start of my PhD, myself and Matthew Sackman looked at, and prototyped some OpenGL games/hacks using Haskell.
Optional autumn term programming lectures for 1st years during the first term. Topics over the last couple of years have included:
I have previously taught and assisted teaching these optional Spring term lectures for first years. Topics included:
4th Year MEng Project Report. About pluggable, iterative type checking for dynamic programming languages.
3rd Year MEng Group Project Report. Prize-winning project about a user friendly graphical system shell written in Java.
I am the maintainer and co-developer of the current version of the programming language Kenya.
I was awarded the Computing Departmental Graduate Teaching Assistant award in 2010 for the advanced Haskell and Java courses I helped organise. The citation.
Previous website (with various Java applets on it)