LG.11 David Hume Tower


Gaddum Lecture Theatre
1 George Square

APL lectures run 1610–1700 on Mondays and Thursdays throughout Semester 1, in alternating venues. To participate in the course you need to attend the lectures and carry out the homework set between them. If for any reason you are unable to be at a lecture then please email me on that day.

Lecture Log

Lecture slides will generally appear here as PDF before the lecture itself; after the lecture I’ll post a blog entry with video and references, then link to that instead.

  1. What’s So Important About Language?

  2. Terms and Types

  3. Parameterized Types and Polymorphism

  4. Coursework Assignment Topics

  5. Higher Polymorphism

  6. Higher Types

  7. Dependent Types

  8. Concurrency

  9. Concurrency Abstractions

  10. Some Other Programming-Language Approaches to Concurrency

  11. Cautionary Tales in Concurrency

  12. Specification and Verification

  13. Practical Tools for Java Correctness

  14. Separation Logic

  15. Certifying Correctness

  16. The Rust Programming Language

  17. Traits and References in Rust

  18. Concurrency and More in Rust

  19. Guest Lecture: Maria Gorinova on Probabilistic Programming

  20. Exam Preparation