Master Courses

DSM: Distributed Systems and Middleware (winter-term)
The lecture deals with advanced issues in the area of distributed systems and middleware. Based on fundamental knowledge about computer networks and distributed systems, algorithms that are used in complex distributed systems will be discussed. Furthermore, knowledge about the functionality and use of middlewares will be imparted and discussed on the basis of current examples from research.
The following topics will be covered:
- Fault detection in distributed systems
- Leader Election
- Reliable Broadcast and epidemic algorithms
- Consensus protocols
- Group Communication and Synchronization
- Distributed state detection
- Exclusion in distributed systems
- Logical clocks
- Replication
- Distributed computation (including MapReduce)
- Middleware (distributed objects, name services, remote method calls).
In the accompanying exercise, students design and develop a distributed system with a specific focus on the algorithms covered in the lecture. This will focus on a different topic each semester. The design and implementation will be presented and discussed within the group during the exercise sessions.
STiNE course number: 64-422/423 (lecture & excercise)
Hackathon: Complex Applications in Distributed Environments (summer-term)
In this practical course, the students' practical programming skills are to be improved and tried out in the independent programming of concrete examples in small group work.
The students are supposed to produce useful, creative and free software within a short period of time according to a given set of topics. Possible topics include the programming of distributed applications in the areas of mobile computing, cloud computing, augmented reality and peer-to-peer systems. Current trends are to be given special consideration.
First, a topic complex and its problems will be presented and motivated. The students get together in small groups (3-6 persons) and work on a sub-problem together. At the end of the course, the results are presented in groups. Further tasks are set with the small groups for the extracurricular independent work. Successful completion of the specified task is a prerequisite for passing the course.
STiNE course number: 64-634
Masterproject with integrated seminar about Smart Cities
Within the project, selected issues of modern digital smart cities are covered in a broader sense. For example, modern cities and their citizens are increasingly dependent on very different types of urban data (environmental, traffic, infrastructure data, etc.). Sensor networks are increasingly being used to collect such data. Therefore, in this project a distributed network structure for the exchange and browsing of collected sensor data will be designed and prototypically implemented for such applications.
In this project, a road map with information about accessibility will be created, on the basis of which wheelchair users can be navigated on accessible routes. For this purpose, sensor data will first be collected and conclusions about soil characteristics and possible obstacles will be drawn with the help of machine learning methods. Crowdsourcing collected sensor data can then be used to create a digital, barrier-free road map.
Since movement data is particularly requiring protection, the routes traveled should be managed decentrally by the wheelchair users themselves and only released to services (such as a map representation, barrier-free routing, indoor routing, etc.) through active consent. Thus, the tasks range from the hardware-related development of the sensor technology on the wheelchair, through a decentralized network for the management and distribution of the data, to sample services that use the data.
Throughout the project, software-related agile methods and processes are mainly used in the team. In addition to the steps known from SE 1&2 "Plan, Code, Build and Test", the steps "Release, Deploy, Operate and Monitor" and thus the entire DevOps lifecycle are applied. Thereby, the technologies and practices to be used are not fixed and a participation in their selection by the students is welcomed and encouraged.
Learning Objective:
- Students will experience the entire DevOps lifecycle of software development.
- Students will be able to organize an agile software project.
- Students will be able to construct decentralized, peer-to-peer based applications.
- Students will develop different strategies for realizing specific system aspects.
- Students will be able to evaluate alternative design decisions.
Procedure:
The project module consists of an integrated seminar on current research issues in the field of distributed crowdsensing smart city applications and a project in which own ideas are practically realized using current technologies. After an introduction by the organizers, the practical understanding of the used technologies is first learned or deepened through small tutorials. In the remaining course, individual aspects of the overall system will be designed and implemented in smaller teams.
It is assumed that participants can already independently realize applications in at least one object-oriented programming language (e.g.: Java, Kotlin, JavaScript, TypeScript,...).
STiNE course number: 64-866