Vertiefung Software Engineering und Programmiersprachen A (SA, FP)

Modulinformationen

01798: Wegen der stetig zunehmenden Komplexität und Größe von Software treten verstärkt Fragestellungen in den Vordergrund, die sich mit der Strukturierung, der Organisation und dem Aufbau von Softwaresystemen beschäftigen. Von besonderem Interesse sind dabei die Kommunikation zwischen Systemteilen und die Konstruktion von Systemen aus Komponenten.
Die Architektur eines Software-Systems beschreibt die verschiedenen Strukturen des Systems und legt das Zusammenwirken der Systemkomponenten fest. Der Kurs erläutert zunächst allgemein, welche Strukturen in diesem Zusammenhang von Interesse sind und wie sie beschrieben werden können. Insbesondere unterscheidet er zwischen den Strukturen, die dem dynamischen Verhalten von Systemen zugrunde liegen, und den statischen Strukturen der Software des Systems. Er gibt eine Einführung in den Entwurf und die Bewertung von Architekturen und in wichtige Architekturmuster. Zur Vertiefung werden Programmgerüste und Komponentenarchitekturen behandelt. Darüber hinaus geht der Kurs auf relevante informelle und formale Beschreibungstechniken ein.

01852: Der Kurs widmet sich weiterführenden Themen funktionaler Programmierung, die über die grundlegenden Aspekte des Kurses "Logisches und funktionales Programmieren" (01816) hinausgehen, sowie einigen wichtigen theoretischen Grundlagen funktionaler Programmiersprachen. Zu Beginn werden die besonderen Konzepte moderner funktionaler Sprachen wie z.B. strenge Typisierung, parametrischer Polymorphismus, Datentypen und Pattern Matching am Beispiel der Sprache ML vorgestellt. Die mathematische Fundierung funktionaler Sprachen ermöglicht die formale Behandlung von Programmen. Dies wird anhand verschiedener Methoden zum Beweis von Programmeigenschaften oder aber auch zur Programmtransformation demonstriert. Als formale Grundlagen werden der Lambda-Kalkül sowie das Typsystem von Hindley/Milner erläutert. Schließlich wird das Verständnis funktionaler Programmiersprachen durch die Beschreibung verschiedener Implementierungsaspekte vertieft.

ECTS10
Arbeitsaufwand01798:
Bearbeitung des Kurstextes: 75 Stunden
Bearbeitung der Übungs- und Einsendeaufgaben: 40 Stunden
Nachbearbeitung und Klausur- bzw. Prüfungsvorbereitung: 35 Stunden
01852:
Bearbeiten der Kurseinheiten: 65 - 70 Stunden,
Bearbeiten der Übungsaufgaben: 30 - 40 Stunden,
Prüfungsvorbereitung: 30 - 40 Stunden
Dauer des Modulszwei Semester
Häufigkeit des Modulsin jedem Semester
Anmerkung
Der Kurs "Fortgeschrittene Konzepte funktionaler Programmierung" kann letztmalig im Sommersemester 2019 belegt werden. Eine letztmalige Prüfungsteilnahme im Modul "Vertiefung Software Engineering und Programmiersprachen A (SA, FP)" bzw. "Vertiefung Software Engineering und Programmiersprachen B (WP, FP)" ist im Wintersemester 2019/20 (März 2020) möglich. Von den Modulen Vertiefung Software Engineering und Programmiersprachen A (SA, FP), B (WP, FP) und C (WP, SA) kann nur eines gewählt werden.
Inhaltliche Voraussetzung
01798: Es werden Programmierkenntnisse vorausgesetzt, möglichst in Java, wie sie z.B. durch das Modul 63611 "Einführung in die objektorientierte Programmierung" (01618) vermittelt werden.


Achtung: Kurstitel ist zwar deutsch, Kurs ist aber in englischer Sprache.


 


01852: Kenntnisse in funktionaler Programmierung, z.B. aus dem Kurs 01816 Logisches und funktionales Programmieren.

Aktuelles Angebot

Prüfungsinformation

[an error occurred while processing this directive]

Download

Ansprechpartner

    [an error occurred while processing this directive]
mathinf.webteam | 12.08.2021