Coursework

The coursework consists of three parts: (1) build a fuzzer (randomized tester) to find bugs in SAT solvers; (2) experiment with and modify a symbolic execution engine; (3) give a presentation about a software reliability tool of your choice. The coursework is worth 30% of the marks for the module.

To reduce your workload, you will undertake the coursework in groups of two or three students.

Full coursework specifications will be provided on CATe.

Examination

The final exam will be based on the lecture material, concepts from the practical coursework, and the required reading (see the Reading List). The guest lecture will is examinable.

You will be required to answer two questions (out of two, so no choice).

The breakdown of percentage marks for the course is as follows:

  • Coursework: 30%
    • Fuzzing project: 45% of coursework (13.5% overall)
    • Symbolic execution project: 35% of coursework (10.5% overall)
    • Presentation: 20% of coursework (6% overall)
  • Final exam: 70%