Graph algorithms are easy to visualize and indeed there already exists a variety of packages to animate the dynamics when solving problems from graph theory. Still it can be difficult to understand the ideas behind the algorithm from the dynamic display alone. CATBox consists of a software system for animating graph algorithms and a course book which we developed simultaneously. The software system presents both the algorithm and the graph and puts the user always in control of the actual code that is executed. In the course book, intended for readers at advanced undergraduate or graduate level, computer exercises and examples replace the usual static pictures of algorithm dynamics. For this volume we have chosen solely algorithms for classical problems from combinatorial optimization, such as minimum spanning trees, shortest paths, maximum flows, minimum cost flows, weighted and unweighted matchings both for bipartite and non-bipartite graphs. Find more information at http://schliep.org/CATBox/.