Programming is essentially about certain ‘data structures’ and functions between them. Algebra is essentially about certain ‘algebraic structures’ and functions between them. Starting with such familiar algebraic structures as groups and rings algebraists have developed a wider notion of algebraic structure (or ‘algebra’) which includes these as examples and also includes many of the entities which in the computer context are thought of as data structures. — The Structures of Computation and the Mathematical Structure of Nature