Seminar: Category Theory for Programmers

Responsible:Prof. Dr. Peter Thiemann
Assistance:Hannes Saffrich
Time and Place:Di 16-18 in Geb. 051, SR 00-031


2023-10-17 Tu16:00ZoomFirst meeting
2023-11-07 Tu16:00Geb. 051, SR 00-031Barr & Wells, Chapter 1 and 2
2023-11-14 Tu16:00Geb. 051, SR 00-031Barr & Wells, Chapter 3.1, 3.2, 3.3
2024-02-15 Th10:00Geb. 051, SR 00-031Presentations Part 1
2024-02-16 Fr10:00Geb. 051, SR 00-031Presentations Part 2
2024-02-17 Sa23:55IliasSubmission deadline for slides
2024-03-01 Fr23:55IliasSubmission deadline for draft reports
2024-03-08 Fr23:55IliasSubmission deadline for reviews
2024-03-15 Fr23:55IliasSubmission deadline for report


2024-02-15 Th1Monads for functional programming
2024-02-15 Th2Free applicative functors
2024-02-15 Th3Asymptotic Improvements of Computations over Free Monads
2024-02-15 Th4Functional programming with bananas, lenses, envelopes and barbed wire
2024-02-16 Fr1Compiling to categories
2024-02-16 Fr2Everybody's got to be somewhere
2024-02-16 Fr3Sorting with bialgebras and distributive laws
2024-02-16 Fr4Realization is Universal


  • Attendance and active participation in the regular meetings and presentations of all participants
  • Preparation and presentation of a 30-minute talk about the topic of the assigned paper
  • Preparation of a written report of the topic of the assigned paper as described in the Procedure section
  • Submission of the report and presentation slides before the respective deadlines


A seminar concentrates on scientific results, but it also teaches competences required for scientific work. In particular

  • literature research
  • reading and understanding of scientific texts
  • presentation skills
  • creating a written report

This seminar will proceed as follows:

  • Topic Selection and First Meeting. In this seminar we study the book Category Theory for Programmers by Bartosz Milewski. The first meeting is dedicated to discuss administrative matters. It will also be possible to ask questions about the topic.

  • Regular Meetings. The first couple of regular meetings take the form of a reading seminar. Together, we will read and discuss the book chapters that cover introductory topics. Participants are expected to read the respective chapters before the meeting. The reading assignments can be found in the Schedule.

  • Presentation. Presentations will take place at the end of the semester as a block seminar. A tutorial video about scientific presentations can be found in the Links section.
  • Report. A written report needs to be submitted at the end of the semester, which satisfies the following criteria:
    • It must be at most 10 pages long.
    • It must be prepared with LaTeX. A good introduction to LaTeX may be found in the documentation of Overleaf.
    • It must use the LaTeX document class llncs.cls according to the template document which is available on the Springer web site under Information for Authors. The above website contains a useful rubric "Author Guidelines" with further information. Do not change the formatting parameters of llncs.cls in any way.
    • It must use bibtex for references. Many bibtex references can be obtained from the DBLP computer science bibliography.
    • It should adhere to our style guide.
    A tutorial video about scientific writing can be found in the Links section.
  • Reviews. Just like in a real paper submission, the reports are subject to peer review.

    For this purpose, you have to submit a draft of your report two weeks before the final report submission deadline. You will then receive two drafts of other participants and have one week to submit reviews about them. You will then receive two reviews of your own draft report and have one week to improve your report and submit a final version.