Category Theory, Monads, and Computation


Master level course, 4 ECTS. UR1 / ENS Rennes 2020/21 (sif)


Syllabus

The main objective of this course is to introduce a different, yet very rich and powerful, point of view to several constructs and structures the students have already seen. After presenting the basics of category theory, we will investigate the concept of monads in both its theoretical roots and practical use in programming languages. We hope that this course serves as an invitation for master students to enrich their toolbox with open-mindedness, elegance and curiosity.

Keywords Category Theory, Monads, Semantics, Functional Programming, Computation, λ-calculus

Pre-requisite

Licence in mathematics or theoretical computer science or equivalent degree. Functional programming, semantics, programming languages’ theory, logic.

Roadmap (tentative)

All courses will take place in B02B-E209 – don’t forget your mask!

Introduction – Rethinking Set Theory

  • September 14 ETCS revisited (1/2)
  • September 16 ETCS revisited (2/2)

Part 1: Basics of Category Theory [Slides]

  • September 21 Categories, Duality, Product.
  • September 23 Functors
  • September 28 TD1.
  • September 30 Natural Transformations
  • October 5 Adjoints
  • October 7 TD2

Part 2: Monads and Computation

  • October 12
  • October 14 TD.
  • October 19
  • October 21 TD.
  • November 2
  • November 4 TD.

Exam

  • November 9. Exam

Evaluation

The final score will be composed of two marks:

  1. A written exam: November 9, 5 – 7 PM
  2. All TDs will be marked.

Seminars

TBA.

Previous Exams

  • Exam 2019/2020 [exam]

Bibliography

  • Tom Leinster. Rethinking Set Theory. pdf
  • Tom Leinster. Basic Category Theory. pdf
  • Paul-André Melliès. Categorical Semantics of Linear Logic. pdf
  • Functional Programming in OCaml online book

Office Hours

  • Thursdays, 2–4 PM (Inria)
  • For any request/question, feel free to email me (see address below)