Once thought to be high-brow estoeric mathematics, algebraic geometry is now finding applications in a myriad of different areas, such as cryptography, coding algorithms, and computer graphics. This book gives an overview of some of the techniques involved when applying algebraic geometry. The authors gear the discussion to those who are attempting to write computer code to solve polynomial equations and thus the first few chapters cover the algebraic structure of ideals in polynomial rings and Grobner basis algorithms. The reader is expected to have a fairly good background in undergraduate algebra in order to read this book, but the authors do give an introduction to algebra in the first chapter. Many exercises permeate the text, some of which are quite useful in testing the reader's understanding. The Maple symbolic programming language is used to illustrate the main algorithms, and I think effectively so. The authors do mention other packages such as Axiom, Mathematica, Macauley, and REDUCE to do the calculations. The chapter on local rings is the most well-written in the book, as the idea of a local ring is made very concrete in their discussion and in the examples. The strategy of studying properties of a variety via the study of functions on the variety is illustrated nicely with an example of a circle of radius one. Later, in a chapter on free resolutions, the authors discuss the Hilbert function and give a very instructive example of its calculation, that of a twisted cubic in three-dimensional space. They mention the conjecture on graded resolutions of ideals of canonical curves and refer the reader to the literature for more information. Particularly interesting is the chapter on polytopes, where toric varieties are introduced. The authors motivate nicely how some of the more abstract constructions in this subject, such as the Chow ring and the Veronese map, arise. The important subject of homotopy continuation methods is discussed, and this is helpful since these methods have taken on major applications in recent years. In optimization theory, they serve as a kind of generalization of the gradient methods, but do not have the convergence to local minima problems so characteristic of these methods. In addition, one can use homotopy continuation methods to get a computational handle on the Schubert calculus, namely, the problem of finding explicity the number of m-planes that meet a set of linear subspaces in general position. There are some software packages developed in the academic environment that deal with homotopy continuation, such as "Continuum", which is a projective approach based on Bezout's theorem; and "PHC", which is based on Bernstein's theorem, the latter of which the authors treat in detail in the book. My primary reason for purchasing the book was mainly the last chapter on algebraic coding theory. The authors do give an effective presentation of the concepts, including error-correcting codes, but I was disappointed in not finding a treatment of the soft-decision problem in Reed-Solomon codes.

In general this is a good book and worth reading, if one needs an introduction to the areas covered. Students could definitely benefit from its perusal.