Teaching

Current Term

Bachelor Project: Vision-based Robot Control

Tutor: Alexander Golkowski, Peter Roch, Bijan Shahbaz Nejad

The goal of this bachelor project is to familiarize students with basic problems related to the control of autonomous mobile robots. Within the project, participants will be implementing the control logic of a mobile robot that can perceive its environment through different optical sensors, whereby webcams will be the main optical sensor for fast image processing.

Thereby, students will get in touch with the OpenCV library that implements a broad range of computer vision algorithms as well as the ROS framework which simplifies the development of robotic applications by faciliating the implementation of loosely coupled software components.

As hardware platform, the participants will be using webcams and the TurtleBot 2 or Turtlebot 3. TurtleBots are low-cost, open source robot kits that can be used to realize a broad spectrum of different robotic applications. A TurtleBot typically integrates different actuators, e.g. motors that drive the robot’s wheels, sensors, e.g. a LIDAR or an IMU, a base controller and a battery. Depending on the situation, a simulation of controlling the Turtlebots in Gazebo may take place instead.

Participants in this course are expected to be highly motivated and must have a solid understanding of one programming language, knowledge of programming in C++ are of advantage. In addition, students should be familiar with Linux-based command line tools (e.g. Bash, SSH, etc.) Note that due to the limited availability of TurtleBot hardware, the number of participants in this project is strictly limited. If you want to participate in this course, please send an email to alexander.golkowski@uni-due.de to indicate your interest.

This course may be held in German and English depending on the participants. 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 send an email to alexander.golkowski@uni-due.de.

Due to the ongoing situation regarding COVID-19, it is necessary for the participants to send an email to alexander.golkowski@uni-due.de for the initial registration. You will then be added to the Moodle course, where the procedures and the project material will be made available.

The kick-off event will take place on 03.11.2020, further registration is not possible.

 

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:

Aufgrund der aktuellen Situation bezüglich COVID-19 findet diese Veranstaltung in diesem Semester als virtuelle Veranstaltung statt. Die wöchentlichen Veranstaltungen (Vorlesung und Übung) werden als Videoaufzeichnungen bereitgestellt. Die Kommunikation bei Fragen erfolgt über Foren, sowie in Form von Webkonferenzen und Online-Sprechstunden. Weitere Informationen zur Organisation sind auf der Moodleseite des Kurses zu finden. Das Passwort zur Selbsteinschreibung lautet CPPWT2021. Die Einschreibung wird am 22.11.2020 um 23:55h automatisch geschlossen. Bei Fragen oder Problemen mit der Einschreibung wenden Sie sich bitte an marcus.handte@uni-due.de.

Prüfung:

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

Project Group: Participation Incentives for Location-based Crowd Sourcing Applications

The goal of the FAIR project is to improve weather forecasts computed by the DWD using crowdsourced temperature measurements collected by volunteers. As basis for the large-scale collection of temperature measurements, the participants of the project group CST (Crowd Sourcing of  Temperature Data, Winter Term 2019/20) have developed a mobile application for Android and iOS as well as a web application with an associated backend service (https://www.mowesta.com).

The goal of this project group is the design, implementation, and validation of strategies to incentivize new and existing users to participate in the crowd sourcing process. Some example strategies may include but are not limited to:

  • Removing obstacles for participation, e.g., by providing fine-grained control over the data collection performed by the mobile applications to improve the user’s privacy.
  • Extending data access and usefulness, e.g., by providing integrations with existing services such as Amazon’s Alexa or If-This-Than-That.
  • Improving the motivation of participants, e.g., by gamifying the data collection process with achievements, rankings, etc.

The participants of the project group are free to design and realize other ideas depending on their interests. However, since the groups result shall be tightly integrated into the existing system, some technical aspects such as the programming language and frameworks cannot be adapted easily. Specifically, the group will be using J2EE to extend the backend, the Android SDK and iOS SDK to extend the mobile applications and Angular to extend the web application. Tutorials for these technologies will be held during the first weeks of the project.

From a theoretical perspective, 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. In addition, the participants will prepare individual seminar talks and papers on selected research topics related to crowd sensing as well as the processing of temperature and location information.

The admission to this course is managed centrally. If you have any questions, please contact marcus.handte@uni-due.de.

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:

Aufgrund der aktuellen Situation bezüglich COVID-19 findet diese Veranstaltung in diesem Semester als virtuelle Veranstaltung statt. Die wöchentlichen Veranstaltungen werden als Videoaufzeichnungen bereitgestellt. Die Kommunikation bei Fragen erfolgt über Foren, sowie in Form von Webkonferenzen und Online-Sprechstunden.

Weitere Informationen zur Organisation sind auf der Moodleseite des Kurses zu finden.
Der Einschreibeschlüssel wird in der Einführungsveranstaltung am 04. November bekanntgegeben. Weitere Informationen dazu unter diesem Link.

Prüfung:

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: Intelligent Web

Tutors: Dr. Matteo Zella, Arman Arzani

Artificial intelligence has been conquering the industry in the last decade. It powers most of today’s high-tech products. It fuels our smartphone’s speech/face recognition, ranks our web search results as in a simple google search, and recommends relevant videos and content to its users. It even beats the world champion at the game of Go. Before we know it, it will be driving our car into the sunset.

In this seminar, we will be examining the artificial intelligence behind the world wide web, investigating AI-based search and recommendation engines. Considering the immensity of AI, we will narrow it down to a sub-genre of AI: “web-based AI”. There we would tackle a variety of topics such as natural language detection, voice-based search, technology and innovation index prediction, recommendation-based systems, AI in search engines, User experience, and chatbot reply predictions.

Based on the number of participants, the seminar will be organized as a set of scientific papers on selected topics, which are distributed by us. The topics are then selected and worked on by participants based on areas of interest. At the end of the seminar, each student holds a presentation as well as write a scientific survey on the topic.

Due to the ongoing situation regarding COVID-19, the seminar kickoff meeting will be held in an online format on November, 16th from 10 to 12. In order to join the kickoff meeting and the course, it is necessary for the participants to send an email to arman.arzani@uni-due.de for the initial registration. You will then be added to the Moodle course, where the procedures and the seminar material will be made available.

This seminar is suitable for students at the bachelor level. The students attending this seminar can prepare their material in either English or German, depending on their language preference. Please also note that the maximum number of participants is limited. If you have questions regarding this seminar, please send an email to arman.arzani@uni-due.de.

 

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.

Place and Time:

Due to the current situation regarding COVID-19, the course will be offered in this semester virtually. Lectures and exercises will be provided as video recordings. In addition, the communication will take place asynchronously through forums as well as synchronously in the form of web conferences and online consultation hours. Further information about the organization of the course can be found on the Moodle page of the course. The password for joining the course is SP_WT2021 and can be used until December, 1st to enroll in the course.

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.

For more information about the course, feel free to contact Matteo Zella (matteo.zella@uni-due.de).

Moodle page: Link

LSF entry: Lecture and Exercises