Welcome to Spivey's Corner
This Wiki provides course materials and a discussion forum for the lecture courses that I give to Computer Science students in Oxford.
Some pages will contain course material, and I will protect those pages from editing, so that everyone can see the material as I presented it. But each protected page will have an associated discussion page, and you are welcome to add comments there, or to make additions to any of the other pages. To make edits, you will need to create an account for yourself, but anyone with an Oxford email address is welcome to participate, in a way consistent with the code of conduct.
- Digital Systems, a course about low-level programming and digital design.
- Compilers (The Farewell Tour).
- An Oberon-based edition (the only worthwhile one) of a course on Imperative Programming.
- A Scala-based edition of a course on Object-Oriented Programming.
- Notes for a course on Category Theory for Functional Programming.
- A course on Programming Languages based on interpreters written in Haskell.
- A course on elementary design of Digital Hardware.
- A course on Operating Systems.
Also, for convenience,
- Problem sheets for the Prelims course on Probability.
- A separate page has a list of projects that I'd currently like to supervise.
- Another page has some older project ideas. Some of these have been done and the results are publicly available; others don't seem so relevant now as when I first suggested them.
- Faster Coroutine Pipelines, presented at ICFP'17.
- Bringing declarative programming to Life, Computing At School conference, Birmingham, 18th June 2016.
- The Fuzz typechecker for Z.
- The Oxford Oberon-2 compiler.
- Thunder, a portable JIT library.
- A convenient page gives access (for registered users) to recent Oxford exam papers in Computer Science, with links to an archive of older papers.
Pages for tutors
There are pages restricted to tutors that have solutions for problem sheets and past exam papers. Tutors should create an account, then send an e-mail to Mike, who will add them the the tutors group and give them access to the tutors' section of the wiki.