This course gives an introduction to computational logic, i.e., to those aspects of logic that can be supported by software or are relevant for software development: satisfiability solving in propositional logic, computer-supported and fully automated proving in first-order logic, and decision procedures for certain (combinations of) logical theories.

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

This seminar discusses techniques and tools for formal methods and/or automated reasoning such as formal specification languages, program verification systems, model checkers, interactive proof assistants, automated theorem provers, satisfiability solvers, decision procedures, etc.