EECS 598 005: Category Theory for Computer Scientists

Category theory is a mathematical theory of structures and transformations. While originally developed for applications to pure mathematics, category theory has become a useful tool for studying logic and programming languages.

The breadth of applications and high level of abstraction can make category theory difficult to approach for those without an extensive math background. This course aims to introduce and motivate category theory by focusing on applications in computer science, in particular to logic and programming languages.

Students are expected to have familiarity with basic notions of programming language theory such as abstract syntax, type systems and some form of formal semantics (operational, axiomatic or denotational). Students with a strong math background but minimal programming language background are also welcome to enroll but 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 (70%)
  2. In-class presentation of solutions (10%): we will set aside class time to review the solutions to problem sets
  3. Scribing (10%): students will contribute notes written in LaTeX of the in-class lectures to share with the entire class.
  4. Participation (10%): attendance and participation in lecture.

Problem Sets

Problem Sets will be posted below in the schedule with their LaTeX source in the gitlab 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.

Students will present solutions to problem sets at the end of certain lecture periods. Signup for this on the gitlab repo.

Scribing

This semester will use a new curriculum without following a single textbook. To help everyone in the class, each lecture will have an assigned scribe who will take notes on the lecture and post a LaTeX copy in the gitlab repo.

Attendance

Participating in this course means attending lecture in person. Lectures will be recorded but this is not a substitute for attendance. Each class will have a sign-in sheet.

Course Schedule

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

We will have two weeks of no lecture during the semester: the week of MLK day and spring break. There will not be a homework due after spring break but there will be after MLK week (since only one day is an academic holiday).

Readings are chosen to complement the lecture. All readings will be from freely available online sources.

Meeting DateTopicReadingsHWScribe
Wed, Jan 04Course overview, Propositional LogicFrank Pfenning notesMax S. New
Mon, Jan 09Models of Propositional LogicCrole Ch 1.1-1.4PS1 ReleasedAlan Yang
Wed, Jan 11Soundness, Completeness, Initiality of Heyting Algebra SemanticsZhemin Qu
Mon, Jan 16NO CLASS - MLK Day
Wed, Jan 18NO CLASS - POPL
Mon, Jan 23Simple Type Theory: Syntax and Axiomatic SemanticsCrole Ch 4.1-4.3, STT Full RulesPS1 Due, PS2 ReleasedYanjun Chen
Wed, Jan 25Signatures for STT, Set-theoretic SemanticsCrole Ch 3Chris Jiang
Mon, Jan 30Set-theoretic Semantics, CategoriesCrole Ch 2.1-2.2Jonah Nan
Wed, Feb 01CategoriesRiehl Ch 1.1-1.2Han Jiang
Fri, Feb 03PS2 Due, PS3 Released
Mon, Feb 06FunctorsCrole Ch 2.3, Riehl Ch 1.3Wen Plotnick
Wed, Feb 08Natural Transformations, Universal Properties I (Products)Crole Ch 2.4,2.6,2.8, Riehl Ch 1.4Steven Schaefer
Mon, Feb 13Universal Properties II, Exponentials and PredicatorsRiehl Ch. 2.1PS3 Due, PS4 ReleasedRunze Xue
Wed, Feb 15Universal Properties III, Representability and Yoneda’s LemmaRiehl Ch. 2.2-2.3Shubh Agrawal
Mon, Feb 20C-T Structures IRiehl Ch. 2.3-2.4Jigang Li
Wed, Feb 22C-T Structures IICrole Ch. 4.5-4.9Yuchen Jiang
Fri, Feb 05PS4 Due
Mon, Feb 27NO CLASS - SPRING BREAK
Wed, Mar 01NO CLASS - SPRING BREAK
Mon, Mar 06C-T Structures III, Soundness and CompletenessCrole Ch. 4.5-4.9PS5 ReleasedJin Pan
Wed, Mar 08Logical RelationsCrole Ch. 4.10Benjamin Kelly
Mon, Mar 13More LR/Natural Numbers ObjectsHutton JFP ’99Pranav Srinivasan
Wed, Mar 15Inductive DatatypesMcBride POPL ’08Kevin Wang
Mon, Mar 20Evaluation Order and Computational EffectsLevy Chapter 1PS5 Due, PS6 ReleasedMichael Xi
Wed, Mar 22Equivalence of CategoriesRiehl Ch 1.5Daiwen Zhang
Mon, Mar 27Adjoint FunctorsRiehl Ch 4.1-4.3Jonathan Moore
Wed, Mar 29More Adjoint FunctorsLevy Chapter 2Owen Goebel
Fri, Mar 31PS6 Due, PS7 Released
Mon, Apr 03Call-by-push-valueEric Zhao
Wed, Apr 05Call-by-push-value IIElanor Tang
Mon, Apr 10Effects in CBPVPS7 Due, PS8 Released
Wed, Apr 12Models of CBPVMatt Wang
Mon, Apr 17Review and ConclusionsDarren Fitzgerald
Fri, Apr 21PS8 DueMatthew Nomura