Coursework

The coursework consists of three parts:

  1. Build a fuzzer (randomized tester) to find bugs in SAT solvers written by students in previous years;

  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).

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

The guest lecture (if any) will be examinable.

Overall mark

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%