Note: The timetable is provisional. We will likely deviate from it a bit during the course depending how long the material takes to deliver in practice, how much discussion there is during the lectures (in previous years there has been a lot, which was great!), how many groups we will have for the student presentations, etc.

Fri, 18 Jan, 11:00 Introduction and basic concepts
Fri, 18 Jan, 12:00 Fuzzing
Fri, 25 Jan, 11:00 Fuzzing
Fri, 25 Jan, 12:00 Compiler fuzzing and Derived test oracles
Mon, 28 Jan, 12:00 Coursework project released and teams due
Fri, 01 Feb, 11:00 Compiler sanitizers / Tutorial
Fri, 01 Feb, 12:00 Q&A for coursework (optional)
Fri, 08 Feb, 11:00 No lecture
Fri, 08 Feb, 12:00 Undefined behaviour
Fri, 15 Feb, 11:00 Unstable code
Fri, 15 Feb, 12:00 Tutorial
Thu, 21 Feb, 23:59 Coursework project due
Fri, 22 Feb, 11:00 Dynamic symbolic execution
Fri, 22 Feb, 12:00 Dynamic symbolic execution
Fri, 01 Mar, 11:00 Program analysis for security
Fri, 01 Mar, 12:00 Tutorial / Catch-up
Fri, 08 Mar, 11:00 Student presentations (part 1)
Fri, 08 Mar, 12:00 Student presentations (part 2)