Introduction to Category Theory

Graham Hutton, University of Nottingham


Category theory is a mathematical approach to the study of algebraic structure that has become an important tool in theoretical computing science, particularly for semantics-based research.

The aim of this course is to teach the basics of category theory, in a way that is accessible and relevant to computer scientists. The emphasis is on gaining a good understanding the basic definitions, examples, and techniques, so that students are equipped for further study on their own of more advanced topics if required.


  1. Categories (what is category theory, why is it useful, why is it useful to computing, course topics, graphs, labelled graphs, categories, examples of categories);

  2. Functors (graph homomorphisms, labelled graph homomorphisms, functors, examples of functors, functors as arrows, functors with two arguments);

  3. Natural transformations (commuting diagrams, natural transformations, natural transformations as arrows, the Godement calculus);

  4. Special constructions (isomorphisms, initial objects, terminal objects, products, co-products);

  5. Case study (algebras, homomorphisms, homomorphisms as arrows, initial algebras, catamorphisms, fusion, banana split).


There are also some exercises for each lecture.