In dieser Lehrveranstaltung behandeln wir wesentliche Bereiche der Theoretischen Informatik, d.h., der "ewigen Wahrheiten" der Informatik, die auf der Grundlage der Mathematik/Logik ein für allemal bewiesen wurden und die unabhängig von weiteren technologischen Entwicklungen sind. Zentrale Fragestellungen sind dabei der Begriff der Berechenbarkeit (was ist berechenbar und was nicht?) und der Komplexität (wie groß ist der für eine Berechnung notwendige Aufwand?).

This course gives a survey on the use of formal methods for the development of reliable software using freely available tools.


In this seminar, we explore current research and systems for specifying and verifying computer programs (specification languages, program verifiers, model checkers, ...).

This exercises lecture is an extension for the main course on Algorithms and Data Structures. It will provide the opportunity for putting into practice all the subjects discussed during the course, both by implementing, analysing, optimizing the presented algorithms, and by exploring additional use cases and new algorithms.