Lehrinhalte
Sowohl Wissenschaft als auch Industrie befinden sich derzeit in einem tiefgreifenden Wandel: Große, vielfältige Datensätze - erstellt von Sensoren des Internet-of-Things, dem Internet selbst oder über Crowd Sourcing - bieten eine riesige Chance für datengestützte Entscheidungsfindung. Diese Daten bergen neue Herausforderungen: in Bezug auf ihr noch nie dagewesenes Volumen, die Geschwindigkeit, mit der sie erzeugt werden, und die Vielfalt der Datenquellen, die integriert werden müssen.
Der Bereich der Big-Data-Systeme befasst sich mit den technologischen Mitteln zur Verarbeitung großer Datenmengen mit dem Ziel des Erkenntnisgewinns aus den Daten. Es wurde eine ganze Reihe neuer Systeme und Paradigmen entwickelt, um diese Herausforderungen zu bewältigen. Allerdings erfüllen die derzeitigen Systeme noch immer nicht alle Anforderungen der Nutzer. Daher muss an den Systemen weiter geforscht werden, um in jedem Szenario eine robuste Abfrageleistung zu erzielen.
In diesem Modul führen die Studierenden Projekte durch, welche sich mit Themen befassen, die mit aktuellen Trends im Datenmanagement zusammenhängen, wie z. B. modern Hardware, zustandsorientiertes Data Streams Management, Sensordatenmanagement, Compilertechnologie, Abfrageoptimierung und maschinelles Lernen für Datenbanken. Der Umfang des Projekts wird an die tatsächliche Gruppengröße angepasst, um die Gesamtarbeitsbelastung des Kurses widerzuspiegeln (d.h. 270h Arbeit pro Person).
Währenddessen lernen die Studierenden die Algorithmen, das Systemdesign und die tatsächliche Implementierung der so genannten Distributed Processing Platforms (z.B. Flink, NebulaStream, Spark) kennern. Dabei handelt es sich um Systeme, die parallele Berechnungen auf Terabytes von Daten auf Clustern sowie verteilten Internet-of-Things-Topologien von bis zu mehreren tausend Maschinen durchführen.
Zu Beginn des Projekts erhält jede*r Student*in ein Thema sowie einige Informationsmaterialien. Das Team entscheidet sich mit Unterstützung der*der Dozierenden für eine Projektumgebung und wählt geeignete Werkzeugen für Teamarbeit, Projektkommunikation, Entwicklung und Testing. Als Nächstes wird das Problem analysiert, modelliert und in einzelne Komponenten zerlegt, aus denen Aufgaben abgeleitet werden, die anschließend an kleinere Teams oder Einzelpersonen vergeben werden. In wöchentlichen Projektbesprechungen stellt das Projektteam die Fortschritte und erreichten Meilensteine vor. In Absprache mit dem Dozierenden wird entschieden, welche Schritte als nächstes unternehmen sind. Das Projekt wird mit einer Abschlusspräsentation abgeschlossen, die eine Demonstration des Prototypen beinhaltet.