Modulinformationssystem Informatik

 

Deklarative Programmierung URL PDF XML

Modulcode: infDP-01a
Englische Bezeichnung: Declarative Programming
Modulverantwortliche(r): Prof. Dr. Michael Hanus
Turnus: jedes Jahr im WS (WS22/23 WS23/24 WS24/25)
Präsenzzeiten: 3V 2Ü
ECTS: 7
Workload: 45 Std. Vorlesung, 30 Std. Präsenzübung, 135 Std. Selbststudium
Dauer: ein Semester
Modulkategorien: BSc-Inf-A (BSc Inf (21)) BSc-WInf-WP-Inf (BSc WInf (21)) 2F-MEd-Inf-WP (MEd-Hdl Inf (21)) 2F-MA-Inf-WP (2F-MA Inf (21)) MSc-WInf-WP-Inf (MSc WInf (21)) EcoQuantFin (Export)
Lehrsprache: Deutsch
Voraussetzungen: Info infEInf-01a

Kurzfassung:

In dieser Vorlesung werden deklarative Programmierkonzepte vorgestellt. Dabei wird der Umgang mit den Konzepten der wichtigsten Programmierparadigmen, d.h. funktionale, logische und Constraint-orientierte Programmierung, geübt.

Lernziele:

Die Studierenden kennen die Konzepte der wichtigsten deklarativen Programmierparadigmen und haben die Befähigung, diese zur Lösung konkreter Programmieraufgaben effektiv einzusetzen. Sie können die Anwendung geeigneter deklarativer Konzepte für gegebene Probleme einschätzen. Sie sind in der Lage, funktionale Konzepte moderner imperativer Programmiersprache anzuwenden. Sie sind in der Lage, sich in neue deklarative Programmiersprachen- und Programmiersysteme einzuarbeiten und diese anzuwenden.

Lehrinhalte:

In dieser Vorlesung werden deklarative Programmierkonzepte vorgestellt. Dabei wird anhand verschiedener Programmiersprachen der Umgang mit den Konzepten deklarativer Programmierparadigmen gezeigt und der Unterschied zur imperativen Programmierung aufgezeigt. Moderne funktionale Programmierungtechniken werden am Beispiel der Sprache Haskell gezeigt. Logische und Constraint-orientierte Programmierung wird in der Sprache Prolog vermittelt.

Weitere Voraussetzungen:

Grundlegende Programmierkenntnisse.

Prüfungsleistung:

Voraussetzung zur Zulassung zur Klausur ist die regelmäßige Bearbeitung der Hasuaufgaben (Übungsaufgaben). Für jede Übungsaufgabe wird festgehalten, ob diese sinnvoll bearbeitet wurde ("Sinnpunkte"). Für die Zulassung zur Klausur müssen in den beiden Bereichen funktionale Programmierung sowie logische Programmierung/Übungsprojekt (s.u.) mindestens 50% der Sinnpunkte erreicht werden.

Lehr- und Lernmethoden:

Live-Programmierung, Folien- und Tafelanschrieb. Um den Prozess der Programmierung zu verstehen, werden die Programme in der Vorlesung entwickelt. In den Übungen werden selbstständig kleinere Programme entwickelt. In den letzten Übungsserien nach Ende des Vorlesungsteils wird ein größeres Projekt bearbeitet.

Verwendbarkeit:

Literatur:

  • S. Thompson: Haskell - The Craft of Functional Programming, Addison-Wesley, 3rd Ed., 2011
  • G. Hutton: Programming in Haskell, 2nd Ed., Cambridge University Press, 2016
  • L. Sterling, E. Shapiro: The Art of Prolog, 2nd Ed., MIT Press, 1994
  • T. Frühwirth, S. Abdennadher: Constraint-Programmierung, Springer, 1997

Verweise:

Kommentar: