Start of term is truly crazy around here, so I'll save longer form thoughts for later in the month when things calm down a little.
Most of my focus was on teaching and administration to prepare for the term. I finished the Cambridge 1A Foundations of Computer Science course notes as a Forest, complete with live in-browser OCaml toplevels. These are now on the course webpage and ready for lectures next week. This may well be the last time this course (now about three decades old) runs in its current form, so I'm a little nostalgic heading into delivering it!
1 CST Part II projects this year
There is a traditional crush of emails this week every year since the returning third year CST students all have to find projects and propose them in the first week of term. There's no 'clearing service' coordination here, so I usually get around forty requests for meetings. This year will see some particularly diverse and fun projects; I'm glad to see the spirit of computing exploration is still alive and kicking with our undergrads!
- Anuraag Datta is designing Scour, a language for finding patterns and rule violations in musical scores, supervised by Richard Sharp. This one wins the 'most original' award, as we'll be "debugging Bach"!
- Eden Cheung is building an io_uring IO backend for Lean, taking advantage of the executable nature of code written in Lean4. This is really to explore how we might specify shared memory protocols more mechanically, as I believe they're the future of OS interfaces.
- Arya Golkari is porting sPyTial to OCaml as a programmatic diagramming library for ML-style data structures (including module signatures and functors). I must ping Shriram Krishnamurthi about this to get the latest developments on their end!
- Rohan Wadhawan is writing a compiler from OCaml to GLSL and WGSL shaders, supervised by Patrick Ferris.
- Boris Hall is building an OCaml eDSL and runtime for incremental computation with traceable data types, also supervised by Patrick Ferris.
- Matt Occleshaw is writing an embedded OCaml DSL for OpenStreetMap whose queries can separate well known results from probable ones, also supervised by Patrick Ferris. This is a good example of layering a language over a folksonomy that has somewhat shifting semantics as the users decide where to steer it.
- Ethan Smith is building an omniscient debugger for beginner Python programmers, supervised by Laurie Gale. We break the OCaml monopoly with some micro-Python here!
- Minkyum Kim is building an inverted spatial index for Tessera embedding search, supervised by Sadiq Jaffer. We're aiming for sub-second searches over global embeddings on a single GPU, so there's some optimisation to do here.
- Finley Stirk is measuring and handling GPS uncertainty in GBIF point labels for Tessera, supervised by Michael Dales and Aneesh Naik. GBIF is full of 'elephants in the ocean' due to the GPS uncertainty inherent in any observations, so this will hopefully greatly improve our habitat mapping efforts.
- Soham Shah is continuing work on autoscaling geospatial computation with Python and Yirgacheffe, supervised by Michael Dales, to make it easier for ecologists to run global-scale analyses without becoming systems experts.
Next week is all about responding to the MPhil students and Part IIIs for their (longer form) projects. Fun times!
2 Back to the Cambridge community
We had the annual Discover the Conservation Research Institute event, with a completely packed room of new faces and familiar ones. Absolutely delightful atmosphere all around.

This was then followed by the usual three-minute group pitches by everyone, so I grabbed a couple of candid camera shots.


I also had the pleasure of the matriculation dinner for the Pembroke College undergraduates, welcoming our four new arrivals with the traditional selfie. This was followed by a day of Director of Studies meetings with the full cohort to make sure all their projects and supervisions were in order.

And after that, it was over to the Computer Science department for our faculty meetings, which I am now attending again as sabbatical is over!

3 OCaml's module language
I also snatched a few minutes to jot down my thoughts on why OCaml's module language is a great fit for agentic programming. This is really just an explainer of the interface/implementation split that OCaml has supported for 25+ years, but the post was quite widely read by a new audience who are now using coding assistants and so switching between languages at a rapid pace.
