Lectures

APL lectures run 1510–1600 on Tuesdays and Fridays throughout Semester 1, in alternating venues.

When Where
1510–1600 Tuesday Drummond Library
Room G.10, Geosciences
1510–1600 Friday Medical School Basement Lecture Theatre
Room G.152A, Doorway 6

To participate in the course you must attend all the lectures. If for any reason you miss one then please email the lecturer on that day.

Lecture Log

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

Week 1
20 September Lecture 1: What’s so Important About Language?
23 September Lecture 2: Terms and Types
Week 2
27 September Lecture 3: Parameterized Types and Polymorphism
30 September Lecture 4: Higher Polymorphism
Week 3
4 October Lecture 5: Coursework Assignment Topics
7 October Lecture 6: Dependent Types
Week 4
11 October No lecture: Ada Lovelace Day
14 October Lecture 7: Concurrency
Week 5
18 October Lecture 8: Peer Review and Feedback
21 October Lecture 9: Concurrency Abstractions
Week 6
25 October Lecture 10: Other Approaches to Concurrency
28 October No lecture
Week 7
1 November Lecture 11: Cautionary Tales in Concurrency
4 November Lecture 12: Specification and Verification
Week 8
8 November Lecture 13: Practical Tools for Java Correctness
11 November Lecture 14: Certifying Correctness
Week 9
15 November Lecture 15: The Rust Programming Language
18 November Lecture 16: Guest Lecture by Andrew Kennedy
Week 10
22 November Lecture 17: Traits and References in Rust
25 November Lecture 18: Concurrency and More in Rust
Week 11
29 November Lecture 19: Guest Lecture by Maria Gorinova
2 December Lecture 20: Exam Review (Questions)