Week of 7-11 October Introduction and Basic Concepts
Fuzzing
Mon, 7 October, 16:00 Discussion
Fri, 11 October, 14:00 Coursework: Fuzzing project released
Week of 14-18 October Demo: AFL
Compiler Fuzzing and Derived Test Oracles
Wed, 16 October, 10:00 Lecture discussion, Tutorial: Fuzzing
Week of 21-25 October Undefined Behaviour
Unstable Code
Wed, 23 October, 10:00 Lecture discussion, Tutorial: Undefined Behaviour and Unstable Code
Week of 28 October - 1 November Dynamic Symbolic Execution: Introduction
Dynamic Symbolic Execution: Path Explosion
Dynamic Symbolic Execution: Constraint Solving
Dynamic Symbolic Execution: Applications
Mon, 28 Oct, 19:00 Coursework: Fuzzing project due
Tue, 29 Oct, 14:00 Coursework: Symex project released
Wed, 30 October, 9:45 Lecture discussion, Tutorial: Dynamic Symbolic Execution
Week of 4-8 November Memory-based Exploits and Compiler Sanitizers
Wed, 6 November, 10:00 Lecture discussion, Tutorial: Memory-based Exploits and Compiler Sanitizers
Wed, 6 November, 19:00 Coursework: Symex project due
Thu, 7 November, 14:00 Coursework: Student presentation specification released
Fri, 8 November, 14:00 Coursework: Student presentation choices due
Week of 11-15 November Data-flow Analysis
Wed, 13 November, 10:00 Lecture discussion, Tutorial: Data-flow Analysis
Week of 18-22 November Coverage Criteria and Mutation Testing
Mon, 18 November, 19:00 Coursework: Student presentation slides due
Wed, 20 November, 10:00 Coursework: Student Presentation
Lecture discussion, Tutorial: Coverage Criteria and Mutation Testing
Wed, 4 Dec, 10:00 Revision (optional)