Prerequisites
Compilers: The coursework component of Software Reliability
will involve building a program processing tool that works at the
level of a program's syntax tree. If you have not previously taken a
course on compilers (such as the Imperial Compilers
course) that involved manipulating program syntax trees then you may
find this coursework particularly challenging.
Logic: The course will make frequent use of fundamental
concepts from first order logic, such as those covered in the Imperial
Logic
and Reasoning
about Programs courses
Strong programming skills: For the coursework component, it
is essential that you are a confident programmer, and being confident
in Java programming will give you a particular advantage.
The papers we will study overlap with the research area of computer systems.
Background from the Operating
Systems course (or equivalent) may be useful in understanding these papers, but is not essential.
Many of the research papers and examples in the lecture notes are
based on C code examples, thus you should have a reasonable grasp of
C.