This book provides a solid presentation of the theory of ordinary differential equations and dynamical systems. It is well written and is at a level that a strong graduate student can handle. There are numerous exercises, which is always essential for a textbook. Mathematica code is provided in various parts of the text.

The book is divided into three parts: Classical Theory, Dynamical Systems and Chaos. The Classical Theory section begins with a very thorough treatment of initial value problems, from existence and uniqueness results via Picard iteration to the Peano theorem. Linear equations are covered nicely with ample explanation of the required linear algebra. The coverage of differential equations in the complex domain is quite technical but it provides a deep analysis of series solutions. The point of these techniques is often glossed over in an undergraduate course, so it is nice to see them deeply treated here. The boundary value problems chapter is well written and provides an excellent treatment of oscillation theory.

The Dynamical Systems section begins with a reference to groups and semigroups that may not be familiar to students, so a small amount of review will be required by the instructor here to define a dynamical system. The remainder of the section covers stability, higher dimensional systems and local behavior rather nicely. I particularly liked the discussion of planar dynamical systems because it is well-motivated by examples from ecology and electrical engineering.

The Chaos section treats discrete dynamical systems, beginning with a general discussion followed by more detailed chapters covering one dimensional systems, periodic solutions and higher dimensional chaos. This is not my area of expertise, but I thought the section was quite accessible. There were fewer exercises in this section of the book, with only five problems between the last two chapters. This concerned me, since I’m of the opinion that students learn much more through working problems than from anything presented in class.

My only significant concern is with the first chapter. The author is in the difficult position of reviewing much of the material in a standard undergraduate differential equations course while trying to put it in the context of the theoretical approach about to be presented in this book. Having said in his preface: “This book requires only some basic knowledge of calculus, complex functions and linear algebra”, he uses the implicit function theorem (without much explanation) as early as page 6. My concern is that this will intimidate the average graduate student sufficiently that they will give up on what turns out to be a quite a good book.

It’s easy to build all sorts of courses from this book — a classical one-semester course with a brief introduction to dynamical systems, a one-semester dynamical systems course with just brief coverage of the existence and linear systems theory, or a rather nice two-semester course based on most (if not all) of the material. I would have preferred a stronger first chapter and open-source software (such as Sage) for the examples. Despite my initial misgivings, I found this to be a very good book and will certainly give it consideration the next time I teach this course.