Teaching

Courses

NumberTypeTitleHoursCreditsSemester
184.695 PR Bachelorarbeit für Informatik und Wirtschaftsinformatik 5.0 7.5 2017W
181.224 SE Dissertantenseminar 2.0 3.0 2017W
185.A93 UE Formale Methoden der Informatik 2.0 3.0 2017W
185.291 VU Formale Methoden der Informatik 4.0 6.0 2017W
184.728 PR From Design to Software 1 4.0 6.0 2017W
184.743 PR From Design to Software 2 4.0 6.0 2017W
184.766 VO Introduction to Logical Methods in Computer Science 2.0 3.0 2017W
184.782 VU Meilensteine im Lösen von Spielen über Graphen 2.0 3.0 2017W
184.703 VU Programmanalyse 2.0 3.0 2017W
181.222 PR Project in Computational Logic 8.0 12.0 2017W
184.692 PR Project in Computer Science 1 4.0 6.0 2017W
184.693 PR Project in Computer Science 2 4.0 6.0 2017W
184.697 PR Projekt aus Software Engineering & Internet Computing 6.0 9.0 2017W
184.767 SE Research Seminar LogiCS 2.0 3.0 2017W
181.220 VU Rigorous Systems Engineering 2.0 3.0 2017W
181.221 SE Seminar Formale Methoden 2.0 3.0 2017W
184.747 VU Software Model Checking 4.0 6.0 2017W

Thesis Topics

Bachelor’s Thesis Topics

  • Automatic Bound Computation
    The undecidability of the Halting problem is a famous result that goes back to the beginnings of computer science. The result says that there is no general method for automatically proving the termination of programs. Note, that this statement does not contradict the fact that in practice it is very well possible to prove termination for important program classes automatically. For example, it was a huge success when the first automatic tool chain was able to automatically prove the termination of Windows Device Drivers. Because drivers run in kernel mode, non-terminating drivers could cause the whole system to hang. Despite this success, termination is not a satisfying answer to most programmers who not only want to know that their programs terminate but also when! In ongoing research we are developing tools and algorithms for automatically deriving complexity bounds. See the topics…

Master’s Thesis Topics

  • Model Checking Distributed Algorithms
    Distributed algorithms are designed to be run on several computing nodes, be it on a multiprocessor machine, in a local network, or in a cluster distributed over the globe. Though these algorithms usually have a considerably small description of the code run on an individual node, given the huge number of nodes they can solve complex problems. On the other hand, the distributed nature of the computation poses problems such as different relative processing speeds, delays in message deliveries, faults of nodes and links, etc. To deal with these problems, many sophisticated algorithms have been developed for decades. Each distributed algorithm comes with a mathematical proof of its properties, although the proofs tend to capture the most important behavior, they still could contain non-trivial errors. The formal methods, e.g. theorem proving, model checking, static analysis, are targeted to either find errors or to provide one with a mathematically sound justification that a system under verification behaves with respect to a desired specification. We are developing techniques and tools for checking distributed algorithms in a semi-automatic way, guided by a researcher in that field. See the topics…
  • Automatic Bound Computation
    The undecidability of the Halting problem is a famous result that goes back to the beginnings of computer science. The result says that there is no general method for automatically proving the termination of programs. Note, that this statement does not contradict the fact that in practice it is very well possible to prove termination for important program classes automatically. For example, it was a huge success when the first automatic tool chain was able to automatically prove the termination of Windows Device Drivers. Because drivers run in kernel mode, non-terminating drivers could cause the whole system to hang. Despite this success, termination is not a satisfying answer to most programmers who not only want to know that their programs terminate but also when! In ongoing research we are developing tools and algorithms for automatically deriving complexity bounds. See the topics…
  • Machine Learning and Static Analysis for Building Software Verification Portfolios
    Are you interested in Machine Learning and Formal Methods?
    We are looking for students to work on Verifolio, our machine learning-based portfolio software verifier. Verifolio uses static analysis and machine learning to automatically pick a suitable verification tool for a given verification task.
    Currently, Verifolio is trained and evaluated on data from the Intl. Competition on Software Verification (SV-COMP) using Support Vector Machines (SVM). It outperforms any standalone software verifier in the competition. We are looking for motivated students who will extend the platform in several ways. See the topics…

Graduate Studies

FORSYTE is involved in lectures and organization of the following programs:

Master Programs

PhD Programs

LogiCS

Latest News

CfP: Workshop on Exploiting Concurrency Efficiently and Correctly (EC^2 2010)

The annual Workshop on Exploiting Concurrency Efficiently and Correctly (EC2) is a forum that brings together researchers working on formal methods for concurrency, and those working on advanced parallel applications. Its goal is to stimulate incubation of ideas leading to future concurrent system design an verification tools that are essential in the multi-core era.

Continue reading

Full news archive