Reinforcement Learning ist ein Teilgebiet der Künstlichen Intelligenz,
das das Erlernen von Handlungsstrategien für autonome Agenten zur
Maximierung einer Belohnungsfunktion behandelt. In diesem Kurs werden
zunächst theoretische Grundlagen eingeführt und anschließend
verschiedene Lösungsansätze vorgestellt. Im praktischen Teil der
Veranstaltung erstellen die Teilnehmer eigene autonome Agenten, die für
eine vorgegeben Aufgabe eine möglichst effektive Handlungsstrategie
erlernen sollen.
- Teacher: Michel Tokic
Place: Akademiestr. 7, 1st floor, Room 105
Time: by arrangement
6 SWS
Language: English
Recommended Prerequisites for Students:
· Strong programming skills
· Prior practical experience in machine learning, typically acquired through one of the standard ML courses
Modern Deep Learning has fundamentally changed Artificial Intelligence. Novel applications as well as significant improvements to old problems continue to appear at a staggering rate. Especially the areas of image and video understanding, retrieval, and synthesis have seen tremendous improvements and even the human baseline has been outperformed in several difficult applications.
The algorithms and the fundamental research in deep Machine Learning and Computer Vision that are driving this revolution are improving at an ever-increasing rate. The goal of this practical lab is, therefore, to give students hands-on experience with the state-of-the-art in this field of research. We will work on current problems in Computer Vision and Machine Learning and build on current algorithms to practically implement novel solutions. Consequently, the practical is also a good opportunity to take a close look at this area of research and prepare for a potential future final thesis.
Topics include but are not limited to:
* Image & video synthesis
* Visual superresolution and Image completion
* Artistic style transfer
* Interpretability of deep models
* Visual object classification, detection, tracking
* Self-supervised learning
* Metric and representation learning
* Modern deep learning approaches, such as transformers and self-attention, invertible neural networks, etc.
* …
- Teacher: Ursula Fantauzzo
- Teacher: Felix Krause
Place: Akademiestr. 7, 1st floor, Room 105
Time: by arrangement
6 SWS
Language: English
Recommended Prerequisites for Students:
· Strong programming skills
· Prior practical experience in machine learning, typically acquired through one of the standard ML courses
Modern Deep Learning has fundamentally changed Artificial Intelligence. Novel applications as well as significant improvements to old problems continue to appear at a staggering rate. Especially the areas of image and video understanding, retrieval, and synthesis have seen tremendous improvements and even the human baseline has been outperformed in several difficult applications.
The algorithms and the fundamental research in deep Machine Learning and Computer Vision that are driving this revolution are improving at an ever-increasing rate. The goal of this practical lab is, therefore, to give students hands-on experience with the state-of-the-art in this field of research. We will work on current problems in Computer Vision and Machine Learning and build on current algorithms to practically implement novel solutions. Consequently, the practical is also a good opportunity to take a close look at this area of research and prepare for a potential future final thesis.
Topics include but are not limited to:
* Image & video synthesis
* Visual superresolution and Image completion
* Artistic style transfer
* Interpretability of deep models
* Visual object classification, detection, tracking
* Self-supervised learning
* Metric and representation learning
* Modern deep learning approaches, such as transformers and self-attention, invertible neural networks, etc.
* …
- Teacher: Ursula Fantauzzo
- Teacher: Felix Krause
The rapid development of digital technologies and the growing threat to cybersecurity have increased the need for innovative security solutions in public spaces. However, satisfactory solutions for privacy and security remain rare, as existing approaches are often cumbersome, and users are reluctant to invest time in protecting their digital privacy. In this course, students work in groups to develop innovative concepts for privacy and security. They design, prototype, and evaluate novel user interfaces that enhance security behavior and facilitate the transition from cybersecurity awareness to the adoption of secure habits.
- Teacher: Doruntina Murtezaj
- Teacher: Doruntina Murtezaj
- Teacher: Viktorija Paneva
Im Rahmen dieses Praktikums werden ausgewählte Probleme und Fragestellungen aus dem Bereich der Sicherheit von TCP/IP-basierten Kommunikationsssytemen behandelt. Die Themen und Aufgaben umfassen u.a.:
- Grundlagen von TCP/IP Netzen
- Hacking-Angriffe: SQL-Injection, Binary Exploitation, Passwort-Cracker, Rootkits...
- Statische und dynamische Paketfilter
- Verschlüsselung, VPNs, Prüfsummen, digitale Signaturen, Zertifikate...
- Grundlegende Netzdienste: DNS, HTTP, SSH...
- Firewallarchitekturen
- Intrusion Detection
- Teacher: Daniel Diefenthaler
- Teacher: Fabian Dreer
- Teacher: Karl Fürlinger
Kurzbeschreibung
Dieses Praktikum, das einen Umfang von 12 ECTS (!) hat, vermittelt die Fähigkeit, Anwendungsfälle aus den Bereichen der Optimierung und dem maschinellen Lernen für Quantencomputer zu modellieren und darüber hinaus einen Einstieg in die praktische Arbeit mit existierenden Quantencomputern. Dafür stehen im QAR-Lab derzeit vier Rechner zur Verfügung: Das IBM Q System Two, der IonQ Aria, der Fujitsu DAU und der D-Wave Advantage. In Kooperation mit namhaften Partnern aus der Industrie werden Aufgabenstellungen mit starker Relevanz für praktische Anwendungen vergeben. Studierende haben in Gruppen die Möglichkeit, je eine Aufgabenstellung auf verschiedenen Rechnern auszuführen und zu vergleichen. Das Praktikum schließt mit einer Präsentation der Ergebnisse vor unseren Industriepartnern ab.
Inhalt des Praktikums
Quantencomputing ermöglicht effizientere Ansätze zur Lösung zentraler Probleme der Informatik durch die Nutzung quantenmechanischer Effekte. Mit der zunehmenden Größe und Qualität aktueller Quantencomputer ist es bereits heute möglich diesen Quantenvorteil in der Praxis nachzuweisen. Die Herausforderung besteht im Allgemeinen darin mit den im Quantencomputing zusätzlich zur Verfügung stehenden algorithmischen Bausteinen Lösungsverfahren zu entwickeln, die einen anwendungsrelevanten Quantenvorteil ermöglichen.
Dieses Praktikum stellt eine Einführung in den anwendungsorientierten Einsatz von Quantencomputing dar. Hierbei werden Ansätze aus dem Bereich Quantenoptimierung zur Lösung praxisrelevanter Probleme konzipiert, implementiert und analysiert. Dabei kommt „echte“ Quantenhardware der Hersteller IBM, IonQ, Fujitsu und D-Wave Systems zu Einsatz.
Eine Auswahl der behandelten Themen lautet:
- Grundlagen des Quantencomputings
- Mathematische Modellierung
- Optimierung
- Quantum Annealing
- Quantenoptimierungsalgorithmen
- Einführung in verschiedene QC-Plattform SDKs
Ablauf & Prüfung
Das Praktikum gliedert sich in zwei Phasen: In der dreiwöchigen Theoriephase werden Grundlagenkenntnisse vermittelt, während in der Praxisphase (startend ab der vierten Woche) in Gruppen an jeweils einer Aufgabenstallung gearbeitet wird. Die Gruppeneinteilung und Themenvergabe findet voraussichtlich Ende der 3. Semesterwoche statt.
Im Rahmen der Projektphase wird pro Gruppe eine ca. zehnseitige wissenschaftliche Arbeit erstellt, die insbesondere die eigene Methodik und erzielte Ergebnisse beinhaltet. Das Praktikum schließt mit einer benoteten Präsentation der Ergebnisse ab.
Termine
Wöchentlich Dienstags, 10-12 Uhr, Oettingenstr. 67, U133, und Donnerstags, 14-16 Uhr, Oettingenstr. 67, 131, sowie Zusatztermine mit den Betreuern bei Bedarf, remote / in den Räumen des Lehrstuhls. Bei einer großen Anzahl der Termine besteht Anwesenheitspflicht. (Details folgen auf der Veranstaltungswebseite des Lehrstuhls.) (Beginn: 22.04.2025, Ende: 24.07.2025, bis auf ggf. später stattfindende mündliche Prüfung.)
- Teacher: Claudia Linnhoff-Popien
- Teacher: Daniëlle Schuman
- Teacher: Jonas Stein
- Teacher: Maximilian Zorn
Overview
Automated theorem proving is a subfield of mathematical logic that concerns itself with proving mathematical theorems fully automatically using computer programs. These programs are called automated theorem provers. They can be used as stand-alone programs to solve logic problems or in tandem with interactive theorem provers (also called proof assistants) to discharge proof obligations that arise in interactive proofs.
In this course, we will focus on practical aspects of automated theorem provers and their implementation.
Organization
The course is divided into two parts. In the first part of the course, participants will receive a brief introduction to automated theorem proving, focused on practical aspects.
This will be followed by a project phase, with students working in teams of 2-4 people.
Each team is tasked with delivering a presentation on relevant background material (such as research articles), proposing, implementing and documenting a project, as well as giving a final project presentation.
Participation is limited to 30 master students.
Prerequisites
At a minimum, familiarity with basic aspects of mathematical logic, such as those taught in the bachelor's lecture "Logik und diskrete Strukturen", is required.
The practical complements the lecture Automated theorem proving that was offered in the winter term 2024/25. If you are interested in the practical, we highly recommend reviewing the course materials from the lecture.
Place and Time
The given end dates are tentative.
Activity | Time | Place | Start | End |
---|---|---|---|---|
Lecture | Tue 16-18 c.t. | Oettingenstr. 67, 061 | 29.04.2025 | 22.07.2025 |
Group exercise | Thu 12-14 c.t. | Oettingenstr. 67, 161 | 08.05.2025 | 24.07.2025 |
The exercise sessions start in the third week of the semester (one week after the first lecture). The exercise session on the 29.05.2025 (Christi Himmelfahrt) and 19.06.2025 (Fronleichnam) are canceled due to holidays.
Registration
To register for the course, please do so through the Central Allocation (Zentralanmeldung).
If you have questions, please reach out to Massin Guerdi or Lydia Kondylidou.
- Teacher: Massin Guerdi
- Teacher: Lydia Kondylidou
The Binary Analysis with AI Praktikum allows students to explore the fascinating intersection of binary analysis and artificial intelligence. This praktikum aims to provide a solid foundation in binary analysis and machine learning, which can be valuable for various applications in the field of cybersecurity.
Students will first gain an overview of key AI applications in binary analysis and understand the general workflow. They will then delve into two main aspects: (1) binary code analysis and how to extract relevant structures and features, and (2) leveraging learning tasks to create better representations of binaries.
The primary task of this praktikum is to identify binary functions across different compiler settings, enabling more robust analysis. To solve this problem, students will develop their own machine learning-based binary code representations.
Language: English
Pre-requisites:
- Basic knowledge of machine learning
- Familiarity with binary analysis concepts (e.g., disassembly, control flow analysis) is helpful but not mandatory
- Proficiency in Python (experience with libraries such as NumPy, PyTorch, or TensorFlow is a plus)
- Teacher: Johannes Kinder
- Teacher: Yunru Wang
Inhalt
Moderne Systeme - z.B. Roboter - agieren autonom: Sie treffen selbstständig Entscheidungen und passen Ihr Verhalten flexibel den aktuellen Umständen und Anforderungen an. In diesem Praktikum beschäftigen wir uns mit der Umsetzung autonomer Systeme. Wir implementieren Algorithmen zur adaptiven Planung, Optimierung und Koordination sowie Methoden zur Evaluation und Analyse autonomer Systeme. Eine Auswahl der behandelten Themen lautet:
- Decision Making in Autonomous Systems
- Planning and Reinforcement Learning
- Simulation and Approximation
Benötigte Vorkenntnisse:
Programmierung mit Python. Praktische Erfahrung mit Machine Learning Bibliotheken (PyTorch o.ä.) sowie theoretische Vorkenntnisse über Machine Learning, Planning und Reinforcement Learning sind vorteilhaft. Vorkenntnisse mit Simulationsumgebungen wie Mujoco und Unity sind hilfreich.
In den ersten fünf Wochen werden die theoretischen Grundlagen vermittelt. Begleitend hierzu gibt es praktische Übungsaufgaben, die ab der zweiten Woche besprochen werden. Die Projektphase startet in der sechsten Woche. Hier arbeiten die Studenten selbstständig in Gruppen an einem gemeinsamen Projekt. Die Projektphase wird von regelmäßigen Fortschritts- und Projektpräsentationen, sowie Best Practices zur direkten Anwendung in den Projekten begleitet. Das Praktikum endet mit der Abgabe des Projekts und einer Abschlusspräsentation. Vorlesungen und Präsentationen werden größtenteils auf Deutsch stattfinden.
Termine
Mi 14-16 Uhr c.t., Oettingenstr. 67, 131
Do 16-20 Uhr c.t., Oettingenstr. 67, 131
Beginn: 23.04.2025
- Teacher: Philipp Altmann
- Teacher: Jonas Nüßlein
Im Rahmen dieses Praktikums sollen in Gruppen Experimente bzw. Untersuchungen aus dem Forschungsgebiet des Affective Computing durchgeführt werden. Dabei werden zunächst geeignete Experimente entworfen, in denen Testpersonen in bestimmte affektive bzw. emotionale Zustände versetzt und gleichzeitig relevante (Sensor-)Daten aufgezeichnet werden können. Anschließend werden die Experimente durchgeführt und die aufgezeichneten Daten mit Hilfe von Methoden aus den Gebieten Data Science und Machine Learning analysiert. Insofern erfolgreich Muster identifiziert werden können, soll zum Abschluss ein kleiner Demonstrator umgesetzt werden.
Dieses Praktikum wird in Zusammenarbeit mit Dr. Marco Maier als Lehrbeauftragtem an der LMU München durchgeführt. Dr. Marco Maier hat an der LMU am Institut für Informatik promoviert und ist aktuell CTO bei TAWNY (www.tawny.ai), einem der spannendsten Affective-Computing-Startups in Europa. Studenten erhalten in diesem Praktikum wertvolle Einblicke sowohl in das Forschungsgebiet als auch in den neuesten Stand der Technik in der Industrie.
Voraussetzungen: Kenntnisse bzw. mindestens ausgeprägtes Interesse an den Themen Artificial Intelligence, Machine Learning, etc.; Programmierkenntnisse in Python vorteilhaft. Das Praktikum findet auf deutsch statt.
- Teacher: Philipp Altmann
- Teacher: Marco Maier
Participation is limited to 30 master's students. The course will be held in English.
- Teacher: Jasmin Blanchette
- Teacher: Lydia Kondylidou
Als Software kommt Unreal Engine 5 zum Einsatz.
- Teacher: Elisabeth Mayer
- Teacher: Thomas Odaker
Inhalt
Das Praktikum widmet sich der Untersuchung der Struktur und des Verhaltens von parallelen Hochleistungsrechnern mit den Methoden der quantitativen Analyse. Durch Experimentation, Messung und Modellierung soll das komplexe Verhalten von modernen Parallelrechnern im Vergleich verschiedener Architekturen analysiert werden.
Das Praktikum wird in Zusammenarbeit mit dem Leibniz Rechenzentrum (LRZ) und der TU München durchgeführt. Technische Basis wird ein neu installiertes heterogenes Hardware-Testbett am LRZ sein (BEAST)
Sie werden:
- die Möglichkeit, an der neuesten HPC-Technologie wie CPUs oder GPUs von Intel, AMD, NVidia, Marvell, Fujitsu zu arbeiten, (insbesondere A64FX - treibt einen der schnellsten Supercomputer der Welt (Fugaku) von TOP500-Rankings) haben,
- verschiedene Merkmale neuartiger Technologien auf Node-level erkunden,
- über Leistungsoptimierungen auf Node-level erfahren,
- verschiedene Programmiermodelle auf Node-level für Multicore-CPUs und Hardware-Beschleuniger lernen. Dazu werden Sie zunächst mit OpenMP arbeiten, für spätere Projekte fortgeschrittene Programmiermodelle wie Compiler Vector Intrinsics, OpenCL, SYCL, HIP oder CUDA verwenden können.
- grundlegende Methoden zur Synchronisation erlernen.
Dieses Praktikum wird nur in englischer Sprache angeboten.
Kursstruktur
Das Praktikum ist in zwei Arten von Aufgaben unterteilt.
- Bei der ersten Aufgabenart wird von den Studierenden erwartet, dass Sie meistens an allen Architekturen arbeiten.
- Im zweiten Teil (Projekte) arbeiten Sie ausschließlich an einer bestimmten Architektur.
Bewertung
Studierende arbeiten in Gruppen (2-3 Personen pro Gruppe) und erstellen Berichte für jede Aufgabe sowie kurze Präsentationen ihrer Evaluationsergebnisse (jede Woche werden 2 Gruppen ausgewählt, die ihre Berichte präsentieren). Die Benotung erfolgt auf der Grundlage des Berichts und der Kurzpräsentationen. Dazu gehört auch der verwendete Quellcode der Evaluation, der den Berichten hinzugefügt werden muss. Das Praktikum wird gemäß der Studienordnung der LMU mit 6 ECTS-Punkten bewertet.
Voraussetzungen
Voraussetzung für die Teilnahme am Praktikum ist die erfolgreiche Teilnahme am Kurs "Parallel and High Performance Computing". Gute Kenntnisse in C/C++ unter Linux, und Verständnis von Begriffen der Computerarchitektur wie SIMD, Multicore, SMT und Caches.

- Teacher: Sergej-Alexander Breiter
- Teacher: Minh Chung
- Teacher: Karl Fürlinger
Overview
In this practical course, you will go on the hunt for security vulnerabilities in real-world applications that people actually use. You will learn how to systematically identify potential attacks and become familiar with the common security vulnerabilities used to carry out these attacks. Throughout the course, you will apply the theoretical knowledge and learn about the techniques and tools used to detect vulnerabilities in software.
The course is designed to be flexible, allowing you to choose your approach - whether that's performing mass scans with static analysis, writing new fuzzing harnesses for existing software, or identifying exploits using manual analysis. You also get to select the targets and, as a result, the level of difficulty yourself.
Organization
You will spend the lecture period searching for vulnerabilities in real-world applications in teams of two. The course will meet in person approximately every two weeks on Monday at 1 PM c.t. during the lecture period to sync up and learn from each other. There will be an introductory lecture during the first meeting. Additionally, each team will prepare and give a presentation about a tool that can be used to find vulnerabilities. After the lecture period, each team prepares a report about the methods they used and their findings. The report is due by the end of the semester.
The course awards 6 ECTS.
Prerequisites
There are no formal prerequisites, but a strong interest in software security and the ability to work independently in an unguided environment are essential. You should be comfortable using the command line and capable of writing small scripts to juggle some bytes around. Some basic knowledge about software security obtained through
- lecture/practical course "IT-Sicherheit"
- lecture "Program Analysis for Security"
- doing HackTheBox/TryHackMe/CTFs in your free time
may help you get started faster but are not necessary.
If you have any questions, feel free to email me at tim.lange@lmu.de or message me on Zulip.
- Teacher: Tim Lange
Anmeldung
Die Anmeldung zu diesem Seminar erfolgt über die Zentralanmeldung für Masterpraktika, außer für Lehramtsstudierende (bitte Anmeldehinweisen unten folgen).
Beachten Sie die unten aufgelisteten Voraussetzungen und die Hinweise zum Zeitaufwand! Ohne Einsatz von 12-15 Stunden Zeit in jeder Semesterwoche ist die Teilnahme am Praktikum nicht möglich.
Inhalt
Ziel des Software-Entwicklungspraktikums ist das Erlernen von Methoden zur Entwicklung größerer Software-Systeme und deren praktische Anwendung. Es werden verschiedene Techniken und Werkzeuge vorgestellt und geübt, die bei der Entwicklung von mittleren und größeren Software-Projekten nützlich sind. Im Fokus stehen dabei
- Agiles Projektmanagement mit Scrum
- Design-Patterns und -Prinzipen
- Codequalität (readability, testability, changeability)
- Testen (Unit-Testing und Test-Driven Development)
- Tooling (Eclipse) und Refactoring
- Bug-Tracking und Task-Tracking mit Milestones und Kanban-Boards (GitLab)
- Versionsverwaltung, Buildprozess und Continuous Integration
Diese Techniken werden von den Teilnehmern bei der Durchführung eines kompletten Softwareprojekts geübt und angewendet. Dabei wird ein webbasiertes Multiplayer-Kartenspiel namens “The Bug is a Lie” implementiert.
Anrechnung
- als Praktikum zu fortgeschrittenen Themen der Informatik (INF-PfTI) im Master (s. Modulhandbuch 2.1 P 1, Seite 7)
- als vertiefendes Thema für Bachelor mit 6 ECTS (s. Modulhandbuch 2.1)
- als Praktikum zur planmäßigen Entwicklung eines Softwaresystems (Modul P15, ehemals “Praktische Programmierung”) mit 6 ECTS für Studierende der Lehramt Informatik - in diesem Fall melden Sie sich vor Ende der Bewerbungsfrist der Zentralanmeldung (31.03.2025) per Email an die Assistenten an. Geben Sie dabei unbedingt Ihre Campus-Adresse an und ob Sie die nötigen Voraussetzungen (s.u.) erfolgreich absolviert haben.
Ablauf und Termine
Das Praktikum besteht aus zwei Teilen: In den ersten Wochen findet ein Vorlesungsteil statt, in dem Sie eine Einführung in die im Praktikum verwendeten Methoden und Technologien bekommen und diese üben. Danach beginnt das eigentliche Praktikum, das in Teams von 5-6 Personen aufgeteilt stattfindet.
Im Praktikumsteil gibt es vier Sprints und wöchentlich zwei Treffen des Teams mit dem Betreuer (primär im Zeitraum von Montags 12-16 Uhr und Donnerstags 14-16 Uhr, nach Absprache auch zu anderen Zeiten), in denen Sprint Planning, Daily Standup, Sprint Review etc. stattfinden. Jedes dieser Treffen dauert maximal 2 Stunden. Das Praktikum endet mit einer Abschlusspräsentation.
Das Praktikum findet anfangs in Präsenz statt. In der Gruppenphase können die Teams entscheiden ob Meetings in präsenz oder online stattfinden.
Die Anwesenheit bei allen Terminen ist obligatorisch, da andernfalls ein Zusammenarbeiten im Team nicht möglich ist. Fehlzeiten sind mit (Arbeitnehmer-)Krankenschein zu belegen.
Der Gesamtzeitaufwand beträgt 180 Stunden. Da sämtlicher Zeitaufwand vor dem Ende der Vorlesungszeit anfällt (keine Klausur und dazugehörige Lernzeit) müssen Sie also 12-15 Stunden Zeit pro Woche aufwenden.
Voraussetzungen
Die Voraussetzung für die Teilnahme an diesem Praktikum ist die Beherrschung der Programmiersprache Java (und dementsprechend einer Entwicklungsumgebung für diese Sprache). Konkret bedeutet dies nicht nur das Verständnis der Syntax und Semantik von Java, sondern auch der Klassen des Java-SDK (insbes. Collections-Framework und Netzwerk-Funktionalität) und der Fähigkeit zur Einarbeitung in weitere Libraries. Vorkenntnisse der folgenden Veranstaltungen werden vorausgesetzt:
- Vorlesung “Softwaretechnik”
- Softwareentwicklungspraktikum (SEP)
Studierende, die die Prüfung zu Softwaretechnik nicht absolviert haben, können am SWEP trotzdem teilnehmen, wenn sie (a) die Inhalte von SWT kennen (laut eigener Bestätigung) und (b) ein Java-basiertes SEP absolviert haben (also z.B. nicht das Systempraktikum).
Hilfreich sind außerdem:
- Fähigkeit, im Team zu arbeiten (mit git und GitLab)
- Erweiterte IDE-Kenntnisse
- Web-basierte Entwicklung (html, css); Vaadin; SQL; JDBC; JUnit; Mockito
Sprache
Das Praktikum wird auf Deutsch und Englisch angeboten (je nach Team). Die jeweilige Sprache muss in den Team-Treffen mit dem Betreuer (Daily Standups, Sprint Planning, etc.) und in der Entwicklung (Produkt-GUI, Code-Kommentare, Issues, etc.) benutzt werden. Die Sprache geht jedoch nicht in die Bewertung ein.
Da die Sprache der Entwicklungsteams in vielen Firmen heutzutage Englisch ist, können Sie sich so darauf vorbereiten und z.B. das Diskutieren auf Englisch üben.
- Teacher: Dirk Beyer
- Teacher: Matthias Kettl
- Teacher: Philipp Wendler