I have been a Fellow at Pembroke College since
2015 and am the Director of Studies for Computer Science there. I have taught
the following courses at the Cambridge Computer Laboratory. I'm also a regular
Part II project checker and have overseen many project ideas.
Foundations of Computer Science
Here are the various repos used to create the interactive teaching environment we use for 1A FoCS. It may be useful to other professors who are using OCaml in their courses.
- https://github.com/avsm/teaching-fcs is a private repo, but ping me if
are teaching and I'll give you access (it has coursework answers in it).
We use a Jupyter notebook, with the course written in Markdown using the
mdx OCaml parser which evaluates
toplevel phrases through the compiler and promotes the output directly
into the markdown.
- We then convert the Markdown into Jupyter format using a
fork of mdx, and then
nbconvert it into LaTeX for the printed notes.
- A JupyterLab installation with a
custom OCaml kernel suffices
for the live setup. Every student gets their own container on the server
and one server is sufficient for a full class of ~125 students.
Ping me if you want to know more, or other people who have worked
on this with me are Jeremy Yallop, David Allsopp and Jon Ludlam, with Jon
being the currently active additional lecturer on the course as of 2024.