Every so often, you find a book you are just itching to use to teach a course. This slim volume by Farin and Hansford is one of them. It presents just the right set of topics for students coming from the physical and natural sciences, engineering, geography, and other applied areas, who want to do scientific computation and visualize their results. It would also be quite suitable for informatics programs that emphasize applied computing and require an academic minor in an application area. An increasing number of these interdisciplinary academic programs are arising across the US. The discussion has the appropriate level of rigor for undergraduate students in their junior or senior year, who have completed a year of calculus. It is demanding enough to challenge them, yet accessible enough to allow the perception that they can learn the material if they work hard. The writing style is very readable.
The authors divide the book into three logical parts, but the separation is somewhat indistinct, since there is a clear, logical flow of topics throughout the book. The first part consists of a brief introduction, a chapter on floating-point numbers, and a chapter on coordinate systems. These are foundations upon which the two major parts are based. Scientific computation is covered in chapters 4 to 11. These chapters follow a logical progression, starting with linear algebra and including solving linear systems; finding eigenvalues and eigenvectors; principal component analysis; singular value decomposition; numerical calculus; data and curve fitting; ordinary differential equations and dynamic processes; finding roots of equations; and bivariate and trivariate functions. The portion on scientific visualization begins with a discussion of common plot formats, such as scatter, box, log, and histograms, and includes regression; triangle and polygonal meshes; scalar data over two-dimensional data--for example, contour and color density maps; volume visualization; and an introduction to the mathematics underlying computer graphics systems--for example, OpenGL.
Each chapter has only a handful of problems that will probably need to be augmented by the professor. The Web site for the book has downloadable slides, illustrations, and many Mathematica notebooks that were used to generate the examples in the book. The Mathematica notebooks could be rewritten for MATLAB or Maple users.