Courses for the Winter Semester 2025/26

The Central allocation for seminars and practical courses for the winter semester 2025/26 is handled by the LSF System. For further information please refer to Course registration with LSF (in German).


This course explores the world of unsupervised learning, that is, learning from data without access to labeled examples. We begin by examining the task of clustering, which aims to group similar instances and identify common patterns in data. Our focus then shifts to deep clustering — the integration of clustering with techniques from deep learning. These methods have gained popularity in recent years and have demonstrated strong performance on tasks involving image and text data.

 

Identifying clusters in high-dimensional data, such as images, text, or video, is a complex task due to the curse of dimensionality — a phenomenon where data points become increasingly similar as dimensionality grows. To address this, clustering is often preceded or accompanied by dimensionality reduction. Deep clustering addresses this challenge by combining deep representation learning with clustering-specific objectives, enabling models to learn meaningful features and groupings simultaneously.

 

The course covers a variety of deep clustering approaches and how they partition data. It also fosters critical discussions on the rationale behind algorithmic choices, exploring key research questions and design trade-offs


This seminar introduces Satisfiability Modulo Theories (SMT), a central area in automated reasoning that extends classical satisfiability (SAT) solving to more complex mathematical domains such as arithmetic, bit-vectors, arrays, and data structures. The course covers fundamental techniques for SMT solving, including decision procedures, theory combination, and efficient encoding methods. The seminar includes reading of recent research papers and hands-on engagement with state-of-the-art SMT solvers.

Master Seminar: Software-Verification Algorithms and Tools

Regular Slot 

Tuesday, 14-16, starting from October 14th.

Prerequisites

You should be knowledgeable on the contents of 
the bachelor lectures "Formal Specification and Verification" 
and "Formal Languages and Complexity".

Additionally, there are Master lectures concerned with software verification.
In particular, the following lectures are very beneficial for the seminar:

  • Software Verification
  • Verification of Parallel Programs
  • Software Testing
Description

As software becomes more critical, 
the consequences of bugs or failures become more severe. 
To build trust in software systems, 
we need strong tools and techniques to prove that programs behave correctly. 
This is where software verification comes in.

In this seminar, you will be introduced to key concepts and modern techniques used to formally check the (in)correctness of software. 
These approaches complement testing: 
they aim to automatically verify that programs meet their specifications, 
detect potential bugs, 
or prove that certain errors cannot occur under any circumstances.

This course is ideal for students who are curious about topics such as static analysis, model checking,
and how these concepts are used to automatically prove software systems correct regarding a given specification.
We will discuss the ideas of selected research papers in our weekly group sessions, 
and practice presenting scientific content in written and oral form.

Preliminary Selection of Topics (may be extended):

Each topic will be introduced through a research paper. You will pick (or be assigned) one of these topics and papers.

  • A Unifying View on SMT-Based Software Verification (https://doi.org/10.1007/s10817-017-9432-6)
  • Symbolic Execution with CEGAR (https://doi.org/10.1007/978-3-319-47166-2_14)
  • Explicit-State Software Model Checking Based on CEGAR and Interpolation (https://doi.org/10.1007/978-3-642-37057-1_11)
  • Software Model Checking for People Who Love Automata (https://doi.org/10.1007/978-3-642-39799-8_2)
  • Software Verification Using k-Induction (https://10.1007/978-3-642-23702-7_26)
  • Configurable Software Verification: Concretizing the Convergence of Model Checking and Program Analysis (https://doi.org/10.1007/978-3-540-73368-3_51)
  • Interpolation and SAT-Based Model Checking Revisited: Adoption to Software Verification (https://doi.org/10.1007/s10817-024-09702-9)
  • A Transferability Study of Interpolation-Based Hardware Model Checking for Software Verification (https://doi.org/10.1145/3660797)
  • Bounded Model Checking (https://doi.org/10.3233/FAIA201002)
  • Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints (https://doi.org/10.1145/512950.512973)
  • Predicate Abstraction with adjustable-block encoding (https://doi.org/10.5555/1998496.1998532)
  • Termination Analysis by Learning Terminating Programs (https://doi.org/10.1007/978-3-319-08867-9_53)
Expectations
  • Write a seminar thesis about an assigned paper (approx. 6-8 pages incl. references), using the ACMART (two column) format.
  • Give a 25-minute presentation explaining the paper's core ideas and methods, followed by a 5-minute Q&A session.
In Rahmen dieses Seminars werden verschiedene Forschungsrichtungen und -schwerpunkte im Gebiet der künstlichen Intelligenz (KI) beleuchtet. Dabei soll insbesondere eine Verbindung von der historischen Entwicklung im Bereich KI und den Perspektiven für die zukünftige Entwicklung hergestellt werden. Ein besonderer Fokus liegt neben der Einbettung der KI in die Informatik als Wissenschaft auch auf ihrer Rolle in anderen Forschungsfeldern und der gesellschaftlichen Bedeutung der aktuellen Entiwcklungen.

Die Teilnahme am Seminar erfordert das selbstständige Verfassen einer Seminararbeit, das Halten eines Vortrags und die Beteiligung an der wissenschaftlichen Diskussion. Entsprechende Techniken und Fähigkeiten werden im Seminar vermittelt.

Content

A good amount of software-engineering research consists of the creation of software or its analysis. The software and data that are created by researchers in this process are referred to as “research artifacts”. These artifacts are useful in two ways. First, other researchers can reproduce the reported research results. That means that, in theory, anyone having access to the research artifact should be able to observe the same results as reported by the researchers. Second, other researchers can reuse these artifacts in their own research.

The goal of this seminar is to learn how to use and assess artifacts from software engineering and programming language research.

In this process students will acquire basic skills for conducting reproducible scientific re­search, which will be useful for their final projects and further academic careers. They will learn how to perform a reproduction study, document their work, write a report, and present their findings.

Students will perform a reproduction study on a given set of already published artifacts. Their main tasks are to
- verify that published research artifacts are still available and usable,
- read the related publications,
- follow the documentation of the artifacts to reproduce the studies’ results, and
- report the findings.

Team

Process

This presence course will consist of 3 phases.

  1. Reading lectures: four presence sessions (one per week) in which students will read and discuss relevant publications on artifact evaluation to gain knowledge on the topic and relevant skills to perform the reproduction study.

  2. Reproduction study: independent work in which each student is given a set of publications with artifacts. Students will document their independent work in lab reports and present the individual reproduction results. A weekly office hour will be offered for discussions on practical issues that students may be facing.

  3. Report and presentation: Students will write a final report based on their experimental work documented in the lab report from phase 2. Additionally, they will prepare a 10 minutes presentation.

Requirements

Students should be interested in reading and understanding scientific publications. A healthy degree of skepticism is beneficial.

This seminar is in English.

Enrollment via Zentralanmeldung only.

This seminar offers a selection of topics in the field of Quantum Computing/Quantum Communication. A successful participation in the lecture "Introduction to Quantum Computing" or similar lectures at other faculties/TUM is highly recommended for this seminar.

Each participant will work on one topic throughout the semester (master students on their own, bachelor students in pairs). The goal is to write a paper, submit it to an imaginary conference committee, review each others work and present their findings at an end-of-term "conference" in the seminar.

The tasks is supported by a lecture about scientific writing and presentations and by an individual supervisor for each topic.

Browser extensions enhance user experience by adding functionality to web browsers, but they also present significant security risks. With access to sensitive data and system resources, extensions can become vectors for malicious activities, such as data theft, privacy invasion, and unauthorized actions. In recent years, the security of browser extensions has become a growing concern due to their increasing prevalence and capability. This seminar will explore the landscape of security analysis for browser extensions, discussing both static and dynamic analysis techniques to detect vulnerabilities and malicious behavior. It will also examine key challenges such as extension privilege misuse, obfuscation tactics, and scalability in detection methods. Through this, participants will gain insights into emerging solutions and ongoing research efforts aimed at securing browser extensions in a rapidly evolving ecosystem.


We will cover a variety of topics like…

  • Malware and Vulnerability Detection
  • Privacy and Sensitive Data
  • Machine Learning
  • Static and Dynamic Analysis

---

Pre-requisites

  • English only
  • Interest in program analysis and browser extensions
  • Basic knowledge of JavaScript and HTML

---

Meetings

  • Time Wednesday 16:15 to 17:45
  • Place Oettingenstr. 67 - 033
  • Kick-off Meeting 15.October

Content

Type Theories are formal systems which can be understood both as powerful logics and functional programming languages. They have been studied since the late 1960’s and today form an important part of many programming languages. So called dependent type theories serve as the foundations of popular interactive theorem provers such as Agda, Coq, Idris and Lean. In this seminar, we will discuss various important type theories and their properties.

Prerequisites

  • Familiarity with basic logic (propositional and first-order) is assumed.
  • Familiarity with functional programming is helpful but not required.

Organisation

There will be some lectures at the start of the term, which will introduce the key concepts and notations of type theory. These lectures should give you the background knowledge required to understand type theory papers.

Afterwards, each student chooses a topic and prepares a written report and a talk about this topic. The topic is usually a paper about a type theory, type-theoretic construction or proof method. Some suitable topics will be provided, but you can also suggest your own.

The talks will be given on one or more presentation days towards the end of the term, and the reports are due shortly thereafter. We won’t have additional meetings before the talks, but you can always ask questions on the course chat (see below).

Material

Course materials will be provided before the start of the semester. Some material is available from previous iteration of the seminar. Note however, that the current iteration will place less of an emphasis on dependent type theory.

Contact

Feel free to reach out to Massin on Zulip or via E-Mail if you have any questions.

Inhalt

Im Rahmen des Seminars wollen wir uns aktuelle Trends aus dem Bereich "Modern Data Storage Technologies" ansehen (z.B. Computational Storage, Flash-Speicher, NVMe, Zoned Storage, GPU Direct, DNA Storage) und deren Umsetzung in modernen Datenspeichersystemen anhand vorgegebener Literatur verstehen, analysieren und bewerten.

Für eine erfolgreiche Teilnahme am Seminar gibt es folgende Voraussetzungen:

  • Teilnahme an der Vorbesprechung
  • Aktive Teilnahme an allen Seminartagen
  • Eigenständig vorbereitete Präsentationen, die zeigt, dass die präsentierte Forschung verstanden wurde
  • Schriftliche Ausarbeitung von etwa 10-15 Seiten

Die Vortragszeit beträgt 15 Min., darauf folgen 5-10 Min. Diskussion.

Ablauf

Jeder Teilnehmer bekommt 2-3 wissenschaftliche Veröffentlichungen zu einem vorher gewählten Themenkomplex. Diese soll in einem Referat von 15 Minuten vorgestellt werden. Weiterhin relevante Literatur soll vom jeweiligen Referenten selbständig hinzugezogen werden. Im Anschluss an jedes Referat wird die vorgestellte Veröffentlichung von allen Teilnehmern diskutiert.

Nach dem Blockseminar soll jeder Teilnehmer eine schriftliche Ausarbeitung von etwa 10-15 Seiten einreichen, die sowohl die wesentlichen Punkte der vorgestellten Veröffentlichungen als auch die Ergebnisse der Diskussion präsentiert. Hierbei sollen die Veröffentlichungen insbesondere in den fachlichen Kontext gerückt und kritisch betrachtet werden.

In die Bewertung gehen sowohl Qualität von Referat und schriftlicher Ausarbeitung ein als auch qualifizierte Mitarbeit und Teilnahme an den Diskussionen jeder Sitzung.