Winter Term 2019/20

Bachelor Project: Social Robotics

Tutors: Dr. Matteo Zella, Carlos Medina Sánchez

Put yourself in the “shoes” of a robot meeting a person on its way… How would you understand what is the person doing and what his/her goals are? How would you plan your actions in this social context? How would you interact with others to be sure that you can achieve your own goals?

If one thinks about it, this situation is common in our everyday life. From the perspective of a robot, however, handling such “simple” task involves: (1) the perception of the physical surrounding and of the behavior of people moving in it; (2) the planning of appropriate actions to accomplish some goal while matching the expectations of how individuals should behave in a social context; (3) the interactions between humans and robots or between robots alone to ensure that a goal can be achieved, maybe in collaboration with each other.

In this project, after an initial set of tutorials on specific programming tools and robotic platforms, the participants will (1) identify a specific social context in which a robot would need to achieve a particular goal, e.g., delivering a packet to somebody in an office, (2) implement the corresponding software services, and (3) test them in a real scenario.

Participants in this course are expected to be highly motivated and must have a solid understanding of the C programming language. Note that due to the limited availability of the available hardware, the number of participants in this project is strictly limited. If you want to participate in this course, please send an email to to indicate your interest.

This course will be taught in English. The project is suitable for students at the bachelor level. If you are not sure whether you fulfill the requirements or if you have any questions, please contact us.

Find further information in LSF.

The kickoff meeting for this project will take place in SA 126 on October, 14th from 10h to 12h. Please check this information for updates or send an email to to be notified about changes. Participation in this meeting is mandatory.

UPDATE: the kickoff meeting will take place on October, 14th instead of October, 15th as previously announced.

Programmieren in C/C++

Dozent: Prof. Dr. Pedro José Marrón, Übungen: Marcus Handte

Die Veranstaltung (2V+2Ü) setzt die in den vorherigen Semestern gelernten grundlegenden Konzepte und Methoden der objektorientierten Programmierung (OOP) in C++ um.

Inhalte im Einzelnen:

  • OO-Analyse, -Design und -Modellierung mit UML
  • C++ als Erweiterung von C
  • Zeigerkonzepte
  • Klassen, Klassen-Hierarchien, einfache und mehrfache Vererbung, Zugriffsschutzmechanismen, virtuelle Basisklassen, virtuelle Funktionen, statisches und dynamisches Binden, Typisierung und Typkonvertierungen
  • Funktions- und Operator-Überladen
  • Exception Handling
  • Templates
  • Modularität, Namespaces
  • Threads
  • Streams
  • Standard Template Library (z.B. Algorithmen, Iteratoren, Container)
  • kleine Projektbeispiele aus den Anwendungsbereichen der Ingenieurwissenschaften.

Die Veranstaltung findet auf deutsch statt.

Ort und Zeit:

  • Vorlesung: Wöchentlich Mittwochs 12:00-14:00 Uhr in SE 407.
  • Übung: Wöchentlich Donnerstags 16:00-18:00 Uhr in SE 407. 


Um zur Prüfung zugelassen zu werden, sind 60% der möglichen Punkte in den Übungsaufgaben erforderlich. Bei 80-89% der Punkte erhält der Prüfling einen Notenbonus von 0,3/0,4, bei 90% der Punkte oder mehr einen Notenbonus von 0,6/0,7.

Einträge im LSF: Vorlesung und Übung
Der Zugangscode zur Moodle-Seite für Materialien und Übungsabgabe wird in der ersten Vorlesung bekanntgegeben.

Project Group: Crowd Sourcing of Temperature Data

The goal of this project group is the design, implementation and evaluation of a crowd sourcing service for temperature information. The service consists of applications that are able to capture temperature measurements and location information autonomously on behalf of their users, a backend that is able to store, process and anonymize the temperature information gathered through the devices and, a web-based application that enables interested third parties to visualize and access the measurements.

The theoretical part of the project group covers fundamental concepts related to the development of location-based services in theory and practice. This includes basic models, algorithms, data structures and applications which are introduced in a series of lectures covering the following contents:

  • Geometric, symbolic and hybrid location models
  • Localization systems and algorithms for outdoor and indoor environments
  • (Energy-)efficient location acquisition and communication
  • Server-based location data management
  • Privacy aspects related to location information
  • Example location-based services and applications

In addition, the participants will prepare individual seminar talks and papers on selected research topics related to privacy-preserving crowd sensing as well as the processing of temperature and location information.

The practical part of the project group will be based on the following technologies:

Students participating in this course should have good programming skills in at least one object-oriented language and should be familiar with HTTP.

The number of participants in this course ranges between 6 and 10. The admission to this course is managed centrally.

If you have any questions, please contact

Find Information in LSF here.


Rechnerstrukturen und Betriebssysteme

Dozent: Prof. Dr. Pedro José Marrón, Übungen: Sascha Jungen, Valentin Fitz

Die Vorlesung ist zweigeteilt. Die Vorlesungsinhalte mit dem Schwerpunkt Rechnerstrukturen werden vom Lehrstuhl Prof. Dr. Stefan Schneegaß vermittelt, die Inhalte mit dem Schwerpunkt Betriebssysteme vom Lehrstuhl Prof. Dr. Pedro Marrón.

Folgende Qualifikationen werden in der Vorlesung vermittelt

Die Studierenden

  • können den Aufbau und die Funktion von Rechen- und Betriebssystemen sowie die grundlegenden Konzepte erläutern
  • sind in der Lage, ein einfaches Hardwaresystem aus digitalen Basiskomponenten zu entwerfen und Grundfunktionen eines sehr einfachen Betriebssystems selbst zu entwickeln
  • können sich in vorgegebene Systeme einarbeiten, diese einordnen und ihre wesentlichen Eigenschaften erkennen
  • können die grundlegenden Aufgaben und Arbeitsweisen von Rechensystemen ebenso wie den prinzipiellen Aufbau aus digitalen Basiskomponenten erläutern
  • kennen kombinatorische Schaltungen, Bool’sche Funktionen, Schalter und einfache Gatter
  • sind vertraut mit der binären Arithmetik und Zahlendarstellung und können sie anwenden
  • verstehen, was Prozesse sind und können erläutern, wie sie verwaltet, ausgeführt und synchronisiert werden und wie eine Kommunikation zwischen Prozessen erfolgen kann
  • sind in der Lage zu erklären, wie Prozessor, Speicher und Ein-/Ausgabefunktionen verwaltet werden
  • sind befähigt, ein einfaches Hardwaresystem und Grundfunktionen eines sehr einfachen Betriebssystems selbst zu entwerfen
  • verfügen über die Fähigkeit, effizienzsteigernde Techniken in Hardware und Betriebssystem zu konzipieren
  • besitzen eine vertiefte Kenntnis von Rechnerstrukturen und sind in der Lage, diese praktisch anzuwenden
  • können maschinennahe Programme entwerfen, implementieren, diese auf geeignete Hardware portieren und ausführen, besitzen ein vertieftes Verständnis von Funktion und Aufbau von Hardware und zugehöriger Betriebssoftware, und können diese erläutern und zielgerichtet einsetzen

Ort und Zeit:

  • Vorlesung: Wöchentlich mittwochs 18:00-20:00 Uhr in SL 012 und donnerstags 18:00-19:30 Uhr in SH 601
  • Übung:Wöchentlich freitags 12:15-13:45 Uhr in SH 601


Zum Modul erfolgt eine modulbezogene Prüfung in der Gestalt einer Klausur über die gemeinsamen Ziele von Vorlesung und Übung (in der Regel: 90 bis 120 Minuten). Die erfolgreiche Teilnahme an der Übung ist als Prüfungsvorleistung Zulassungsvoraussetzung zur Modulprüfung.

Einträge im LSF: Vorlesung und Übung

Seminar: Social Robotics

Tutors: Dr. Matteo Zella, Carlos Medina Sánchez

Have you ever watched a movie where robots and persons share the same environment, collaborating together in a natural and socially-acceptable manner? Have you asked yourself which technological background would be required for making such futuristic vision possible in reality?

In this seminar, we are going to investigate the technological bases necessary to make robots and humans share physical and social spaces. Due to the inherent diversity of social robotics, the seminar is going to touch a variety of topics, e.g., robotics, embedded systems, artificial intelligence, computer vision, machine learning, human-robot interaction, as well as cognitive and social sciences.

Depending on the number of participants, the seminar will be organized either as a set of written surveys on selected topics, followed by corresponding presentations, or as a full-fledged scientific event including a reviewing process.

This seminar is suitable for students at the bachelor and master level. However, it cannot be chosen by master AI-SE students. This seminar is given in English. Please also note that the maximum number of participants is limited. If you have questions regarding this seminar, please send an email to

Find further information in LSF.

The kickoff meeting for this project will take place in SA 126 on October, 14th from 12h to 14h. Please check this information for updates or send an email to to be notified about changes. Participation in this meeting is mandatory.

UPDATE: the kickoff meeting will take place on October, 14th at 12h instead of October, 15th at 14h as previously announced.

Systemnahe Informatik (Systems Programming)

Lecturer: Prof. Dr. Pedro José Marrón, Exercises: Dr. Matteo Zella

Differently from application programming, whose focus is to develop software providing services to the user, systems programming addresses software that interacts with computer systems. In this sense, systems programming exposes 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 develop efficient software but also in systems with limited resources, e.g., embedded systems like robots, vehicles, IoT devices. The lecture and the exercises provide the basis to understand and develop system programs. In the 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 system programming to understand the interdependency between software and the computer system executing it. Basic knowledge of the C language is required.

For more information about the course, feel free to contact Matteo Zella (

Time and Place:

  • Room:  SE 407
  • Lecture: Thursdays 14:00-16:00
  • Exercises: Mondays 12:00-14:00

The first lecture will take place on Wednesday, October 17, 2019. The first exercise will take place on Monday, October 21, 2019.

The access key to the moodle page of the lecture/lab will be announced in the first lecture.

LSF entry: Lecture and Exercises