|
Algebra des Programmierens (AlgProg)7.5 ECTS (englische Bezeichnung: Algebra of Programming)
Modulverantwortliche/r: Stefan Milius Lehrende:
Henning Urbat, Stefan Milius
Startsemester: |
WS 2019/2020 | Dauer: |
1 Semester | Turnus: |
jährlich (WS) |
Präsenzzeit: |
42 Std. | Eigenstudium: |
183 Std. | Sprache: |
Deutsch und Englisch |
Lehrveranstaltungen:
Inhalt:
Induktive Datentypen wie z.B. Listen, Stacks und Bäume werden abstrakt beschrieben. Strukturelle Induktion und Rekursion für solche Datentypen (z.B. die fold-Operation auf Listen) werden auf Grundlage der Initiale-Algebra-Semantik entwickelt.
Dadurch werden verschiedene effektive Programmiertricks auf eine solide mathematische Grundlage gestellt. Grundlagen und Methoden der Kategorientheorie werden eingeführt und erklärt, insbesondere initiale Algebren und ihre Konstruktion. Evtl. werden Koalgebren behandelt, die es ermöglichen, verschiedene zustandsbasierte Systeme und ihre Semantik in einer einheitlichen Theorie zu studieren.
Lernziele und Kompetenzen:
- Fachkompetenz
- Wissen
- Die Studierenden geben elementare Definitionen und Fakten zu induktiven Datentypen, zustandsbasierten Systemen und grundlegenden kategoriellen Begriffen wieder
- Verstehen
- Die Studierenden
erklären grundlegende Begriffe und Konzepte der Kategorientheorie
beschreiben Beispiele dieser Begriffe und Konzepte
erläutern grundlegende kategorielle Ergebnisse und deren Beweise
- Anwenden
- Die Studierenden
wenden strukturelle Induktionsprinzipien (Definitions- und Beweisprinzip) auf Programmierbeispiele an
wenden strukturelle Koinduktionsprinzipien (Definitions- und Beweisprinzip) auf festgelegte Typen von zustandbasierten Systemen (Koalgebren) an
übertragen kategorielle Begriffe auf verschiedene Spezialfälle der Informatik (abstrakte Datentypen und verschiedene Arten von Automaten)
- Analysieren
- Die Studierenden analysieren kategorielle Beweise, diskutieren die entsprechenden Argumentationen und legen diese schriftlich klar nieder.
- Erschaffen
- Die Studierenden
arbeiten strukturelle Induktions- und Koinduktionsprinzipien für neue Datentypen und zustandsbasierte Systeme als Spezialfall der Initiale-Algebra-Semantik und Terminale-Koalgebra-Semantik aus
kreieren kategorielle Begriffe, die Konzepte von konkreten Datentypen und Systemen abstrahieren
- Lern- bzw. Methodenkompetenz
- Die Studierenden
beherrschen das grundsätzliche Konzept des Beweises als hauptsächliche Methode des Erkenntnisgewinns in der theoretischen Informatik. Sie überblicken abstrakte Begriffsarchitekturen.
vollziehen mathematische Argumentationen nach, erklären diese, führen diese selbst und legen sie schriftlich nieder
- Sozialkompetenz
- Die Studierenden lösen Probleme in kollaborativer Gruppenarbeit und präsentieren erarbeitete Lösungen.
Literatur:
- R. Bird and O. de Moor: Algebra of Programming, Prentice Hall, 1996.
J. Adamek, H. Herrlich and G.E. Strecker: Abstract and Concrete Categories: The Joy of Cats, 2nd edition, Dover Publishers, 2009.
Weitere Informationen:
www: http://www8.cs.fau.de/course:algprog
Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan: Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:
- Informatik (Bachelor of Science)
(Po-Vers. 2009s | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsrichtung Theoretische Informatik | Algebra des Programmierens)
- Informatik (Bachelor of Science)
(Po-Vers. 2009w | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsrichtung Theoretische Informatik | Algebra des Programmierens)
- Informatik (Master of Science)
(Po-Vers. 2010 | TechFak | Informatik (Master of Science) | Wahlpflichtbereich | Säule der theoretisch orientierten Vertiefungsrichtungen | Vertiefungsrichtung Theoretische Informatik | Algebra des Programmierens)
- Mathematik (Bachelor of Science)
(Po-Vers. | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsrichtung Theoretische Informatik | Algebra des Programmierens)
- Mathematik (Bachelor of Science)
(Po-Vers. 2019w | NatFak | Mathematik (Bachelor of Science) | Gesamtkonto | Module des Nebenfachs | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsrichtung Theoretische Informatik | Algebra des Programmierens)
Studien-/Prüfungsleistungen:
Algebra des Programmierens (Vorlesung mit Übung) (Prüfungsnummer: 861501)
- Prüfungsleistung, mündliche Prüfung, Dauer (in Minuten): 30, benotet
- Anteil an der Berechnung der Modulnote: 100.0 %
- Prüfungssprache: Deutsch und Englisch
- Erstablegung: WS 2019/2020, 1. Wdh.: SS 2020 (nur für Wiederholer)
|
![](/img/anew/void.gif) |
![](/img/anew/void.gif) |
|
UnivIS ist ein Produkt der Config eG, Buckenhof |
|
|