Universität Bremen
FB 3 CXL

Reaktive Programmierung

Über die Veranstaltung

Das Paradigma der reaktiven Programmierung stellt Datenströme und die Verbreitung von Änderungen in einer Anwendung in den Vordergrund. Dabei sollen idealerweise Abhängigkeiten zwischen berechneten und veränderlichen Werten sowie externen Datenquellen deklarativ definiert werden. Ein prominentes Beispiel dafür sind Tabellenkalkulationen bei denen die einzelnen Zellen voneinander abhängig sind und Änderungen an einer Zelle Kaskaden von weiteren Veränderungen hervorrufen können. Reaktive Programmierung kommt heute aber auch häufig bei hochgradig verteilten Systemen zum Einsatz, bei denen sehr kurze Antwortzeiten und hohe Fehlertoleranz wichtig sind. Soziale Netzwerke wie Twitter oder datenreiche Webanwendungen wie NetFlix, wären ohne die hochskalierbaren Entwicklungsmuster der reaktiven Programmierung kaum denkbar.

In dieser Veranstaltung werden wir die relevanten Konzepte erarbeiten und dabei nebenbei die sehr ausdrucksstarke Funktional-Objekt-Orientierte Sprache Scala (Die übrigens auch bei Twitter und NetFlix im Einsatz ist) lernen. Außerdem tauchen wir tiefer in einige Aspekte der funktionalen Programmierung ein, die bei der Implementierung von nebenläufigen Prozessen hilfreich sind.

Als durchgängige Übung entwickeln wir nach und nach eine Steuerungssoftware für Gold-Minen-Roboter. Die Roboter kriegen dabei eine riesige ungefilterte Menge von Informationen von ihren Sensoren geliefert auf die sie sich noch nicht mal 100% verlassen können. Einzelne Teile der Roboter können jederzeit ausfallen, es gibt zahlreiche Hindernisse und zu allem Überfluss hat zwar jede Übungsgruppe ihren eigenen Roboterschwarm, aber alle Konkurrieren um das gleiche Gold... (Sabotagen und Intrigen vorprogrammiert)

Am Ende der Veranstaltung sind wir in der Lage das nächste Facebook, YouTube oder NSA-Überwachungsprogramm zu bauen. Verantwortungsvoller Umgang mit dem Gelernten wird also vorausgesetzt.

Inhalt