The limit of my amazement at what a properly directed computer can do as my years of experience monotonically increases is positive infinity. However, progress is achieved only with the expenditure of immense effort in the creation of the directions and the analysis of the results. Some problems can be solved using only brute force, but they are few and often not general enough to be interesting. There is no problem more basic than the solving for the zeros of or constructing a polynomial with integer coefficients, and that is the type of problem described in this book.

However, basic does not translate into easy; these problems are hard. The advantage of integer coefficients is that they can be represented exactly, which reduces the level of programming complexity. No sample code is given in the book. Borwein uses only mathematical notation to explain the problems.

Each chapter contains a description of a problem area and ends with three sets of problems. The first is a set of exercises that are to be solved analytically and the second are to be solved computationally. The third group consists of open problems. The author does not care whether they are solved computationally or analytically. Chapter 1 opens with some basic background material followed by a list of what the author considers the seventeen most significant open problems in the field.

Topics covered in the remaining chapters include Rudin-Shapiro, Fekete and cyclotomic polynomials; location of and approximations for zeros of polynomials and the integer Chebyshev, Prouhet-Tarry-Escott, Easier Waring, Erdös-Szekeres and Littlewood problems. Explanations are thorough but not easy to understand. Nevertheless, they can be understood by the determined graduate student in mathematics. However, the ideal mix would be a collection of mathematics and computer science students, as the level of computer expertise needed to code the solutions to the problems is at the upper division level.

In my opinion, the student will need more experience in mathematics than in computer science if they are to code solutions to problems in this book. From my experience, it is easier to implement known mathematics using unknown programming techniques than it is to use known computing knowledge to code unknown mathematics techniques.

Research mathematicians often need to be able to write code to attack specific problems when no appropriate software tool is available. This book is ideal for a course designed to teach graduate students how to do that as long as they have or can obtain the necessary programming knowledge.

Charlie Ashbacher (cashbacher@yahoo.com) is the principal of Charles Ashbacher Technologies, a company that offers state of the art computer training. He is also an adjunct instructor at Mount Mercy College in Cedar Rapids, Iowa, and at the end of this academic year, he will be three courses short of having taught every class in the math and computer science majors. A co-editor of the *Journal of Recreational Mathematics*, he is the author of four books in mathematics and one in computer programming.