EECS 598: Category Theory for Computer Scientists

This graduate-level course is an introduction to category theory for computer scientists. Category theory is a branch of algebra that studies structures abstracting function composition. This field of abstract mathematics has found many uses in the theory of programming languages, especially typed functional programming and design and implementation of proof assistants. Our goal in this course is to get a basic understanding of category theory sufficient to understand applications in the theory of programming languages.

Course Materials

The primary text is Steve Awodey’s Category Theory, 2nd Edition.

We will also use as supplementary material, the freely available texts Category Theory in Context by Emily Riehl and Categorical Logic from a Categorical Point of View by Michael Shulman.

Office Hours

Office hours will be held twice weekly, on Mondays and Wednesdays from 4-5:30pm. Unless otherwise specified, these will be hybrid remote and in-person in my office at Beyster 4640. Either way, you should use the queuing system.

Evaluation

Your grade in the course will primarily be based on the homework assignments, given out every 1-2 weeks. Homeworks will unless otherwise stated be problem sets to be completed either handwritten or in pdf format, preferably using LaTeX. You will be graded on correctness and clarity of your work. Homeworks can be done in groups of two. You should not discuss your homework with anyone besides your partner and the instructor.

Late homeworks will not be accepted. If you need an extension talk to the professor. However the lowest two homework grades will be dropped.

The next major portion of your grade will be an in-class presentation of homework solutions at the end of certain lectures. These will start once the first homework is due. At the end of each class one or more students will present a solution from the previous assignment to the class.

Lectures will be recorded using lecture capture, available to be accessed on Canvas. I encourage you to attend class in person if possible. You will get much more out of the course if you attend and ask questions in class.

The precise breakdown of grading is as follows

ActivityPercentage of final grade
Problem Sets80
In-class presentation20

Schedule of Topics

Below is a tentative schedule of topics and associated readings for the semester. Besides the first lecture, you are expected to read the assigned readings prior to lecture.

Meeting DateTopicAssigned ReadingsHW
Thu, Jan 6Course Overview, what is Category theory?Awodey Ch 1.1-1.3, Riehl Examples 1.1.3 and 1.1.4
Tue, Jan 11More Examples of CategoriesAwodey Ch 1.4, Riehl Examples 1.3.2
Thu, Jan 13Isomorphisms and Constructing CategoriesAwodey Ch 1.5-1.6PS 1 out, PS1 LaTeX
Tue, Jan 18Free Categories as SyntaxAwodey Ch 1.7, Shulman Ch. 0, Ch. 1.1-1.2
Thu, Jan 20Epimorphisms/monomorphismsAwodey Ch 2.1-2.3PS 2 out, PS2 LaTeX
Tue, Jan 25Initial/Terminal ObjectsAwodey Ch 2.4-2.7,
Thu, Jan 27ProductsPS 3 out, PS3 LaTeX
Tue Feb 1Duality, Initial ObjectsAwodey Ch 3.1-3.2
Thu Feb 3Syntax for Free Categories with XShulman Ch 1.4-1.6
Tue Feb 8(Co-)EqualizersAwodey Ch 3.3PS 4 out, PS4 LaTeX
Thu, Feb 10Subobjects & PullbacksAwodey Ch 5.1-3
Tue Feb 15Limits and ColimitsAwodey Ch 5.4-5.6
Thu Feb 17ExponentialsAwodey Ch 6.1-6.2
Tue Feb 22Cartesian Closed Categories in CSAwodey Ch 6.3-6.6
Thu Feb 24Cartesian MulticategoriesShulman Ch 2
Tue Mar 8Category of CategoriesAwodey Ch 7.1-7.2PS 5 out, PS5 LaTeX
Thu Mar 10Natural TransformationsAwodey Ch 7.4-7.5
Tue Mar 15Functor Categories, Monoidal CategoriesAwodey Ch 7.7-7.8
Thu Mar 17Equivalence of CategoriesAwodey Ch 7.9-7.10PS 6 out, PS6 LaTeX
Tue Mar 22PresheavesAwodey 8.1-8.4
Thu Mar 24Yoneda LemmaAwodey 8.3-8.4
Tue Mar 29Higher-order LogicAwodey 8.8
Thu, Mar 31AdjunctionsAwodey 9.1-9.2
Tue Apr 12Adjoints and Limits, Monads IAwodey 9.6PS 7 out, PS7 LaTeX
Thu Apr 14Monads IIMoggi
Tue Apr 19Category Theory in HaskellWadlerPS 8 out, PS8 LaTeX