Programmieren 2

    Nummer
    prog2
    ECTS
    6.0
    Inhaltsübersicht

    Dieses Modul baut auf Programmieren 1 auf und geht in drei Bereichen in die Tiefe: Programmieren auf höheren Abstraktionsstufen, dynamische Datenstrukturen und Umgang mit komplexen Bibliotheken und Frameworks. Inhalte:

    • Generische Programmierung: von dynamischer Typisierung zu Typparametern
    • Callbacks, Funktionstypen, Lambda-Ausdrücke, Higher-Order Functions
    • Von Enumerations zu algebraischen Datentypen und Pattern Matching
    • Implementation von dynamischen Datenstrukturen und einfachen Algorithmen: verkettete Listen, Bäume, Graphen
    • Anwendungen von Vererbung (z. B. in GUI- oder Collections-Frameworks)
    • Ausnahmebehandlung
    • Aufbau und Verwendung von komplexen Bibliotheken und Frameworks
    Lernziele
    • Die Studierenden kennen Vor- und Nachteile von statisch gegenüber dynamisch typisierten Sprachen und können Techniken anwenden, um mit den jeweiligen Nachteilen umzugehen.
    • Die Studierenden sind in der Lage, generische Programmbausteine zu verstehen, sinnvoll einzusetzen und zu einem gewissen Grad selbst zu entwickeln.
    • Die Studierenden verstehen insbesondere die Konzepte eines generischen Collection-Frameworks, verstehen zentrale Eigenschaften und Implementationsaspekte wichtiger Collections und können solche gewinnbringend einsetzen.
    • Die Studierenden verstehen Nutzen und Risiken von Vererbung, kennen Alternativen dazu und können das Konzept bedacht einsetzen.
    • Die Studierenden kennen das Konzept von algebraischen Datentypen (Produkt- und Summe-Typen) und können eigene solche Typen entwerfen, implementieren und sinnvoll verwenden.
    • Die Studierenden können sich selbstständig in komplexe Libraries und Frameworks einarbeiten und diese zur effektiven Entwicklung eigener Applikationen verwenden.
    Empfohlene Vorkenntnisse
    Programmierung 1 (prog1)
    Leistungsbewertung
    Erfahrungsnote