Although Category Theory has been used as a convenient language for studying Data Structures, this application remains largely unnoticed by computer scientists. Other scientific applications of the abstract but convenient and organized language of Category Theory suffer the same fate. David I. Spivak has set out to change this in his new book, *Category Theory for the Sciences*, the first book on Category theory targeted specifically to a general audience of scientists. This book is intended to bridge the gap between the abstract mathematics of Category Theory and the working scientist who would benefit from the structure inherent in it. This is an extremely challenging task, yet Spivak rises to the challenge in his comprehensive, innovative, and, most importantly, readable new book. One of the stated goals (p. 5) is that category theory be “communicated to scientists with no math background beyond linear algebra.” To this end, the book is example-based rather than proof based.

Chapter 1 sets the stage for the rest of the book. Rather than beginning with definitions, Spivak explains what the overarching idea of Category Theory is. Basically it is a convenient language to store information as well as make it precise. From that perspective, Category theory seems much less scary. Spivak introduces an olog (ontology log); that is, a structure given “to the kinds of ideas that are often communicated in graphics” via “a framework in which to record data about a subject.” (p. 2) Of course, these fun and understandable data-managing systems are really categories and functors in disguise. Hence by the time one arrives at the chapter officially introducing category theory, the reader has already been thinking and analyzing problems with them for 200 pages.

Chapter 2 deals with the category of sets. Exercises are first posed as problems, with a solution given immediately. Much of the material in the chapter is expounded and communicated in this format. After introducing sets and functions, Spivak introduces commutative diagrams. Although a commutative diagram is not defined rigorously here, the basic idea is presented in an understandable and concrete manner through a simple yet illustrative example involving molecular biology. This chapter contains the introduction to ologs, which is quite understandable (I had never heard of ologs before reading this book). Spivak alerts the reader to careful distinctions. For example, one must take care in associating a weight to a massive object. This is not well-defined, as the weight depends on the planet. Furthermore, even if restricted to a particular planet, the weight may depend on time. Although this chapter contains some new terminology and notation, the ideas are very easy to understand and should be easily accessible by any college student and many high school students.

Chapter 3 discusses the more technical aspects of set theory; most generally kinds of limits and colimits. This is where we also learn about universal properties. The questions are very interesting, as they are things you wouldn’t expect in mathematics. For example, one example works through the question “is a phone the coproduct of a cell phone and a landline phone?” This chapter begins to get very interesting, as more complicated commutative diagrams with certain properties are applied to interpret everyday activities.

Chapter 4 introduces Monoids and Groups. Spivak gives a nice introduction to them by getting the reader to think about actions being combined together to perform more complex actions. This could be, for example, a certain combinations of button presses in a video game. With the addition of Graphs and Orders, the Spivak is able to combine much of what he has built up previously with ologs to make a fairly rigorous yet understandable discussion about databases. The brilliance of this move, as Spivak alludes to in the title of this chapter, is that one is really working with categories and functors at this point without realizing it.

With the lead-in from the previous section set, Spivak is now ready to formally introduce Categories and Functors in chapter 5. Part of the ease of the introduction is that the reader already has ologs and databases under his belt to give himself a concrete example of the more technical definitions he will be working with. After the introduction of the basic terminology and several intuitive examples, Spivak gives more formal examples of categories and functors from pure mathematics in Section 5.2. Chapter 6 more formally introduces different kinds of limits and colimit diagrams, often computing specific examples. Chapter 7 begins with adjoints and covers Yoneda’s Lemma and operads.

This is a great book not only for the scientist who wants to learn Category theory, but for the mathematician as well. Definitions are well motivated and many different kinds of examples, both mathematical and applied, are provided. Spivak’s book is filled with a plethora of pictures and diagrams — it is all very pleasing to the eye. As mentioned above, the exercises very well done. He gives plenty of them and immediately provides the solution.

Time will tell if scientists pick this book up and begin to use categories and functors in their work, but in any event, Spivak has given us a gem that will endure.

Nick Scoville (nscoville@ursinus.edu) is an assistant professor of mathematics at Ursinus College. His areas of interest are homotopy theory, discrete topology, and the history of topology. He considers himself an amateur scholastic. His website can be found at http://webpages.ursinus.edu/nscoville/.