Registration is now open. Please use the additional fields named "Lecture/Tutorial Mode" to indicate whether you will likely attend the lectures and tutorials in person if both options are possible. This will help us tremendously in offering you an... Read more
Registration is now open. Please use the additional fields named "Lecture/Tutorial Mode" to indicate whether you will likely attend the lectures and tutorials in person if both options are possible. This will help us tremendously in offering you an optimal course setup.
Looking forward to the coming semester,
Core Lecture Course (9 CP)
Lectures: Tuesday 2 to 4 pm and Thursday 10 am to 12 noon in HS001, E1 3.
Tutorials: Friday 10 am to 12 noon and Friday 12 noon to 2 pm in Room 206, E1 1.
Office Hour: Wednesday 10 am to 12 noon in Room 106, E1 1 and online.
There will be an option to attend the lectures and at least one tutorial remotely.
How can one ensure that computer programs actually do what they are intended to do? Simply running a program repeatedly with various inputs is inadequate, because one cannot tell which inputs might cause the program to fail. It is possible to tailor a tester to test a given program, but present-day programs are so complex that they cannot be adequately checked through conventional testing, which can leave significant bugs undetected. Program verification uses mathematical and logical methods to prove that a program is correct. This approach was pioneered by, among others, Dijkstra, Floyd, Gries, Hoare, Lamport, Manna, Owicki and Pnueli. Today, we have powerful decision procedures that can, completely automatically, answer basic questions about the data types typically used by programmers. Model Checking is a “push-button” technology that can analyze finite-state abstractions of programs with as many as 1020 states. This course takes an up-to-date look at the theory and practice of program verification.
- Christel Baier, Joost-Pieter Katoen: Principles of Model Checking, 2008.
- Aaron R. Bradley and Zohar Manna: The Calculus of Computation, 2007 (available on Springer Link).
- Edmund M. Clarke, Thomas A. Henzinger, Helmut Veith, Roderick Bloem: Handbook of Model Checking, 2018 (available on Springer Link).
- Zohar Manna and Amir Pnueli: Temporal Verification of Reactive Systems – Safety, 1995.
- Edmund M. Clarke, Orna Grumberg, Daniel Kroening, Doron Peled, Helmut Veith: Model Checking, 2018.
- Krystof R. Apt, Frank S. de Boer, Ernst-Rüdiger Olderog: Verification of Sequential and Concurrent Programs, 2009.