- Dozent/in: (inaktiv) HIEBER Dominik
- Dozent/in: (inaktiv) LETTEF Fabian
- Dozent/in: (inaktiv) Loy Jasmin
- Dozent/in: (inaktiv) Styrnol Nicolas
- Dozent/in: Berninger Sabine
- Dozent/in: Compans Isabelle
- Dozent/in: Hänisch Till
- Dozent/in: Heupel Nadine
- Dozent/in: Hieber Dominik
- Dozent/in: Hutzschenreuter Anke
- Dozent/in: Kastler Jessica
- Dozent/in: Lange Olga
- Dozent/in: Lette Fabian
- Dozent/in: Lühr Hanna-Talitha
- Dozent/in: Schwenker Friedhelm
- Dozent/in: Styrnol Nicolas
- Dozent/in: Dumin Oleksandr
- Dozent/in: Hutzschenreuter Anke
- Dozent/in: Kastler Jessica
- Dozent/in: Körner Jörg
- Dozent/in: Lange Olga
- Dozent/in: Maier Sebnem
- Dozent/in: Reiner Jens
- Dozent/in: Sola Diana

Plan
Distributed Systems
(22 hours)
Overall goal:
Students understand the basics of how distributed systems work and are built, and can use distributed systems in their own research projects.
Part 1: What is a distributed system?
Structure of distributed systems
Distribution transparency
Openness
Dependability
Security
Scalability
Part 2: Classification of distributed system
High-performance distributed computing
Distributed information systems
Middleware and Enterprise Application Integration
Pervasive systems
Ubiquitous systems
Mobile computing
Sensor networks
Part 3: Architectures of distributed systems
Layered architecture
Service-oriented architectures
Publish-subscribe architectures
Middleware and distributed systems
Layered-system architectures
Structured peer-to-peer systems
Unstructured peer-to-peer systems
Super-peer networks
Cloud computing
Edge-server architecture
Blockchain architectures
Part 4: Introduction to parallel programming with Python
Processes, multitasking, and threads
The Abstract Interface: concurrent.futures
The Flexible Interface: threading and multiprocessing
Cooperative Multitasking
A Cooperative Web Crawler
Part 5: Processes
Threads and operating systems
Virtualization. Containers. Virtual machine and cloud computing
Client-server interaction. Servers and state
Object servers
Server clusters
Wide-area clusters
Code mobility
Part 6: Communication
Layered Protocols.RPC
Sockets
Messaging
Application-level multicasting
Part 7: Coordination
Physical clocks. Logical clocks. Vector clocks
Totally ordered multicast
Mutual exclusion
Token ring algorithm
ZooKeeper
Election algorithms
Gossip-based coordination
Secure gossiping
Part 8: Student Task
Create your own distributed system :
multiprocessor distributed computing systems,
or web pages,
or chatbots.
Presentation of mini-projects. Feedback and discussion
Literature
1. Maarten van Steen, M., & Tanenbaum, A. S. (2025). "Distributed Systems". 669 p.
2. Coulouris G., Dollimore J., Kindberg T., Blair D. Distributed Systems. Concepts and Design, Addison-Wesley, Munich, 5th Ed., 2012, 1063 p. ISBN 10: 0-273-76059-9
3. Johannes Ernesti, Peter Kaiser, Python 3, Rheinwerk Verlag GmbH, 2022, 1036 p. ISBN 978-3-8362-9131-6
4. MIT 6.824: Distributed Systems https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB
5. Distributed Programming: From Basics to Advanced Concepts
https://dev.to/daviducolo/distributed-programming-from-basics-to-advanced-concepts-5h66
6. Kleppmann, M. (2017). "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems." O'Reilly Media.
7. Burns, B. (2018). "Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services." O'Reilly Media
- Dozent/in: Dumin Oleksandr

Gesamtziel:
Die Studierenden verstehen die Grundlagen wissenschaftlicher Methoden und können diese in einem eigenen Forschungsprojekt anwenden.
- Dozent/in: Dumin Oleksandr
- Dozent/in: Borrmann Sven
- Dozent/in: Heupel Nadine
- Dozent/in: Lange Olga
- Dozent/in: Maier Sebnem
- Dozent/in: Faber Wolfgang
- Dozent/in: Güttinger Vanessa
- Dozent/in: Faber Wolfgang
- Dozent/in: Güttinger Vanessa
Dieser Moodle-Raum dient zur Abstimmung und Vergabe der Projektarbeitsthemen an die wissenschaftlichen Betreuer
- Dozent/in: Berninger Sabine
