Lehrveranstaltungen in der Informatik

Reaktive Programmierung

Prof. Dr. J. Christiansen

zurück zurück

Inhalt

Die Ideen der reaktiven Programmierung erlauben es, die Veränderungen von Benutzer­oberflächen bei der Änderung der zugrunde­liegenden Modelle elegant zu beschreiben. Beim Einsatz von konventionellen Techniken wird die Implementierung eines solchen reaktiven Verhaltens schnell unübersichtlich.

Neben der Anwendung im Bereich von Benutzer­oberflächen wird die Implementierung von asynchronen Berechnungen mit Hilfe der reaktiver Programmierung demonstriert und der Zusammenhang mit anderen Konzepten zur Strukturierung von Programmen wie Promises erläutert.

Die Vorlesung stellt die Prinzipien der reaktiven Programmierung und ihren Einsatz zur Implementierung von mobilen Anwendungen und von Web-Anwendungen vor.

Zuerst werden die Grundlagen der funktionalen Programmierung eingeführt und es wird gezeigt, wie diese bei der reaktiven Programmierung zum Einsatz kommen. Für praktische Beispiele und Programmier­übungen werden die sogenannten Reactive Extensions (Rx) für Java und JavaScript eingesetzt. Die Reactive Extensions wurden ursprünglich für die .NET-Plattform entwickelt, inzwischen stehen entsprechende Bibliotheken für eine Vielzahl von Programmier­sprachen, unter anderem Java, Objective-C, Ruby, JavaScript, Scala und Swift zur Verfügung.

Organisation

Sommersemester, Vorlesung / Labor  4-std.

Sprache: deutsch

Präsenzstudium: 60 h, Eigenstudium: 120 h
Gesamtaufwand: 180 h

Leistungspunkte (credit points): 6

Vorbedingungen: keine

Prüfung: PL (mündliche Prüfung)

Lernziele

Sie kennen die Grundprinzipien der reaktiven Programmierung und sind mit den wichtigsten Kombinatoren vertraut. Sie können selbstständig einfache Probleme mit Hilfe von reaktiver Programmierung in einer beliebigen Programmiersprachen lösen und sind in der Lage, das Verhalten anhand sogenannter "Marble Diagrams" zu visualisieren.

Literatur

L. Campbell: Introduction to Rx. http://www.introtorx.com (2012)

N. Tsvetinov: Learning Reactive Programming with Java 8. Packt Publishing (2015)