Master Courses for the Summer Semester 2024

Central allocation for seminars and practical courses for the summer semester 2024 has ended. If you are interested in places that become available due to deregistrations, please contact the course organisers. They will then contact you if you can still be accepted onto the course.

Affective Computing - Empathic Artificial Intelligence

Affective Computing ist eine Forschungsrichtung innerhalb des großen Felds der Künstlichen Intelligenz sowie der Psychophysiologie und beschäftigt sich mit der automatisierten Erfassung menschlicher Emotionen bzw. mentaler Zustände mit Hilfe von maschinellem Lernen auf Basis optischer, akustischer oder physiologischer Daten. Die große Vision besteht darin, Maschinen nicht nur "smart", sondern auch empathisch zu machen.

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 https://www.marcotm.com 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.; Progammierkenntnise in Python vorteilhaft



Moderne Systeme 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 solcher autonomer Systeme. Wir implementieren Algorithmen zur adaptiven Planung, Optimierung und Koordination sowie Methoden zur Evaluation und Analyse lernender oder heuristischer 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.


Ablauf:
In den ersten fünf Wochen werden Mittwochs die theoretischen Grundlagen vermittelt mit begleitenden praktischen Übungsaufgaben. Die Projektphase startet in der sechsten Woche. Hier arbeiten die Studenten selbstständig in Gruppen an einem gemeinsamen Projekt.

The Master Praktikum in Cryptography explores the relationship between randomness and computation and is based on three interconnected domains, modern cryptography, probabilistic proofs, and pseudorandomness. Participants will gain a comprehensive understanding of the foundational principles and methodologies of cryptography and have the opportunity to engage in the development of cryptographic projects, using the concepts discussed in the lecture.

The course is divided into two parts. In the first part of the course, participants will receive an introduction on modern cryptography, probabilistic proof systems, and pseudorandom generators. Following this, the project phase will commence, with students working in teams of 3. Each team is tasked with delivering a presentation on relevant research articles, implementing a cryptographic project, and taking part in a code review process.

Evaluation will be based on the research, the functionality and security of the application, the effective use of cryptographic concepts and probabilistic proof systems, the robustness of pseudorandomness implementations, and the clarity of documentation.

Participation is limited to 30 master students.


In this practical course, we deal with the topic of deep clustering. This term describes the combination of clustering with concepts from the field of deep learning. Corresponding methods have become popular in recent years and have achieved very good results on image and text data sets.

Clustering describes the task of automatically dividing objects into suitable groups, so-called clusters. Only the similarity between objects is considered, which means that no amount of training data with known labels is required. This is also referred to as unsupervised learning.

The identification of clusters in high-dimensional data sets like images, text, or videos can be very complex as we have to deal with the curse of dimensionality, which describes the phenomenon that samples become more and more similar with an increasing amount of dimensions. For this reason, the clustering task is often accompanied by some kind of feature reduction. Here, we can utilize linear transformations, e.g., PCA, or non-linear transformations, e.g., autoencoders. Non-linear applications are more flexible and, therefore, suitable for more complex clustering tasks. In deep clustering, a deep learning-based representation learning method is supplemented by a specific clustering loss. Such combinations will be studied in the context of this practical.

In the course of the practical, we will first introduce theoretical foundations. Afterward, modern deep clustering algorithms will be implemented and evaluated. Here, we will deal intensively with relevant research publications. The practical assignments should be performed in small groups.

Prerequisites:
- Basic knowledge of deep learning (Autoencoders, GANs, ...)
- Programming knowledge: Python, PyTorch, Git
- Interest in scientific working

Helpful references:
- Deep Clustering Survey 1: https://arxiv.org/pdf/2210.04142.pdf
- Deep Clustering Survey 2: https://arxiv.org/pdf/2206.07579.pdf
- List of Deep Clustering Algorithms: https://github.com/zhoushengisnoob/DeepClustering
- Implementations of Deep Clustering Algorithms: https://github.com/collinleiber/ClustPy

Time : TBD, nach Vereinbarung
Place:
Akademiestr. 7, 1st floor
6 SWS
Language:
English

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, diffusion models etc.


Dieses Praktikum vermittelt die Fähigkeit, Anwedungsfälle aus den Bereichen der Optimierung un 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 (BASF, BMW, SAP und Siemens) werden Aufgabenstellungen mit starker Relevanz für praktische Anwendungen vergeben. Bis zu 24 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.

Diese Veranstaltung findet in Kooperation mit dem BMWK geförderten Projekt QCHALLenge statt.

Time: 12:00-16:00
Place: Oettingenstr. 67, Rooms TBA
4 SWS
Language: English

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 delve into binary code analysis and learn to extract relevant structures and features to apply modern machine learning techniques. The primary task of this praktikum is to identify binary functions across different compiler settings, enabling more robust analysis. To solve this problem, they will have developed their own machine learning-based binary code representations.

Two toolboxes will be shown: the binary analysis toolbox and the machine learning toolbox.

Binary Analysis tools:
- Basics of static and dynamic analysis for binary code
- Intermediate representations of assembly languages
- Dataflow analysis
- Tainting techniques

Machine Learning tools:
- Self-supervised learning tasks
- Natural Language Processing techniques applied to binary code
- Convolutional Networks
- Graph Neural Networks
- Transformers


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

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); Wicket; Vaadin; Java Servlets; Ant; SQL; JDBC; JUnit; Mockito

Entsprechende Vorkenntnisse/besuchte Vorlesungen sollten bei der Zentralanmeldung angegeben werden und werden speziell berücksichtigt!

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.

Time and place: TBD
Nach Vereinbarung
6 SWS
Language: English