Verteilte Systeme I [2024 SoSe] | ||
---|---|---|
Code IVS1 |
Name Verteilte Systeme I |
|
LP 6 LP |
Dauer ein Semester |
Angebotsturnus mind. jedes 4. Semester |
Format Vorlesung 2 SWS, Übung 2 SWS |
Arbeitsaufwand 180 h; davon 60 h Präsenzstudium 15 h Prüfungsvorbereitung 105 h Selbststudium und Aufgabenbearbeitung (evtl. in Gruppen) |
Verwendbarkeit B.Sc. Angewandte Informatik, B.Sc. Informatik, M.Sc. Angewandte Informatik |
Sprache |
Lehrende |
Prüfungsschema |
Lernziele | Verständnis der unterschiedlichen parallelen Architekturen und der Besonderheiten von verteilten Systemen Kenntnis der grundlegenden theoretischen Probleme und Algorithmen in verteilten Systemen (z.B. Skalierbarkeit) Fähigkeit zur Erstellung von parallelen und verteilten Programmen, insbes. im Spark-Programmiermodell Kenntnis der praktischen Anwendung diverser Programmierparadigmen und Frameworks (Pthreads, MPI, Hadoop, Spark) für parallele oder verteilte Programmierung Vertrautheit mit skalierbarer Verarbeitung von Daten Kenntnisse über Probleme und Lösungen in Bereichen Fehlertoleranz und Verlässlichkeit der verteilten Systeme |
|
Lerninhalte | Das Modul behandelt die grundlegenden Prinzipien der parallelen und verteilten Systeme im Kontext ihrer Programmierung, insbesondere zum Zwecke der skalierbaren Verarbeitung von Daten. Es werden Konzepte aus den Bereichen Architekturen, Protokolle, Algorithmen, Implementierung und Softwareframeworks vorgestellt. Ein wesentlicher Teil der Vorlesung widmet sich der praktischen parallelen und verteilten Programmierung. Dazu gehörten u.a. Ansätze wie MPI, Map-Reduce, Spark-Programmiermodell und Actors. Ergänzende Themen umfassen Fehlertoleranz, effiziente Protokolle und Skalierbarkeit. Die Umsetzung in die Praxis erfolgt an Beispielen der Verarbeitung großer Datenmengen. Das Modul soll die Studierenden befähigen, Spezifika und Probleme der verteilten Systeme zu verstehen, und effiziente verteilte Anwendungen mit Softwareframeworks wie Apache Spark zu erstellen. | |
Teilnahme- voraus- setzungen |
empfohlen sind: Kenntnisse in Java (z.B. durch Einführung in Software Engineering (ISW)) oder Python | |
Vergabe der LP und Modulendnote | Bestehen der Modulprüfung | |
Nützliche Literatur | George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design (4th ed.), Addison-Wesley, 2005. Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia: Learning Spark: Lightning-Fast Big Data Analysis, O'Reilly Media, 2015. Jure Leskovec, Anand Rajaraman, Jeff Ullman: Mining of Massive Datasets, 2nd edition (v2.1), Online: http://www.mmds.org/ Grama, A., Gupta, A., Karypis, G., Kumar V.: Introduction to Parallel Computing, Addison-Wesley, 2. Auflage, 2003. Andrew S. Tanenbaum, Maarten Van Steen: Distributed Systems: Principles and Paradigms, Prentice Hall, 2006. |