teaching
I am currently responsible for two courses at Cambridge: first year
(IA) Operating Systems (taken by both CST 50% and 75%
candidates) 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.
Projects
I am always interested in supervising good final year and Masters projects that
relate to my research. Of particular interest are projects that use Mirage,
produce network trace processing tools or visualisations, or relate
to Human-Data Interaction. Please contact me if you have ideas or
proposals related to these topics.
Among the past projects I have supervised are:
2015/16
- 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.
- Gabriela Sklencarova. Functional Network Stacks with MirageOS and Irmin.
- Daniel Spencer. Secure Auditable Logging with Dog.
Past
While at the University of Nottingham I taught
on the following modules:
- G52GRP Software Engineering Group Projects
- G53ID* Undergraduate Final Year Projects
- G54ACC Advanced Computer Communications (convened)
- G54GRP Horizon DTC Group Project
- G54CCS Connected Computing at Scale (convened)
- G64P* MSc Projects (IT, MIT, HCI)
Links
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
- Twenty terrible reasons for lecturing
- On the cruelty of really teaching computing science
- A Tour through the Visualization Zoo
- 6.006: Introduction to Algorithms (MIT)
- An entrance exam, MIT, 1869
- Mathematics, the most misunderstood subject. Quite relevant to computer science (and probably other similarly “academic” subjects too).
- A Mathematician’s Apology, G.H. Hardy
- How to Write More Clearly, Think More Clearly, and Learn Complex Material More Easily
- Seven selected Information Visualization papers
- Colo(u)r wheels and from that, for more detail Light and the eye
- The Euler Archive
- How To Criticize Computer Scientists
- From NAND to Tetris
- Knuth’s Computer Musings
- 24/192 music downloads
- Natural Language Processing for the Working Programmer
- Security Engineering, Ross Anderson
- Hacking the Xbox, Andrew “bunnie” Huang
- Formal Methods, Andrew Butterfield, TCD
- Denotational Semantics: A Methodology for Language Development, David Schmidt, Kansas State University (book)
Tutorials
Python
JavaScript
Functional Programming
Objective-C
Probability and Statisics
Machine Learning
Graph Theory
Calculus
Networking
Operating Systems
Hardware
Databases