I am currently responsible for two courses at Cambridge: first year (IA) Operating Systems and the M.Phil in Advanced Computer Science and Part III course, R01 Advanced Topics in Computer Systems. The former is a standard lecture course, the latter is a reading-based course where students read, review and present assigned papers.
I am happy to consider supervising final year and Masters’ projects related to my research interests. Current topics include edge computing, open banking data analysis and visualisation, operating systems for personal computers, as well as anything related to Human-Data Interaction.
Past projects I have supervised (final year undergraduate unless otherwise indicated) include:
- William Pan. Augmenting DeepDish with Face Blur.
- Anik Roy. A probabilistic programming language in OCaml.
- Aaron Hutton. Self-Archiving Website on MirageOS.
- Harri Bell-Thomas. Peer-to-Peer Social Networking atop Kademlia Distributed Hash Tables.
- Andrew Jeffery. XMPP Server on MirageOS.
- Chris Jensen. Diffing the DAG: Finding the minimum edit script of an acyclic graph.
- Huiyao Zheng. A ZeroMQ implementation for MirageOS.
- Tom Strudwick. Developing an application for data analysis of complex insect behaviours.
- Al Amjad Tawfiq Isstaif (M.Phil). Request Reconstruction in MirageOS Unikernels.
- Chris Jones. Achieving Distributed Consensus with Paxos.
- Sonny Sun. A Tor relay on MirageOS.
- Harry Graham. Deep Learning Techniques for Credit Card Fraud Detection.
- Junwei Yuan. BGPv4 on MirageOS.
- Tudor Tiplea (Part III). Supporting Browser-based Machine Learning: Distributed Data Processing at the Network’s Edge.
- Royson Lee (M.Phil). Adaptable Asynchrony: Improving Adaptive Stochastic Optimisation in Deep Learning.
- Joel Jakubovic. An XMPP Server Implementation in OCaml.
- Marius Latinis. Bus Arrival Time Prediction.
- Hrafn Erikson (M.Phil). Request modelling in Mirage OS unikernels with Raven.
- Ben Catterall (Part III). Probabilistic Synchronous Parallel: a barrier control method for distributed machine learning.
- Gabriela Sklencarova. Functional Network Stacks with MirageOS and Irmin.
- Rupert Horlick. Encrypted Keyword Search Using Path ORAM on MirageOS.
- Daniel Karaj. Unikernels for Bus Data Serving.
- Alex Rakowski. TCP Stack Spoofing with MirageOS.
- Sean Saville. Simulating Scheduling Algorithms.
- Daniel Spencer. Secure Auditable Logging with Dog.
- Ke Chen. Topology aware TCP bottleneck detection.
- Samuel Williams. Erlang on Xen.
While at the University of Nottingham I taught on the following modules:
G52GRP
, Software Engineering Group ProjectsG53ID*
, Undergraduate Final Year ProjectsG54ACC
, Advanced Computer Communications (convened)G54GRP
, Horizon DTC Group ProjectG54CCS
, Connected Computing at Scale (convened)G64P*
, MSc Projects (IT, MIT, HCI)
Finally, a collection of links to material that I have found interesting, useful or amusing, related (however tangentially) to Computer Science. Please note that these take you away from my pages and so I am not responsible for their content. If you happen to spot that any are broken, please do let me know.
- misc
- coding
- maths
- systems