CSE 598 005: Category Theory for Computer Scientists

Category theory is an area of abstract algebra that studies structures along with their transformations. Categorical structures and universal mapping properties are ubiquitious in mathematics and category theory provides a common language and toolkit that greatly helps to organize mathematical theories.

This course provides an introduction to category theory, focusing on applications relevant to computer science. Specifically we will be focusing on the subfield of categorical logic which applies category theory to the design and analysis of formal logics and programming languages.

There are no formal prerequisites for the course, but it would be helpful to have familiarity with basic notions of programming language theory such as abstract syntax, type systems and formal semantics (operational, axiomatic or denotational). We will cover the relevant notions in an accelerated fashion in the course. Students with mathematical maturity but minimal programming language background are welcome to enroll but should understand the focus of the class will be on these computer science applications.

Learning Objectives

After completing this course, students should be able to

Degree Requirements

To see what degree requirements this course satisfies, see the spreadsheet on this page.

Evaluation

There are four components of your grade:

  1. Problem Sets (60%)
  2. Final Project (20%)
  3. In-class presentation of solutions (10%): we will set aside class time to review the solutions to problem sets
  4. Scribing (5%): students will contribute notes written in LaTeX of the in-class lectures to share with the entire class.
  5. Participation (5%): attendance and participation in lecture.

Problem Sets

Problem sets provide challenge problems to ensure mastery of the topics of lecture and the readings. Problem Sets will be posted below in the schedule with their LaTeX source in the github repo. You can complete them in groups of 2 or 3. You will submit them on Canvas as a pdf. You may include hand-drawn diagrams, but text and equations should be typeset in LaTeX.

Problem sets will be always be due at 11:59pm on the listed due date. Late work will not be accepted. It is always better to submit incomplete or incorrect work than nothing at all.

Students will present solutions to problem sets at the end of certain lecture periods. Signup for a presentation slot on the github.

Final Projects

To complement the material from lecture, students will undertake an independent research project related to category theory. Examples include a survey of an area of category theory not covered in class, implementation of category theory in a proof assistant, or a novel categorical analysis of some area of your own choosing. Students are encouraged to explore an area related to their own research interests.

Scribing

Each lecture will have an assigned scribe who will take notes on the lecture and post a LaTeX copy in the git repo.

Attendance and Participation

In-person attendance in this course is required. If you have a strong interest in taking the course but cannot attend in person, you may discuss your special circumstances with the professor. Lectures will be recorded for reference but this is not a substitute for attendance. Each class will have a sign-in sheet.

Course Schedule and Readings

The following schedule of topics and homeworks is tentative and will be updated throughout the semester.

Readings are chosen to complement the lecture. All readings will be from freely available online sources. I recommend reading before attending class. There is no textbook we will directly follow, but the two we will reference the most are Roy Crole’s Categories for Types and Emily Riehl’s Category Theory in Context.

Meeting DateTopicReadingsHWScribe
Mon, Aug 25Course overview, Intuitionistic Propositional LogicFrank Pfenning notes on natural deduction Shulman Chapter 0 primer on categorical logicMax S. New
Wed, Aug 27Concrete and Abstract Models of IPLCrole Ch 1.1-1.4Ivan Wei
Thu, Aug 28PS1 Released
Mon, Sep 01NO CLASS - Labor Day
Wed, Sep 03Soundness, Completeness, Initiality of Heyting Algebra SemanticsAyan Chowdhury
Mon, Sep 08Simple Type Theory: Syntax and Equational TheoryCrole Ch 4.1-4.3Alexander Bandukwala
Wed, Sep 10Set-theoretic Semantics, CategoriesCrole Ch 3Jesse Slater
Thu, Sep 11PS1 Due, PS2 Released
Mon, Sep 15PS1 Review, CategoriesCrole Ch 2.1-2.2, Riehl Ch 1.1-1.2Chris Davis
Wed, Sep 17Functors, Natural TransformationsCrole Ch 2.3,2.4,2.6,2.8, Riehl Ch 1.3-1.5Yuchen Jiang
Mon, Sep 22Equivalence of CategoriesRiehl Ch 1.6Yichen Tiao
Wed, Sep 24Universal Properties, PresheavesRiehl Ch 2Eric Bond
Thu, Sep 25PS2 Due, PS3 Released
Mon, Sep 29PS2 Review, Universal Properties II Riehl Ch 2
Wed, Oct 01Universal PropertieRiehl Ch 2Yuchen Jiang
Mon, Oct 06biCCC, Simple Categories with Families, Initiality of STLCCrole Ch. 4.5-4.9Conner Rose
Wed, Oct 08Initiality of STLCCrole Ch. 4.10Eric Bond
Thu, Oct 09PS3 Due, PS4 Released
Mon, Oct 13NO CLASS - Fall Study Break
Wed, Oct 15Steven Schaefer Guest Lecture: Initiality of STLC II
Thu, Oct 16Final Project Proposals Due
Mon, Oct 20PS3 Review, Canonicity of STLC
Wed, Oct 22Canonicity IIAlexander Bandukwala
Mon, Oct 27PS4 Review, Natural Numbers Objects, Inductive TypesHutton JFP ’99
Wed, Oct 29Initial Algebras and Terminal CoalgebrasAdamek-Milius-Moss Ch 1
Thu, Oct 30PS4 Due, PS5 Released
Mon, Nov 03Evaluation Order and Computational EffectsLevy Chapter 1 Moggi 89
Wed, Nov 05PS4 Review, Strong Monads and Kleisli CategoriesMoggi 91
Mon, Nov 10Algebra, Adjoint FunctorsBauer 2018Ayan Chowdhury
Wed, Nov 12AdjunctionsRiehl Ch 4.1-4.3Chris Davis
Thu, Nov 03PS5 Due, PS6 Released
Mon, Nov 17Call-by-push-value ILevy Chapter 2
Wed, Nov 19Call-by-push-value IIConner Rose
Mon, Nov 24Domain Theory I: Traced Cartesian Categories, DCPOsConner Rose
Tue, Nov 25PS6 Due
Mon, Dec 01PS5 Review, Domain Theory II: Recursive functions, Kleene’s Fixed Point theorem
Wed, Dec 03Constructing Inductive TypesAdamek-Milius-Moss Ch 2
Mon, Dec 08Final Project Presentations
Thu, Dec 11Final Project Writeups Due