Introduction to complexity theory: problem reductions, P versus NP, undecidability; SAT solving and its applications in computer science; introduction to the formal semantics of programming languages; formal verification of programs; model checking and its applications in hard- and software verification.
The course is organized in four blocks. The course (and thus each block) consists of a lecture and a consolidation part.
The topics of the course are presented during the lectures.
The consolidation part includes two additional classes per block for discussing examples and their solutions. Students receive an exercise sheet for each block. The submissions will be corrected and returned to the students
Three additional classes will be offered to recall some basic principles of mathematical proofs.
Ects breakdown
2 h introduction (first meeting)
60 h lecture (20 dates à 2h + 1h preparation)
40 h exercise sheets (4 sheets, 10 exercises/sheet, 1h/exercise)
16 h discussion of exercises (8 dates à 2h)
30 h preparation for written exam
2 h written exam
-----------------------------------------------------------
150 h = 6 Ects