ODYSSEE

Willkommen bei ODYSSEE, der automatischen Teameinteilung für "Praxis der Softwareentwicklung" am KIT.

Was ist ODYSSEE?

ODYSSEE ist die rechnergestützte Verwaltung der Veranstaltung Praxis der Softwareentwicklung (PSE). Es steht für:

Odyssee
Distributes
Your
Students (to)
Software
Engineering
Exercises

Wenn Sie dieses Semester an PSE teilnehmen möchten, müssen Sie sich hier registrieren. Anschließend können Sie die verfügbaren Projekte ansehen und bewerten. Außerdem können Sie sich mit Kommilitonen zu Gruppen zusammenschließen, wenn Sie ein Projekt gerne gemeinsam bearbeiten möchten.
Danach wird unter Berücksichtigung Ihrer Wünsche und weiterer Nebenbedingungen die bestmögliche Zuteilung aller Anmeldungen zu den Projekten berechnet. Sobald diese Einteilung abgeschlossen ist, wird ODYSSEE Ihnen eine E-Mail senden, die Sie über Ihr zugewiesenes Projekt informiert. Sie können diese Information auch sehen, wenn Sie sich wieder in ODYSSEE einloggen.

Weitere Informationen zu den angebotenen Projekten erhalten Sie in der Auftaktveranstaltung. Denken Sie bitte auch daran, sich im Campus-System für das PSE, d.h. die TSE- und die PSE-Prüfung, anzumelden.

Ihr PSE PSE Winter 2026/27

Anmeldebeginn Montag, 2. November 2026 17:30
Anmeldeschluss Dienstag, 3. November 2026 23:59
Link zur offiziellen PSE-Website. Mail an die Organisatoren.

Projekte

Hinweis: Klicken Sie auf einen Projekttitel, um weitere Informationen anzuzeigen.

KASTEL Reussner/Koziolek

  • Entwickelt eine Android-Anwendung nach eigener Idee!
  • Begleitende Projektunterstützung durch das Betreuendenteam
  • Programmiersprache: Java oder Kotlin
  • This PSE project implements an image translation post-editing tool that enables users to refine and correct the output of an OCR-based translation pipeline. The software allows importing bounding boxes (e.g., from OCR logs) and provides flexible drawing options, including placing translated text with different rotations to match the original layout. It also supports correcting OCR-recognized text and translations directly within the interface. Additionally, users can switch between different viewing modes, such as the original image and the translated version, and iteratively adjust each step of the pipeline for improved accuracy and visual quality.

    This project can be done either in English or German. 
    It is supposed to be an agile project.

    We plan to develop a scheduling system that coordinates access to charging stations for a neighborhood. This addresses a real-world problem in "Gredler-Areal". In this area, a battery may be installed that stores the excess photovoltaic energy of the district that cannot be fed into the main energy grid. The battery would be paired with a charging station for electric vehicles. The number of electric vehicles is increasing while upgrading the existing energy grid is expensive. Not everybody can charge their electric vehicle at the same time after coming home from work.
    The project consists of two major components. A shared calendar where residents can enter their preferred dates and the amount of energy they need and the scheduler that coordinates charging times using additional data like weather forecasts, battery state of charge, energy prices, and more. Crucially, the scheduler must generate fair schedules, and users must be able to understand exactly how their personalized schedule was determinded.
    • Programming languages: TypeScript (frontend), Python or Rust (backend)
    • Developement of a Progressive Web App
    • Project language: German or English

    IAR Beyerer/IOSB

    DIGITALE ZWILLINGE – EINE VIRTUELLE REPRÄSENTATION PHYSISCHER RESSOURCEN

    Digitale Zwillinge spiegeln das Verhalten und die Eigenschaften physischer Ressourcen in Echtzeit wider und sind damit ein integraler Bestandteil der Umsetzung von Industrie 4.0. Sie können beispielsweise genutzt werden, um:

    • Produktionslinien und -prozesse in Echtzeit zu optimieren und an individuelle Produkte anzupassen,
    • Transparenz in Lieferketten zu schaffen,
    • den CO₂-Fußabdruck industriell gefertigter Produkte zu berechnen.


    DIE ASSET ADMINISTRATION SHELL (AAS) – EIN STANDARDISIERTES FORMAT FÜR DIGITALE ZWILLINGE

    Um digitale Zwillinge effizient in der Industrie zu nutzen, müssen sie über System- und Unternehmensgrenzen hinweg austauschbar und interpretierbar sein – dies ermöglicht die AAS. Allerdings stellt das Format hohe Anforderungen an die Modellierung von und die Interaktion mit digitalen Zwillingen.


    AUFGABENSTELLUNG

    Entwicklung einer nutzerfreundlichen Webanwendung zur Beantwortung von Fragen zu digitalen Zwillingen. Die Anwendung kombiniert ein intuitives Frontend mit einer einfachen RAG-basierten KI-Komponente, um Fragen zur AAS-Spezifikation zu beantworten und sowohl Expert:innen als auch Nicht-Expert:innen bei der Modellierung digitaler Zwillinge zu unterstützen. Darüber hinaus sollen mithilfe von Sprachmodellen Abfragen aus natürlichsprachlichen Eingaben generiert, validiert, ausgeführt und bei Bedarf automatisch verbessert werden.

    Dabei sollen unter anderem folgende Use Cases unterstützt werden:

    • Vereinfachung komplexer Spezifikationen zur besseren Zugänglichkeit für Nicht-Expert:innen
    • Kommunikation mit einem öffentlichen Repository über eine REST-API


    ANZUWENDENDE TECHNOLOGIEN

    • AAS-basierte digitale Zwillinge (Beispiele liegen vor und müssen nicht erstellt werden)
    • REST-API zur Kommunikation mit der AAS mittels FA³ST Service und FA³ST Client
    • React-Frontend (TypeScript) zur Visualisierung von Beziehungen
    • Retrieval-Augmented Generation (RAG) zur KI-gestützten Beantwortung von Fragen

    Das PSE-Projekt SYNIV entwickelt eine Software zur Erstellung realistischer, synthetischer Szenen für die intelligente Videoauswertung. Öffentliche Orte wie Bahnhöfe, Marktplätze oder Konzerte können mit virtuellen Personen, Aktivitäten und Bewegungen zum Leben erweckt werden.

    Aufgabe: Entwicklung intuitiver und skalierbarer Annotationstools
    • Interaktive Konfiguration und Simulation öffentlicher 3D-Szenen
    • Vielfältige virtuelle Personen und Aktivitäten erzeugen
    • Bewegungen über Prompts, Pfade und Constraints steuern
    • Austauschbare KI-Modelle zur Bewegungsgenerierung integrieren
    • Virtuelle Kameras frei platzieren und konfigurieren
    • 2D-/3D-Skelettdaten und Aktivitätsannotationen erzeugen
    • Annotierte Szenen und Videodaten exportieren
    Technologien: 
    Godot · C# · Python · ARDY · Anny · Generative AI · 3D Simulation

    Um die Zuverlässigkeit und Robustheit eines komplexen Robotersystems sicherzustellen, ist eine systematische Erkennung und Analyse von Fehlerfällen besonders relevant. Da ArmarX ein verteiltes System mit zahlreichen interagierenden Komponenten ist, gestaltet sich die Fehleranalyse oft zeitaufwändig: Welche Komponente einen Fehler verursacht hat, ist selten direkt ersichtlich, die relevanten Logs sind über viele Prozesse verteilt, und die Übertragung eines beobachteten Fehlers in einen nachvollziehbaren Bug-Report erfolgt bislang manuell.

    Das Ziel dieses PSE-Projekts ist die Entwicklung eines agentischen Analyse- und Wartungssystems für das Robotersoftware-Framework ArmarX. Im Zentrum stehen zwei Kernfunktionen: die automatisierte Fehleranalyse von Roboterausführungen durch LLM-basierte Agenten und ein einheitliches, strukturiertes Fehlerberichtsformat, das in einer grafischen Benutzeroberfläche (GUI) visualisiert und von dort in den Entwicklungsprozess zurückgespielt wird.

    Kernfunktionen

    • Erfassung von Systemzuständen: Protokollierung von Fehlerfällen, Systemabstürzen und Komponentenzuständen während einer Roboterausführung, inklusive des Workspace-Zustands (verwendete ArmarX-Pakete mit Commits und Branches), sodass jeder Fehler eindeutig einem Softwarestand zugeordnet werden kann.
    • Strukturiertes Fehlerberichtsformat: Ein vordefiniertes Berichtsformat, das betroffene Komponenten, zeitlichen Verlauf, relevante Logauszüge, Workspace-Zustand, Ursachenhypothesen und Reproduktionsschritte umfasst. Berichte können sowohl von Benutzern als auch von Agenten erstellt werden.
    • LLM-basierte Fehleranalyse: Ein Agent wertet die erfassten Logs und Systemzustände aus, fasst den Fehlerverlauf zusammen, grenzt die vermutlich verursachende Komponente ein und erzeugt daraus einen vorausgefüllten Fehlerbericht im vordefinierten Format. Die Hypothesen des Agenten werden in der GUI dargestellt und können vom Benutzer bestätigt, korrigiert oder ergänzt werden.
    • Agentenschnittstelle: Eine Python-API, über die Agenten Analysen anstoßen, Logs und Systemzustände abfragen und Berichte einreichen können. Die API wird zusätzlich als Model-Context-Protocol-Server (MCP) exponiert, sodass externe KI-Agenten (z. B. Coding-Assistenten) das System direkt als Werkzeug nutzen können.
    • Grafische Benutzeroberfläche: Visualisierung von Fehlerberichten (Komponentenbeteiligung, Zeitverlauf, Logs), Verwaltung erfasster Ausführungen sowie grafischer Vergleich der Workspace-Zustände zweier Ausführungen oder Berichte, um neu aufgetretene oder behobene Fehler mit konkreten Änderungen in Verbindung zu bringen.
    • GitLab-Integration: Erstellung von GitLab-Issues aus Fehlerberichten, inklusive Erkennung bereits bekannter Fehler (Kommentar am bestehenden Issue statt Duplikat) und Rückverfolgung vom Issue zum zugrunde liegenden Bericht.

    Erweiterungen

    • Definition, Verwaltung und Ausführung von Testszenarien zur strukturierten und reproduzierbaren Überprüfung des Systemverhaltens, inklusive spontan erstellter Testfälle
    • Chaos Engineering in der Simulation, um die Robustheit des Systems gegenüber zufälligen Fehlern und Verbindungsabbrüchen quantitativ zu testen
    • Automatischer Start von Analyseläufen aus GitLab-Pipelines, z. B. bei Merge Requests auf den Roboter-Workspace

    Um dies zu erreichen, wird das Projekt die bestehende Infrastruktur erweitern, um das Erfassen relevanter Systemzustände und Logs sowie die Anbindung an GitLab und an LLM-Dienste zu unterstützen. Die Software wird als Standalone GUI mit Agentenschnittstelle implementiert und nutzt dabei die bestehende Infrastruktur des ArmarX-Frameworks.

    Das Projekt zielt darauf ab, das Analyse- und Wartungsframework zu verbessern, um:

    • die Identifikation fehlerverursachender Komponenten in einem verteilten System durch KI-gestützte Analyse zu beschleunigen
    • den Weg vom beobachteten Fehler zum dokumentierten, reproduzierbaren GitLab-Issue weitgehend zu automatisieren
    • die Robustheit und Zuverlässigkeit von ArmarX durch nachvollziehbare Fehlerberichte und reproduzierbare Testszenarien nachhaltig zu erhöhen

    Das Projekt kann auf Deutsch oder Englisch betreut werden.

    Description:​
    The goal of the project is to develop a system for booking laboratory equipment such as robots, laboratories, measuring equipment, and more.​
    In a research laboratory, many people share a limited number of resources, including robotic platforms, motion capture rooms, sensors, and computers. Coordination is currently often handled via email, calendar tools, Excel lists, or spontaneous agreements. Existing booking tools are frequently cumbersome and require too many steps because they are not designed for the specific complexity of a research laboratory.​
    Unlike traditional booking systems, the focus here is on combination bookings for various equipment. Availability periods should be clearly displayed, especially the availability periods for any combination of equipment and rooms, so that experiments can be prepared. Data structures should be chosen with the goal of low-traffic operation and a focus on maintainability.​
    Main components of the project include:​
    - A clear web interface for selecting the required equipment​
    - A clear display of availability/booking periods​
    - A background approval process, including a display of the current approval status​
    - A streamlined, easily maintainable software base with data structures for equipment and booking areasQR codes QR-Codes for rooms and hardware to enable quick booking, check-in, and check-out, especially (but not exclusively) on-site​
    - Integration with KIT Active Directory and email systems​
    Concrete technology decisions will be made at the beginning of the project.​

    Description:​
    We get a lot of applications for Bachelor- and Master Theses or HiWi positions on a variety of topics.​
    We currently have a form that is manually managed, but that also means that someone needs to manually distribute these applications, assign them, review them, and when time is tight, things might fall by the wayside, people get ghosted and the experience is overall pretty mid for all sides.​
    We therefore would like to build a bespoke system that for the student side looks very similar compared to what we have right now, but especially in the backend allows for assigning topics to lab members, confirmation e-mails of successful registration of an e-mails and allows for straightforward review and acceptance of students, as well as a straightforward way of informing people if their application cannot be considered (something that as of now realistically is managed by ghosting students, the only practically solution, but unpleasant for everyone involved.)​
    Main components of the project include:​
    - A form management system that allows the configuration of new forms easily​
    - A form display to people accessing it from the outside​
    - User management especially in terms of access to applications​
    - A streamlined, easily maintainable software base with minimal dependencies for simple operation​
    - Integration with KIT Active Directory as well as Captcha solutions to avoid spam, on a per-form basis​
    ​
    Concrete technology decisions will be made at the beginning of the project.​

    IMKTRO Marioth

    Dieses Projekt hat das Ziel ein robustes, effizientes und nachhaltiges System zur interaktiven Webvisualisierung von Wetter- und Klimadaten zu entwickeln. Dabei werden offen verfügbare Modelldaten des Deutschen Wetterdienstes (DWD, https://opendata.dwd.de/) verarbeitet und anschaulich dargestellt.

    Die Aufgaben werden unter anderem darin bestehen:

    -          den Datenbankzugriff über eine VM einzurichten, die sicher auf die DWD-OpenData-Datenbank zugreift und die Daten automatisiert herunterlädt,

    -          die Datenverarbeitung des bestehenden Codes (in Python) zu parallelisieren und zu optimieren für eine schnellere Datenverarbeitung

    -          der Entwurf und die Umsetzung interaktiver Visualisierungen sowie

    -          die Entwicklung einer intuitiven Weboberfläche, die Nutzerinteraktionen ermöglicht.

     

    Weitere Aufgaben, um das System nachhaltig zu machen, sind:

    -             - Automatisierung: Datenupdate-Zyklen (z. B. täglich) sollen vollautomatisiert ablaufen, um aktuelle Daten bereitzustellen.

    -             - Wartbarkeit: Modularer Aufbau des Systems, um einfache Erweiterungen (z. B. neue Datenquellen, Visualisierungen) zu ermöglichen.

     

    Meteorologische Vorkenntnisse sind nicht erforderlich, Interesse an Klima- Wetterphänomenen, zukünftige Klimaentwicklung und Klimamodellen ist wünschenswert.

    Der geplante Temin für ein erstes Treffen ist der 5.11.26 zwischen 10:30 und 13:00. Die genaue Uhrzeit kann innerhalb dieses Zeitfensters flexibel vereinbart werden.

    Englisch

    Internal peer review in our research group is usually managed through shared Google Sheets and emails. That quickly becomes cumbersome as the number of papers and reviewers grows, requires notifying colleagues by hand, and is tedious for authors and reviewers alike. This project aims to build an easy-to-use web platform with a clear workflow: researchers submit a paper, poster or proposal, request reviews from their peers, collect the finished reviews, and use the feedback to improve their submission. The platform will be built with Java and Spring on the backend and a modern web frontend in React or Angular, with Electron as an option for a desktop client.

    This project focuses on developing a mobile benchmarking framework to evaluate the real-world performance of machine learning (ML) and large language models (LLMs) on smartphones. While most AI models are evaluated on server-class hardware, their behavior on mobile devices is significantly constrained by limited memory, power budgets, and thermal conditions.The project aims to analyze how different models perform under on-device conditions by measuring key system-level metrics such as latency, throughput, RAM usage, energy consumption, battery impact, and thermal stability. The study will include both classical ML models and compact LLMs, along with optimized variants such as quantized models. The outcome will be a reproducible benchmarking pipeline and a comprehensive analysis of efficiency–performance tradeoffs, enabling informed decisions for deploying AI models in resource-constrained environments.


    Objectives

    1. Design and implement a benchmarking framework for on-device ML and LLM inference  
    2. Evaluate models based on performance metrics such as latency, throughput, and load time  
    3. Measure system-level metrics including RAM usage, CPU utilization, energy consumption, and battery drain  
    4. Analyze thermal behavior and performance degradation under sustained workloads  
    5. Compare baseline and optimized models (e.g., quantized variants) to study efficiency tradeoffs  
    6. Provide guidelines for selecting suitable models for mobile deployment

    Programming Languages

    • Python (model preparation, analysis)  
    • Kotlin / Java (Android app development)

    English version below:

    Ziel des PSE ist es, eine Webanwendung zu entwickeln, um Forschende bei der Erstellung von Datensätzen zu unterstützen. Nutzende sollen sich interaktiv Zufallsgraphen generieren lassen können, um den Einfluss verschiedener Generierungsparameter einschätzen zu können. Außerdem soll es möglich sein, Graphen aus verschiedenen externen Datenquellen einzubinden, was den Umgang mit verschiedenen Dateiformaten voraussetzt.
    Die erzeugten / geladenen Graphen sollen dann mittels existierender Software eingebettet werden, um den Knoten Positionen zuzuordnen. Diese Ergebnisse sollen in der Anwendung visualisiert werden.
    Zuletzt soll es sowohl möglich sein, Graphen und Zeichnungen herunterzuladen, als auch Parameterbereiche und Generatorkonfigurationen zu exportieren, welche es ermöglichen, die Ergebnisse zu reproduzieren oder im Fall großer Datensätze die Generierung lokal durchzuführen.

    Technische Übersicht:
    Es soll eine Webapp entwickelt werden, welche alle Berechnungen lokal im Browser ausführt. Teile der Pipeline, für welche externe Tools existieren (z. B. Graphgenerierung und Embedding), können entweder von euch via WebAssembly eingebunden oder nach TypeScript portiert werden. Die Wahl der Frameworks / Programmiersprachen ist euch freigestellt, solange sie die Anforderungen erfüllen.

    **English version:**

    The goal of the PSE is to develop a web application that supports researchers in creating graph datasets. Users should be able to interactively generate various random graphs in order to assess the influence of different generation parameters. It should also be possible to import graphs from various external data sources, which requires handling different file formats.
    The generated / loaded graphs should then be embedded using existing software in order to assign positions to the nodes. These results should be visualized in the application.
    Finally, it should be possible both to download graphs and drawings and to export parameter ranges and generator configurations. These exports make it possible to reproduce the results or, for large datasets, to run the generation locally.

    Technical overview:
    The web app should perform all computations locally in the browser. Parts of the pipeline for which external tools exist (e.g. graph generation and embedding) can either be integrated by you via WebAssembly or ported to TypeScript. You are free to choose any frameworks / programming languages, as long as they meet the requirements.

    Wer unterrichtet, kennt das Problem: Wie kommen textbasierte Inhalte effektiv zu den Lernenden? Und das am besten gestaffelt, um nicht zu überfordern, aber ohne ständig neue Arbeitsmaterialien verteilen zu müssen.

    Hier kommt LMSync ins Spiel: ein webbasiertes Lernmanagementsystem (LMS), mit dem in Echtzeit Inhalte ergänzt, gezeigt und nachgelesen werden können. Mit diesem Tool sollen Lehrende zukünftig flexibel Inhalte ergänzen und vorbereitete Materialien dynamisch anzeigen können, sodass Lernende jederzeit darauf zugreifen können.

    Das zu entwickelnde Tool wird dabei auf die Arbeit im Lehr-Lern-Labor Informatik angepasst und berücksichtigt die Anforderungen der Lehrveranstaltungen der Arbeitsgruppe für Informatik und ihre Didaktik.

    Ziel des Projektes ist die Planung und Entwicklung einer Webapp die als Datenbank- und Visualisierungstool für Komplexitätstheoretische Reduktion zwischen verschiedenen Problemen (vgl. TGI, eine Reduktion transformiert hierbei eine Instanz von Problem A zu einer lösungsäquivalenten Instanz von Problem B. Fine-Grained Reductions [1] ermöglichen hier eine feiner Unterscheidung als P vs NP).

    Die Grundfunktionalität der Software soll das Erfassen von Probleme und Reduktionen zwischen diesen ermöglichen, sowie deren Eigenschaften (i.e. Laufzeit, Literatur-Referenz, Problem/Reduktionstyp), 
    das resultierende Netzwerk visualisieren und filtern sowie Nutzer verwalten. Zusätzlich soll Access-Control für das Hinzufügen und Bearbeiten von Problemen/Reduktionen möglich sein. 
    Es soll zudem die Möglichkeit spezifischer Anfragen auf den Graphdaten geben (i.e. kürzester Reduktionspfad von Problem A zu Problem B).

    Das Projekt soll klassisch mit Server/Client-Struktur entwickelt werden - die Oberfläche soll responsiv, interaktiv und möglichst intuitiv gestaltet werden, das Backend als REST-API.
    Der Techstack hierbei ist weitgehend eine Empfehlung: 
    • React/Vite Stack für Frontend
    • REST-Backend mit ExpressJS + Postgres-DB
    • Docker für Deployment

    Das Projekt setzt grundlegendes Wissen vorraus, benötigt aber kein tieferes Verständnis von Fine-Grained Komplexitätstheorie.

    [1] https://en.wikipedia.org/wiki/Fine-grained_reduction

    How much warmer will our planet get, and what will that mean for heatwaves, droughts and floods? Climate models are our most important tool for answering these questions. Yet they still disagree, largely because key processes such as clouds are too small to be simulated directly and are approximated by simplified, hand-tuned formulas.

    Machine learning is now transforming this field: neural networks already forecast the weather as accurately as the best traditional models. Yet to project a future climate that no dataset contains, we still need the laws of physics. One of the most exciting research directions therefore combines both. The key is to make a physical model differentiable: for every result, we can compute how it would change if any part of the model changed. Such a model can be trained on data just like a neural network and learn what the hand-tuned formulas miss. Google's NeuralGCM (neural general circulation model), published in Nature in 2024, showed how powerful this idea can be.

    In this project you build such a model of Earth's atmosphere yourselves, from scratch. You will watch winds, waves and swirling storms emerge from equations you turn into code, let neural networks learn inside it, and design clean, modular, thoroughly tested software, right at the frontier of climate science and artificial intelligence.

    Type of system: a Python library with a command-line interface that simulates Earth's atmosphere. It is modular and differentiable, and comes with visualization and an automated test suite.

    Programming language: Python.

    Required frameworks and libraries: PyTorch.

    Desired interests: climate, machine learning, scientific computing, clean and well-tested software, and physics. No prior knowledge of any of these is needed: we start from zero.

    ITI Sanders

    In diesem PSE-Projekt implementiert ihr eine Mehrspieler-Variante des Spiels Racetrack (https://de.wikipedia.org/wiki/Racetrack).


    Gespielt wird auf einer Rennstrecke, die auf Karopapier gezeichnet ist. Die Autos sind Punkte auf dem Gitter, und jedes hat einen Geschwindigkeitsvektor.
    Weil die Autos träge sind, darf man in jedem Zug jede Komponente dieses Vektors nur um höchstens eine Einheit ändern. Deshalb ist die kürzeste Strecke nicht unbedingt die schnellste Route.

    Anforderungen und Ziele:
      - Mehrspieler im LAN: Ein Rechner hostet, die anderen treten bei und spielen rundenbasiert gegeneinander.
      - Bot-Gegner: Ihr implementiert eigene Bots, die mit verschiedenen Strategien (z. B. BFS, A*, Heuristiken) Routen über die Strecke finden.
      - Karteneditor: Mit einem Editor lassen sich eigene Rennstrecken erstellen.
      - Eigene Ideen: z. B. Streckengenerator, Nebel, Windböen oder Power-ups

    Technik: Java, C++ oder Python; Desktop-Anwendung oder Browser
    Vorkenntnisse: Interesse an Algorithmik

    Much of the Internet and the world's software infrastructure depends on libraries and repositories maintained by 1 person, or very few people. Several of these have been targets of attacks that sneak in malware or backdoors that could compromise millions of systems, perhaps most famously the "xz utils" backdoor in 2024. It was only discovered in time because someone happened to be very precisely benchmarking something and happened to notice the package's performance degrading.

    Your task: Build a contributor analysis tool
    The tool should help collate information about contributors to a repository and assist in flagging suspicious commits and users. 
    These could include 
    • obfuscated code
    • modifications to normally untouched code
    • changes committed at strange times of the day / holidays
    • Issues/Pull Requests being vocally supported by newly created and otherwise empty users

    If https://xkcd.com/2347/ is a familiar sight to you, you might enjoy working on this project.

    Incremental computations react to input changes rather than recomputing their result from scratch, which is known to deliver asymptotic speedups in theory and order-of-magnitude speedups in practice.
    One effective way to incrementalize programs is to compose differential operators. Where a regular function transforms an input type to an output type, a differential operator transforms a description of a change to the input into a description of the change to the output.
    This PSE project develops a web-based graphical interface for building incremental programs out of differential operators and observing their execution. This graphical interface enables users to select differential operators from a standard library, compose operators through expressive combinators, and inspect the execution details of a differential operator pipeline. The user will be able to see the propagation and transformation of changes at different stages of the program to better understand the execution.

    Hintergrund
    Refinement Types sind Typen, die bestimmte Eigenschaften einer Variablen beschreiben.
    Man kann z. B. eine Liste als @MinLength(1) List typisieren und sich vom Compiler vergewissern lassen, dass diese Länge immer eingehalten wird.
    Kukicha (https://github.com/flo2702/property-checker) ist eine Refinement-Typchecker für Java.
    Ein symbolischer Debugger visualisiert erreichte Typkontexte/Breakpoints in einer GUI mit einem interaktiven Kontrollflussgraphen.

    Mehr Hintergrund und Beispiele in den beiliegenden Folien.

    Ihre Aufgabe
    Schreiben Sie einen symbolischen Debugger als Plugin für einen existierenden Refinement-Typchecker für Java.
    Als Programmiersprache soll Java oder eine andere JVM-Sprache verwendet werden. Kukicha kann über eine API eingebunden werden.

    Früher war Passwortverwaltung local-only: Passwortmanager haben die Daten zum Beispiel im lokalen Browser gespeichert und nicht synchronisiert, oder man speichert Passwörter im Kopf oder auf Klebezetteln.
    Heute ist Passwortverwaltung typischerweise ein weiterer Cloud-only-Dienst, den man entweder mit monatlichen Abogebühren oder mit den eigenen Daten bezahlt.
    Aber was passiert eigentlich mit euren Daten, wenn die Cloud nicht verfügbar ist, euch das Abo kündigt, oder Trump einfach schlecht geschlafen hat?
    Warum sind euer Handy und euer Tablet, die beide vor euch auf dem Tisch in Karlsruhe liegen, zur Synchronisation von ein paar hundert Passwörtern auf USA-ansässige Cloudanbieter angewiesen?
    Könnten die das nicht selbst?
    Natürlich! …wenn ihr ihnen auf die Sprünge helft, und das ist genau das Ziel dieses PSE-Projekts.

    Ziel:

    Ergebnis dieses PSE-Projekts ist eine Webanwendung zur Passwortverwaltung. Die dahinterliegende Passwort-Datenbank soll sowohl vollständig lokal auf eurem Gerät liegen, als auch sich zwischen all euren anderen Geräten replizieren.
    Eure Anwendung soll dabei die Local-First-Prinzipien ("The past, present, and future of local-first" / "Local-first software: You own your data, in spite of the cloud") umsetzen.
    Die lokalen Kopien auf euren Geräten sind also keine Caches von einem zentralen Backend / Server, sondern jedes Gerät ist gleichberechtigt.
    Passwörter können auch offline beliebig editiert werden, und trotzdem werden sobald das Gerät wieder online ist alle Konflikte automatisch ohne manuelles Eingreifen gelöst.
    Je nach Interessenlage kann die Anwendung dann z.B. in Richtung Verschlüsselung, einem kollaborativem Passwort-Safe für die Wohngemeinschaft, oder Synchronisierung über alternative Kommukationswege (Bluetooth, Peer-to-Peer, Brieftaube, …) erweitert werden.


    Vorgaben:

    • Webanwendung auf Basis von React / Svelte in TypeScript, HTML, und CSS
    • Datenreplikation nach Local-First-Prinzipien auf Basis von Automerge


    Interessen:
    • Verteilte und dezentrale Systeme
    • Informationssicherheit
    • Local-First


    Ansprechpartner:innen

    • Patrick Spiesberger, Mail: patrick.spiesberger@kit.edu / Matrix: @lo2977:kit.edu
    • Florian Jacob, Mail: florian.jacob@kit.edu / Matrix: bh7953@kit.edu
    • Matthias Grundmann, Mail: matthias.grundmann@kit.edu / Matrix: @lm4302:kit.edu

    KASTEL Mirandola

    Englisch

    Autonomous delivery robots in the city


    Simulate a fleet of delivery robots bringing parcels from shops to the doorstep

    Wo ist mein Tutorium? Wo findet die mündliche Prüfung statt? Wo sitzt mein/e Abschlussarbeitsbetreuer/in?

    Nur eine einfache Raumnummer zu haben, ist häufig ein echter Krampf, weil man durchs halbe Gebäude gehen muss, um den Raum endlich mal gefunden zu haben. Noch schlimmer wird's, wenn dazu noch die Räume nicht fortlaufend nummeriert werden. Jährlich fangen tausende neue Studis am KIT an und jede/r von ihnen wird genau dieses Problem haben. Warum gibt es nicht schon längst die Möglichkeit im Campussystem auf den Raum zu klicken, um diesen einfach zu finden?

    Ziel dieses Projekts ist es endlich eine Webanwendung zu haben, die einem nicht nur das Gebäude zeigt (wie der Campusplan), sondern auch den Weg zu einem bestimmten Raum. Dafür müssen zwei Komponenten entwickelt werden: die Hauptanwendung, die auf Webseiten eingebunden werden kann, und ein Tool zum zügigen Modellieren von Gebäuden.

    Die konkrete Darstellung innerhalb eines Gebäudes ist nicht vorgeschrieben, solange diese hilft obiges Problem zu lösen.


    Anforderungen an die Hauptanwendung:
    • gut in andere Websites einbindbar (auch automatische Auflösung von Bezeichnungen wie "CS50.34 265")
    • light-weight, keine zu großen Bibliotheken verwenden und usability wichtig
    • Kartendarstellung mit OSM (openstreet maps)
    • Programmiersprache "frei" wählbar (Webanwendung). Falls JavaScript gewollt, dann mindestens TypeScript mit ordentlicher Typisierung.
    • Darstellung der Gebäude "von innen" (Umsetzung relativ offen) inklusive Wege von Haupteingängen zu jeweiligen Räumen
    • ggf. rollstuhlgerechte Wege (mit Auswahl per Checkbox) darstellen für bessere Mobilitätsmöglichkeiten für geh-eingeschränkte Menschen

    Anforderungen an die Modellierungsanwendung
    • möglichst einfache Modellierung von Gebäuden durch einen Admin und Serialisierung des Modells fürs Einlesen durch Hauptanwendung
    • keine großen Ansprüche an Optik und Geschwindigkeit
    • Programmiersprache wie auch Bibliotheken frei wählbar

    Je nach Auslegung der obigen Anforderungen kann das Projekt sehr ausufern, was nicht gewollt ist. Deshalb müssen sich die Teams überlegen, welche Darstellungsarten überhaupt sinnvoll sind und wie detailliert Gebäude modelliert werden sollten.

    • Problem: Ladeplanung bei Reisen oder im Alltag mit E-Fahrzeugen aufwendig aufgrund heterogener Ladesäulenlandschaft (viele unterschiedliche Provider)
    • Lösung: Web-basiertes Werkzeug zur Planung wann und wo geladen werden sollte, um alle angegebenen Termine einzuhalten und die Ladekosten zu minimieren
    • Ansatz: Optimierung von Routen und Ladezeiten, basierend auf Zeitbedingungen und Kosten
    • Tasks/ Umsetzung:
    • Frontend (Web)
    • HTML/CSS
    • + Framework nach Wahl
    • Backend-Funktionalität
    • Objektorientiert
    • z.B. Java, C++, Rust
    • Docker-Ready Deployment

    KASTEL Schaefer

    • Idee:
    • Rechner aus der Distanz bedienen
    • Eingabegeräte (Tastatur, Maus) fernsteuern
    • Anwendung:
    • Medienwiedergabe steuern (Single-Tenancy)
    • Controller für Spiele (Multi-Tenancy)
    • Pong, Snake, Tetris
    • Eigene Spielideen
    • Einfacher Verbindungsaufbau
    • Echtzeit-Steuerung
    • Tasks:
    • Frontend (App)
    • Framework nach Wahl
    • Backend-Funktionalität
    • Objektorientiert
    • z.B. Java, C++, Rust
    • Docker-Ready Deployment

    Hintergrund

    Die Anonymisierung biometrischer Daten (Gesichtsbildern, Gangdaten, etc...) ist ein aktuelles Forschungsfeld mit hoher praktischer Relevanz: Einerseits sollen personenbezogene Daten geschützt und DSGVO-konform verarbeitet werden, andererseits sollen anonymisierte Daten für nachfolgende Aufgaben (z. B. Training von Machine-Learning-Modellen) möglichst nutzbar bleiben. In den vergangenen Jahren wurde eine Vielzahl von Anonymisierungstechniken vorgeschlagen, deren Evaluierung jedoch häufig auf unterschiedlichen Methoden, Datensätzen und Metriken beruht. Dadurch sind Ergebnisse einzelner Arbeiten schwer vergleichbar, und die tatsächliche Schutzwirkung von Anonymisierungen wird oft überschätzt.

    Aus diesen Erkenntnissen entstand SEBA (Strong Evaluation for Biometric Anonymization, https://github.com/kit-ps/seba), ein Framework zur Bewertung von Anonymisierungstechniken für biometrische Daten. SEBA bietet eine einheitliche Schnittstelle für die Evaluierung sowohl der Privatsphäre (Privacy) als auch der Nützlichkeit (Utility) von Anonymisierungen und ermöglicht dadurch eine bessere Vergleichbarkeit verschiedener Verfahren. Mit dem Wachstum des Frameworks und der Zahl integrierter Komponenten (Recognitionsysteme, Anonymisierungsverfahren, Datensatzformate) ist jedoch eine Überarbeitung der Architektur erforderlich. Externe Quelltexte und Bibliotheken müssen robust verwaltet werden, die Reproduzierbarkeit der Ergebnisse muss sichergestellt werden, und der Funktionsumfang soll um weitere Messgrößen und Datenformate erweitert werden. An dieser Stelle soll dieses Projekt ansetzen.

    Was soll das Programm können?

    Ziel des Projektes ist ein Re-Design des bestehenden SEBA-Frameworks, das die Evaluierung von Anonymisierungstechniken für biometrische Daten vereinheitlicht und erleichtert. Das Framework wird als Python-Anwendung mit einer Kommandozeilen-Schnittstelle (CLI) realisiert und basiert im Wesentlichen auf den Bibliotheken PyTorch, Numpy und Matplotlib.

    Zentrale Herausforderung des Re-Designs ist ein robustes Dependency-Management für externe Komponenten wie Anonymisierungsverfahren, Recognitionsysteme und externe Bibliotheken. Diese sollen in einer einheitlichen, leicht erweiterbaren Schnittstelle gekapselt werden, sodass neue Verfahren mit geringem Aufwand integriert werden können, ohne den Kern des Frameworks zu verändern. Ebenso wichtig ist die Reproduzierbarkeit und Vergleichbarkeit der Evaluationsergebnisse: Konfigurationen, Seeds und Umgebungen sollen so dokumentiert und versioniert werden, dass Ergebnisse jederzeit nachvollziehbar und vergleichbar bleiben.

    Über die bestehende Bewertung von Privacy und Utility hinaus sollen Laufzeitmessungen der Anonymisierungsverfahren ergänzt werden, um auch die praktische Effizienz der Verfahren vergleichbar zu machen. Zudem soll die Unterstützung von Datensatzformaten erweitert werden, etwa um Parquet-Dateien, wobei das bestehende ältere Datensatzformat weiterhin unterstützt wird. Schließlich soll das Framework leicht zu installieren und zu verwenden sein, um den Einstieg für neue Nutzer:innen und die Nutzung in weiteren Forschungsprojekten zu erleichtern.

    Anwendung

    Das Ergebnis dieses Projektes soll die Grundlage für die weitere Entwicklung und Nutzung von SEBA in der Forschung zur Anonymisierung biometrischer Daten bilden. Mit dem überarbeiteten Framework lassen sich Anonymisierungstechniken systematisch, reproduzierbar und vergleichbar evaluieren, sowohl hinsichtlich ihrer Schutzwirkung als auch hinsichtlich der Nützlichkeit und Effizienz der anonymisierten Daten. Dadurch kann künftig zuverlässiger beurteilt werden, welche Verfahren einen tatsächlichen Beitrag zum Datenschutz leisten, und neue Verfahren sowie weitere Datensatzformate lassen sich mit geringem Aufwand in bestehende Evaluationen integrieren. Das Projekt soll als OpenSource (MIT Lizenz) Projekt auf Github veröffentlicht werden.

    The modern world runs on collaborations, and collaborative tools are highly important. The volume of information and the pace at which it appears keep growing every day, making it extremely difficult to keep track of all the updates. 

    This PSE project suggests to develop an AI digest agent which could support two user stories (2nd is optional):


    US1: As a technical manager, I want to keep track of updates across different work packages (all or a selected subset of WPs) in a research project so that I can better understand progress and plan the work of my team.


    US2: As a dissemination specialist, I want to automate a draft newsletter highlighting the most important progress items over e.g. last month so that I can spend less time in preparing such a letter for sharing with the community. (could-have)


    We need a convenient and user-friendly agent-based solution which:

    • Can access cloud-hosted documents (read-only) (e.g. Google drive (preferred), Nextcloud. Only one is a must-have).

    • Can analyze a selected/predefined subset of documents.

    • Summarizes relevant updates for a selected time period and task.

    • Items in the summarisation result should link to their source document (so the reviewers can easily spot hallucinations)

    • Is designed in a secure and reliable way, e.g. can’t modify or delete existing documents, no leakage of information is allowed etc

    • An agent implemented as “chat + tools calling” is accepted as MVP for on-demand digest generation.


    Under the hood there will be use of:

    • An agentic framework like pydantic.ai

    • LLMs, various APIs

    • Application containerization and deployment

    • Continuous Integration pipeline based on e.g. Jenkins / github actions

    • Code documentation, software testing

    • Modern AAI, which is based on OIDC.

    • Human-in-the-Loop to verify the quality of produced digests (supervisors).

    • Supports tracing and observability during development (e.g., using MLflow) to monitor agent execution, tool calls, errors, and performance.

    Given the rapid progress in AI, the technology stack may evolve, and we welcome students' suggestions.


    We provide support on using cloud, CI/CD, as well as access to the set of open LLMs.


    Supervisors can provide a sample cloud workspace with representative documents. Alternatively, students may use their own PSE-relevant discussions for keeping track of updates :-)

    Prerequisites:

    • Programming in Python, basic software engineering skills

    • Basic knowledge of LLMs and Agents.

    Ziel des Projekts ist, dass Entwicklungsteams Künstliche Intelligenz (KI) nicht individuell, sondern gemeinsam nutzen können. Teammitglieder sollen gemeinsam auf KI-Werkzeuge zugreifen, Ergebnisse diskutieren und Engineering-Artefakte kollaborativ mit Unterstützung von KI erstellen und weiterentwickeln können. 

    Ihre Aufgabe ist die Entwicklung einer Web-Anwendung, welche die KI-gestützte Erstellung und Verfeinerung von Artefakten entlang des Software-Engineering-Prozesses ermöglicht. Dazu gehören beispielsweise Anforderungsartefakte wie Stories, Use Cases, Entwurfsartefakte wie Software-Architekturmodelle und API-Spezifikationen, aber auch die Umsetzung der Analyse- und Entwurfsartefakte in der Implementierung. Die KI soll dabei die Entwickler nicht nur bei der Erstellung von Artefakte unterstützen, sondern auch bestehende Ergebnisse analysieren, verbessern und mit den gegebenen Engineering-Richtlinien (bspw. Namenskonventionen) abgleichen.

    Ein wesentlicher Bestandteil des Projekts ist eine gemeinsame Wissensbasis, die sowohl allgemeines Engineering-Wissen als auch projektspezifische Erkenntnisse enthält. Die Wissensbasis umfasst Richtlinien, Best Practices, Vorlesungsunterlagen in strukturierter Form. Die KI soll dieses Wissen nutzen, um zukünftige Engineering-Aufgaben konsistenter, nachvollziehbarer und qualitativ hochwertiger zu unterstützen.

    Engineering-Entscheidungen im Projekt entstehen häufig in Diskussionen und gehen oftmals später verloren. Die Umgebung soll deshalb die Entstehung von Artefakten, verwendete Prompts sowie wichtige Entscheidungen gezielt dokumentieren. Dadurch wird nachvollziehbar, warum bestimmte Lösungen gewählt wurden und wie sich ein Artefakt im Laufe eines Projekts entwickelt hat. Gleichzeitig entsteht eine Grundlage für die Wiederverwendung von Wissen für die spätere Weiterentwicklung des Projekts.

    Im Projekt werden moderne Technologien aus den Bereichen des Software Engineerings und der Künstlichen Intelligenz eingesetzt. Die Umsetzung erfolgt voraussichtlich überwiegend mit Python, es können jedoch auch andere Programmiersprachen und Technologien eingesetzt werden. GitLab dient zur Verwaltung von Dokumentation, Wissensbasis und Projektergebnissen. KI-Agenten unterstützen die Erstellung und Verfeinerung von Artefakten, greifen auf die Wissensbasis zu und begleiten Entwicklungsteams bei ihren Engineering-Aktivitäten. Das Projekt bietet, neben einem systematischen Engineering, auch die Möglichkeit, praktische Erfahrungen mit Konzepten wie Retrieval-Augmented Generation (RAG), Prompt Engineering und agentenbasierten KI-Systemen zu sammeln.

    Künstliche Intelligenz (KI) kann – richtig eingesetzt – einen wertvollen Beitrag zur gezielten Vertiefung von Bildung und Wissen in unserer Gesellschaft leisten.

    Die SindbotApp verfolgt das Ziel, den Zugang zu vielfältigen Bildungsthemen zu erleichtern. Sie stellt zu den auf einer Bildungsweltkarte erfassten Fächern Prompts bereit, mit denen sich unterschiedliche Themen erkunden und vertiefen lassen. Nutzerinnen und Nutzer können sich durch die Bildungsweltkarte navigieren, interessante Inhalte auswählen und die zugehörigen Prompts ausführen.

    Das zugrunde liegende Konzept basiert auf vier Bildungskontinenten: KULTUR, GESELLSCHAFT, NATUR und TECHNIK. Jeder Kontinent umfasst sieben Fächer, denen verschiedene Bildungsinhalte und Prompts zugeordnet sind.

    Ein Beispiel für einen solchen Prompt lautet: "Recherchiere ein reales Beispiel, bei dem ein KI-System durch Verzerrung oder Halluzination einen nachweisbaren Schaden verursacht hat. Erkläre anschließend, wer nach geltendem Recht dafür haftbar gemacht werden könnte."

    Im Rahmen des Projekts soll die SindbotApp entwickelt und um Funktionen zur Qualitätssicherung und statistischen Auswertung ergänzt werden. Als Programmiersprache kommt Python zum Einsatz.

    Die Web-Anwendung soll auf einer klar strukturierten und gut dokumentierten Drei-Schichten-Architektur basieren. Ein zentraler Bestandteil ist die Visualisierung der Bildungsweltkarte, über die Nutzerinnen und Nutzer intuitiv zu den einzelnen Kontinenten, Fächern und Bildungsinhalten navigieren können.

    Ein weiterer Schwerpunkt liegt auf der Qualitätssicherung der zugrunde liegenden Datenbasis. Dazu sollen automatisierte Prüfungen entwickelt werden, die unter anderem folgende Fragen beantworten:
    - Sind die JSON-Dateien korrekt aufgebaut?
    - Referenzieren die Beziehungen existierende JSON-Objekte?
    - Bestehen sprachliche Fehler in den Texten?
    Die Korrektheit und Konsistenz der Datenbasis soll nach jeder Bearbeitung systematisch überprüft werden können.
    Darüber hinaus sollen statistische Funktionen für den laufenden Betrieb der Anwendung entstehen. Dazu gehören beispielsweise:
        - die Erfassung der Besucherzahlen,
        - die Ermittlung der am häufigsten aufgerufenen JSON-Objekte und Bildungsinhalte,
        - die Auswertung zeitlicher Nutzungsmuster und deren Entwicklung.

    ACHTUNG: Die Treffen finden jeden Mittwoch um 14:00 Uhr statt. Bitte bewerben Sie sich nur für das Projekt, wenn Sie zu diesem Zeitpunkt regelmäßig teilnehmen können.

    Sie sollen ein Tool für die Vorlesung entwickeln.
    In dem Tool soll es für den Dozenten möglich sein, Fragen zum Vorlesungsstoff vor der Vorlesung zu konzipieren und in der Vorlesung den Studenten zu stellen.
    Diese beantworten die Frage auf ihren Endgeräten.
    Nach einer einstellbaren Zeit wird eine Auswertung der Antworten angezeigt, so dass die Antworten diskutiert werden können.
    Es soll möglich sein, die Fragen mit Multimediaobjekten anzureichern.
    Weiterhin sollen die Studenten innerhalb einer Vorlesung gegeneinander spielen und für schnelle und korrekte Antworten Punkte sammeln können.
    Das Starten und Steuern von Vorlesungs-Sessions soll über eine Weboberfläche möglich sein.