This book is a textbook in basic category theory, written specifically to be read by researchers and students in computing science. We expound the constructions we feel are basic to category theory in the context of examples and applications to computing science. Some categorical ideas and constructions are already used heavily in computing science and we describe many of these uses. Other ideas, in particular the concept of adjoint, have not appeared as widely in the computing science literature. We give here an elementary exposition of those ideas we believe to be basic categorical tools, with pointers to possible applications when we are aware of them.
In addition, this text advpeates a specific idea: the use of sketches as a systematic way to turn finite descriptions into mathematical objects. This aspect of the book gives it a particular point of view. We have, however, taken pains to keep much of the material on sketches in sep arate sections, which it is not necessary to read to learn many of the topics covered by the book.