Category Theory for Computer Scientists

Short Name
Kategorientheorie f. Info
Module Code
Module Coordinator
  • Prof. Dr. Bettina Just
  • Prof. Dr. Bettina Just
Short Description

Basic concepts of category theory used in computer science, such as products, exponential objects, functors, natural transformations, monads, adjoints, Yoneda lemma, Curry-Howard-isomorphism.

Learning Objectives

Students are acquainted with the basic concepts of category theory used in computer science. They are able to apply these concepts. They will train their ability of abstract thinking as well as their ability to access new ways of thinking alone or in groups.


Category theory is the mathematical theory of structures. Type theory in computer science is based on it. It is also applied in functional programming.

The lecture is an introduction to category theory, with a special focus on constructions applied in computer science.

Contents are:

  • Examples of categories, initial an terminal objects;
  • Constructions within one category, such as products, coproducts, exponentiation, F-algebras;
  • Constructions between categories, such as functors, natural transformation, adjoints;
  • Monads, Yoneda lemma, Curry-Howard correspondence;
  • Hints for applications in type theory, computer-assisted proof systems and generic programming.
Duration in Semester
Instruction Language
Total Effort
6.0 CrP; an estimated 180 hours, of which approximately 60 are spent in class.
Weekly School Hours
Method of Instruction

Seminaristischer Unterricht 4 SWS

Requirements for the awarding of Credit Points

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)

  • B. Milewski: Category Theory for Programmers, Version 4.0 Nov. 2017, International Share Licence CC BY-SA 4.
  • B. Pierce: Basic Category Theory for Computer Scientists, MIT Press Cambridge 1991.
  • D. Spivak: Category Theory for the Sciences, MIT Press 2017.
Prerequisite Modules
Prerequisite for Modules