This text is extraordinary in many respects. In terms of precision and detail, it benefits from Professor Rostamian’s mathematical background as well as from his deep appreciation for a wide range of scientific and engineering applications. The book’s title may mislead some, as almost everything presented has real substance and is not for the timid. There is an assumption that the student is comfortable with programming, preferably using the C language, and with linear algebra and mathematical analysis at a relatively sophisticated level. The programming projects are from the physical sciences and related engineering disciplines. Someone who completes a course based on this text will have significant skills.
There are two parts: a relatively brief set of chapters to build a common background in C and its operating environment, followed by the many projects. With some variation, the project chapters are in pairs to give background and a starter project, followed by a more sophisticated application that builds on its predecessor. Some of the projects also help build a library of useful routines for several later projects. To give a flavor of the range of projects, a few are sparse matrices, Haar wavelets, image analysis, evolution of species, Nelder-Mead downhill simplex, trusses, finite differences for the heat equation, porous medium, Gaussian quadrature, triangulation and integration on triangles, and the finite element method. C code segments, illustrative figures, and data displays are given when helpful. The bibliography lists 84 key publications for delving deeper and includes the page number of this text where that publication is cited (a very nice touch).
For those practitioners of scientific computation in a C and Unix/Linux environment, it has much to offer as either a text or a reference. Those more interested in computational biology will not find as much here as those interested in the physical science side of things. Although this is a particularly good treatment of its target--detailed programming at a fairly low level with strong control--it feels a little dated as many choose a language with a full range of modern features (for example, C++) or a high-level software system and environment (for example, MATLAB) for scientific computation. Even so, Rostamian’s text is a valuable contribution to the scientific computing literature and to developing new practitioners.