Teaching

Current Term

Bachelor Project: FleetGraph — Intelligent Multi-Robot Coordination with 3D Scene Graphs and Social Navigation

Tutors: Carlos Medina and Simon Janzon

Join Our Bachelor Project in Fleet Robotics, AI, and 3D Scene Understanding

Are you ready to build not just one autonomous robot, but an entire team of robots that can understand tasks, coordinate their actions, and operate intelligently in shared environments?

FleetGraph is a hands-on bachelor project combining multi-robot systems, robotics, computer vision, artificial intelligence, web technologies, and 3D scene graphs. You will develop a complete fleet-management platform that receives tasks in plain language, assigns them to suitable robots, monitors their execution in real time, and enables robots to share semantic information about the environment.

What You’ll Build

You will work with a fleet of simulated mobile robots. The system should be able to:

  • Receive tasks such as: “Deliver a package to laboratory 2.”

  • Assign tasks according to robot position, battery, workload, and capabilities.

  • Visualize robots and tasks in a real-time dashboard.

  • Use 3D scene graphs to represent places, obstacles, objects, and people.

  • Support socially aware navigation around people and groups.

  • Share observations between robots to update a common scene representation.

The Challenge: Teaching Robots to Understand Affordances

A robot should not simply choose the shortest path or the closest task. It must consider the current state of the fleet and the social context of the environment.

Your mission is to develop a system that can:

  • Coordinate multiple robots.

  • Recover from robot failures and task reassignment.

  • Use scene graphs for semantic navigation.

  • Share information between robots.

  • Navigate safely in human-populated environments.

  • Evaluate whether semantic and social information improves fleet performance.

The project is suitable for bachelor students interested in robotics, AI, computer vision, software engineering, or web technologies. Previous experience with ROS, robotics, or computer vision is helpful but not required.

The course may be held in English and runs for one semester. The number of places is limited to 12 places (initially), and participation in the kick-off meeting is mandatory.

The information about the kick-off meeting will be published in the upcoming weeks.

For questions and registration, please contact carlos.medina-sanchez@uni-due.de.

Einführung in die Programmierung

Lecturer: Prof. Dr. Pedro José Marrón, Exercises: Theodor Josef Vogl & Magdalena Reimers

In dieser Vorlesung werden grundlegende Programmiertechniken in einer objektorientierten, modernen Programmiersprache (Java) besprochen.
Inhalte im Einzelnen:

  • Einführung und grundlegende Struktur von Programmen
  • Lexikalische Elemente, Datentypen und Variablen, Ausdrücke und Anweisungen
  • Objektorientierte Programmierung: Klassen, Methoden, Vererbung, Interfaces, Abstrakte Klassen, Polymorphismus
  • Standard und Utilityklassen
  • Ein- und Ausgabe mittels Streams
  • Ausnahmebehandlung
  • Rekursion
  • Datenstrukturen: Zeichenketten, Listen und Stapel, Suchbäume, Assoziative Datenfelder
  • Generische Datentypen – Anwendung von Standardtypen
  • Graphische Oberflächen – Einführung und Ereignisbehandlung

Die Übungen sollen die Studierenden anregen die in der Vorlesung gelernten theoretischen Konzepte praktisch anzuwenden. Dabei werden grundlegende Programmierkenntnisse erworben und die Studierenden werden in die Lage versetzt, einfache Programmieraufgaben selbstständig zu bearbeiten. Zusätzlich zu den Übungen werden Tutorien angeboten, welche Studierende mit besonderem Lernbedarf weiter unterstützen und die Inhalte der Vorlesung frühzeitig wiederholen.

Weitere Informationen zur Organisation sind auf der Moodleseite des Kurses zu finden. Den Einschreibeschlüssel erhalten Sie in der ersten Vorlesung.

Zeit und Ort:

Vorlesungen: Freitags 8 – 10 Uhr, Raum R14 R00 A04 (Start 16.10.2026)
Übungen: Freitags 10 – 12 Uhr, Raum R14 R00 A04 (Start 16.10.2026)
Programmierberatung:
Mittwochs 8 – 10 Uhr, Raum SE 108 (Start 21.10.2026)
Donnerstags 8 – 10 Uhr, Raum SA 215 (Start 22.10.2026)
Testate: Detailierte Auflistung der Termine über Moodle

Eintrag in LSF: Vorlesung, Übungen, und Testate

 

Master Project Group: A Web-based Tool for Study Planning (StuPlan)

The development and maintenance of course catalogs and study plans constitute a core responsibility of every faculty. Prior to the establishment of the Faculty of Computer Science in October 2023, computer science–related courses and curricula were administered using different legacy systems originally developed for the Faculty of Business Administration and Economics as well as the Faculty of Engineering. As a consequence, both the structure of course descriptions and the functionality of the tools used to manage them varied considerably. Moreover, ongoing technological progress has rendered the underlying technologies of these systems outdated.

The objective of this project group is to develop a high-quality, web-based tool for the creation, editing, and exploration of course catalogs and study plans for the Faculty of Computer Science. To be effective, the tool must address a diverse set of requirements arising from different stakeholder groups. These include program coordinators responsible for curriculum management, instructors who maintain and update course descriptions, and current as well as prospective students who will rely on the system as their primary source of information throughout their studies.

Existing courses and study plans will be imported from the heterogeneous formats used by the legacy systems. The browsing functionality will provide powerful search capabilities, enabling students to efficiently discover relevant courses and to plan their studies in an optimal manner. Depending on the number of participants, the editing functionality may include advanced features such as drag-and-drop interaction, LLM-based translation, and LLM-assisted content correction.

From a technical perspective, the project will cover the full stack of modern web application development. Core components will be implemented using J2EE and Angular. In addition, a broad set of complementary tools will be employed to streamline development, including Gradle and Jenkins for build automation, Docker for reproducible and scalable deployments, and FastAPI for integrating AI-based functionality. Students participating in this project are expected to be fluent in at least one object-oriented programming language (e.g., Python or Java) and capable of transferring their knowledge efficiently to additional technologies and frameworks.

The kickoff meeting for this course will take place on Tuesday, October 13th, 2026 from 8.00h to 12.00h in SA-126. The admission is managed centrally. If you have questions regarding this course, please contact Marcus Handte.

Seminar: None

Due to our workload, we are not offering a seminar on our research topics during the winter term. If you want to take a seminar, please consider the offerings of other research groups. We are planning on offering a seminar in the summer term again.

Systemnahe Informatik (Systems Programming)

Lecturer: Prof. Dr. Pedro José Marrón, Exercises: Carlos Medina Sanchez

In contrast to application programming whose focus is to develop software providing services to the user, systems programming addresses software that interacts with computer systems on a low-level. In this sense, systems programming uncovers the dependency between software and the hardware executing it and forces the programmer to deal with low-level system knowledge. This knowledge is relevant not only to developing efficient software but also in systems with limited resources, e.g., embedded systems like robots, vehicles, and IoT devices. This lecture and the exercises provide the basis to understand and develop such system programs. In this course, the following topics will be discussed:

  • Basics of computer systems
  • Machine-level representation of programs
  • Optimizing program performance
  • Memory hierarchy
  • Linking
  • System-Level I/O
  • Network programming
  • Concurrent programming

The exercises will provide hands-on experience in systems programming to understand the interdependence between software and the computer system executing it. Basic knowledge of the C language is required.

Place and Time:

At the present time, we are planning on offering this course in presence for every student that can and wants to participate. In addition, we will provide access to video recordings prepared during the previous semesters via the Moodle page of this course.

The lecture will take place on Thursdays from 10:00 to 12:00 in Room S-A 215.
The first lecture takes place on October 15th, 2026.

The exercises will take place on Wednesdays from 12:00 to 14:00 in Room S-A 215.
The first exercise session takes place on October 21nd, 2026.

Please make sure to register at the Moodle of the course so that we can inform you about changes.

The password for the self-enrollment (valid until the end of October) is: SysProg-WiSe2627
If you have any questions or problems with enrollment, please contact carlos.medina-sanchez@uni-due.de.

Exam:

The module is accompanied by a corresponding examination in the form of a written exam on the common goals of lecture and exercises (usually 90 minutes). Successful participation in the exercises is a prerequisite for admission to the module examination. The students collecting 80-89% of the points in the exercises receive a grade bonus of 0.3/0.4, for 90% of the points or more a grade bonus of 0.6/0.7.

The lecture and exercises will be held in English. For more information about the course, feel free to contact Carlos Medina Sanchez.

Moodle page: Link.
Registration to the Moodle course will be possible near the start of the lecture period.

LSF entry: Lecture and Exercises