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.

Mon, 15 Jan, 14:00–16:00 Introduction and Basic Concepts
Wed, 17 Jan, 10:00–12:00 Fuzzing
Thu, 18 Jan, 11:00 Coursework: Fuzzing project released
Fri, 19 Jan, 17:00 Coursework: Teams due
Mon, 22 Jan, 14:00–16:00 Coursework: Fuzzing project presentation
Demo: AFL
Compiler Fuzzing and Derived Test Oracles
Wed, 24 Jan, 10:00–12:00 Compiler Fuzzing and Derived Test Oracles
Tutorial: Fuzzing
Mon, 29 Jan, 14:00–16:00 Undefined Behaviour
Unstable Code
Wed, 31 Jan, 10:00–12:00 Tutorial: Undefined Behaviour and Unstable Code
Dynamic Symbolic Execution: Introduction
Fri, 2 Feb, 19:00 Coursework: Fuzzing project due
Mon, 5 Feb, 14:00–16:00 Dynamic Symbolic Execution: Introduction
Dynamic Symbolic Execution: Path Explosion
Dynamic Symbolic Execution: Constraint Solving
Tue 6 Feb, 11:00 Coursework: Symex project released
Wed, 7 Feb, 10:00–12:00 Coursework: Symex project presentation
Dynamic Symbolic Execution: Constraint Solving
Dynamic Symbolic Execution: Applications
Mon, 12 Feb NO CLASS
Wed, 14 Feb, 10:00–12:00 Tutorial: Dynamic Symbolic Execution
Memory-based Exploits and Compiler Sanitizers
Wed, 14 Feb, 19:00 Coursework: Symex project due
Thu, 15 Feb, 11:00 Coursework: Student presentation specification released
Fri, 16 Feb, 11:00 Coursework: Student presentation choices due
Fri, 16 Feb, 19:00 Coursework: Student presentation assignment released
Mon, 19 Feb, 14:00–16:00 Memory-based Exploits and Compiler Sanitizers
Tutorial: Memory-based Exploits and Compiler Sanitizers
Data-flow Analysis
Wed, 21 Feb, 10:00–12:00 Data-flow Analysis
Tutorial: Data-flow analysis
Mon, 26 Feb, 14:00–16:00 Coverage Criteria and Mutation Testing
Tutorial: Coverage Criteria and Mutation Testing
Mon, 26 Feb, 19:00 Coursework: Student presentation slides due
Wed, 28 Feb, 10:00–12:00 Coursework: Student Presentations
Mon, 4 Mar, 14:00–16:00 Coursework: Student Presentations
Mon, 11 Mar, 14:00–15:00 Revision