Generische Programmierung

Modulnummer
CS2350
Modulverantwortlicher
  • Thomas Karl Letschert
Dozent
  • Thomas Karl Letschert
Kurzbeschreibung

Techniken und Konzepte mit denen Programme und Programmkomponenten verallgemeinert und flexibel einsetzbar gemacht werden.

Qualifikations- und Lernziele

Die Studierenden besitzen ein kritisches Verständnis der unterschiedlichen Aspekte von Softwarekomponenten, die einer Verallgemeinerung zugänglich sind. Sie sind mit der theoretischen Fundierung dieser Verallgemeinerungen vertraut und können die erlernten Prinzipien und Vorgehensweise zur Entwicklung flexibel einsetzbarer Software, auch in Gruppenarbeit, praktisch einsetzten und die dabei eingesetzten Methoden kritisch reflektieren und in einer Präsentation darlegen und verteidigen.

Lerninhalte

Bei der generischen Programmierung geht es darum, Programme und Programmkomponenten durch Verallgemeinerung flexibler einsetzbar zu machen. Die relevanten Fragestellungen werden üblicherweise getrennt entweder im Kontext der funktionalen Programmierung oder der C++-Programmierung betrachtet. In dieser Veranstaltung werden beide Herangehensweisen zusammengeführt.

  • Kategorientheoretische Modellierung
  • Generische Typen, Polymohismus
  • Algebraischer Entwurf
  • Faltungen, Monoide, Funktoren, natürliche Transformationen und Monaden
  • Datentyp-generische Programmierung
  • Anwendungen, Beispiel-Bibliotheken
Moduldauer (Semester)
1
Unterrichtssprache
Deutsch
Gesamtaufwand
6.0 CrP; 180 Stunden, davon etwa 60 Stunden Präsenzzeit.
Semesterwochenstunden
4
Lernformen

Seminaristischer Unterricht 4 SWS

Geprüfte Leistung

Prüfungsvorleistung: keine

Prüfungsleistung: Klausur oder mündliche Prüfung (Art und Umfang der Prüfungsleistung wird den Studierenden zu Beginn der Veranstaltung bekannt gegeben)

Bewertungsstandard

Bewertung der Prüfungsleistung nach § 9 der allgemeinen Bestimmungen für Bachelorprüfungsordnungen

Bonuspunkte
keine
Häufigkeit des Angebots
Einmal im Jahr
Literatur
  • P. Chiusano, R. Bjarnason: Functional Programming in Scala, Manning 2015
  • A. Stepanov, E. Rose: From Mathematics to Generic Programming, Pearson 2015
  • Klassische Forschungsberichte nach Bedarf.