Reading List
Lecture notes will be provided.
The following books provide useful background reading.
- Basic Category Theory for Computer Science, Pierce.
- Conceptual Mathematics, Lawvere and Schanuel.
- Categories for the Working Mathematician, Saunders Mac Lane.
- Categories and Types, R. Crole.
- Proofs and Types, Girard, Lafont and Taylor.
- Algebra of Programming, Bird and de Moor.
Of these, the book by Pierce provides a very accessible and user-friendly first introduction to the subject.
Required Background.
Some familiarity with basic discrete mathematics: sets, functions, relations, mathematical induction. Basic familiarity with logic: propositional and predicate calculus. Some first acquaintance with abstract algebra: vector spaces and linear maps, and/or groups and group homomorphisms. Some familiarity with programming, particularly functional programming, would be useful but is not essential.