Programming Languages

Kategorientheorie für Programmierer

Objektorientierte Programmierung nutzt Design-Patterns für die Konzeption von Programmen. Funktionale Programmierer können stattdessen auf die Begriffswelt der Kategorientheorie, einer mathematischen Disziplin, zurückgreifen um ihre Programme auf abstrakter Ebene zu entwerfen. In diesem Seminar sollen grundlegende Konzepte der Kategorientheorie anhand von Beispielen in Haskell erarbeitet werden.

Dozenten

David Binder
Researcher
David Binder
(Office: Room B211)
Ingo Skupin
Alumni
Ingo Skupin
(Office: Room B211)
Prof. Klaus Ostermann
Head
Klaus Ostermann

Struktur der Veranstaltung

Wir werden gemeinsam das Buch von Bartosz Milewski “Category Theory for Programmers” lesen, welches hier kostenlos in pdf-Form verfügbar ist. Eine gedruckte Ausgabe des Buches kann man von dem Print-On-Demand Dienstleister blurb.com beziehen. Zusätzlich werden wir evtl. noch weitere wissenschaftliche Artikel zum Thema lesen.

Die Teilnehmer lesen jede Woche das Kapitel des Buches das beim kommenden Treffen besprochen wird (jeweils von der Länge eines längeren Blogposts). Die Rolle des Diskussionsleiters rotiert wöchentlich unter den Teilnehmern. Die Aufgabe des Diskussionsleiters ist es sich intensiver auf das Thema vorzubereiten um die Diskussion zu moderieren. Ausserdem gibt es wöchentliche Übungsblätter von geringem Umfang, deren Bearbeitung notwendig ist, um die besprochenene Konzepte zu verinnerlichen.

Weitere Informationen

Vorbesprechung und Terminfestlegung

Die Vorbesprechung findet am 14. Oktober um 18 Uhr im Raum A104 statt. Der endgültige Termin wird dann über eine Doodle Umfrage festgelegt.

Der Termin für das wöchentliche Treffen ist:

  • Mittwochs, 18 c.t. Uhr
  • Im Raum A302

Termine

Das Seminar findet immer mittwochs, um 18:15 im Raum A302 auf dem Sand statt.

Mittwoch, 30. Oktober 6. November

Wir werden Kapitel 3 + 5 aus dem Buch besprechen. Diskussionsleiter ist Lucca.

Mittwoch, 13. November

Wir werden Kapitel 6 + 7 aus dem Buch besprechen. Diskussionsleiter ist Lukas.

Mittwoch, 20. November

Wir werden Kapitel 8 + 9 aus dem Buch besprechen. Diskussionsleiter ist Pavel.

Mittwoch, 27. November

Wir werden Kapitel 9 und 10 aus dem Buch besprechen. Diskussionsleiter ist Andreas.

Mittwoch, 4. Dezember

Wir werden Kapitel 10 aus dem Buch besprechen. Diskussionsleiter ist Marcus.

Mittwoch, 11. Dezember

Wir werden die ersten vier Abschnitte aus Hinze und James’ Reason Isomorphically lesen. Besonders wichtig sind dabei die Abschnitte 3 und 4.

Mittwoch, 18. Dezember

Wir werden die ersten Abschnitt 5 aus Hinze und James’ Reason Isomorphically lesen.

Mittwoch, 8. Januar

Wir werden Kapitel 20 und 21 aus dem Buch besprechen. Diskussionsleiter ist Michael.

Mittwoch, 15. Januar

Wir werden Kapitel 22 aus dem Buch besprechen. Diskussionsleiter ist Martin.

Mittwoch, 29. Januar

Wir werden Kapitel 24 (ohne Unterkapitel 24.6) aus dem Buch besprechen. Diskussionsleiter ist Alex.

Abschlussprojekte