This is the second edition of a textbook that aims to address many topics across the spectrum of scientific computing. The authors describe a new way of learning scientific computing that focuses more on “computational thinking”. Throughout the book they propose to use a three-phase methodology consisting of “what”, “how”, and “solve”. In the “what” phase, the student learns the physical basis of the mathematical problem that is to be solved. The “how” phase involves describing the problem in a way that is compatible with MATLAB software. Then the “solve” phase identifies appropriate MATLAB functions needed to solve the problem directly. It sounds so simple!

The authors’ underlying philosophy is that it is possible to solve advanced mathematical problems with a computer without a complete preparation in mathematics. They say, “Busy students, engineers and scientists need ‘fast food’ ways to compute and get problems solved reliably.” One might reasonably worry about the resulting intellectual indigestion, but the authors do make an enthusiastic case for their argument.

The book begins with a survey of computer mathematical languages and pretty quickly comes down to recommending MATLAB over *Mathematica*, *Maple* and conventional computer languages because of its capability for numerical computation. The authors then proceed to offer an introduction to MATLAB and quickly move on from there. They note that there are thousands of MATLAB functions and they believe that the major contribution of the book is to bridge the gap between problems and solutions using well-grouped topics and MATLAB example scripts.

There are seven major “problem” sections. They begin with calculus problems, and proceed through linear algebra, integral transforms with complex-valued functions, nonlinear equations with numerical optimization, differential equations, data interpolation and approximation, probability and statistics. The book concludes with a chapter on “nontraditional mathematical branches” that includes fuzzy logic, rough set theory, neural networks, wavelets and a scattering of other topics.

The overall number of topics is so large that the authors simply cannot carry out the program they propose. There is just too much stuff and it is seriously short on detail. First of all, a reader would have to be competent with MATLAB to make any progress at all because the book’s introduction falls well short of what would be needed for a new user. Beyond that, treatment of individual topics throughout the book is often so abbreviated as to be largely inaccessible to the readers that the authors seem to want to address. Typically a topic gets a short introduction, usually less than four pages. Examples follow. They take the form of a short problem statement, a series of MATLAB commands, and then a solution. As an example, the whole of digital filter design — a serious and reasonably difficult subject for electrical engineering students — is treated in Chapter 8 in four pages of development and three pages of exercises. If readers were not already familiar with digital filters, they’re unlikely to learn much here.

In the authors’ terminology, the “what” is consistently and seriously neglected, and the transition from “what” to “how” is frequently insufficient. The presentation is so consistent in this respect that one has to wonder what the authors had in mind and what kind of readers they expected. Those readers with experience and skill in numerical computation and a decent familiarity with MATLAB are likely to find useful tidbits and suggestions. As a reference like this, the book has some merits. It does not have much to offer less experienced readers.

Bill Satzer ([email protected]) was a senior intellectual property scientist at 3M Company. His training is in dynamical systems and particularly celestial mechanics; his current interests are broadly in applied mathematics and the teaching of mathematics.