Last updated on 18th January 2012

Introduction to Category Theory

Graham Hutton
School of Computer Science
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.

I will teach this course at the Midlands Graduate School, University of Birmingham, 23-27 April 2012.


  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.