The first thing to note about An Introduction to Programming and Numerical Methods in MATLAB by Otto and Denier is that every word in the title is needed to adequately describe the book. In the paragraphs that follow I will describe why I think so.
First, it is definitely an introductory level book that deals with MATLAB, programming and numerical methods. However, it is not an adequate introduction to any of the above topics individually.
As a book that introduces programming, it includes material on loops, conditionals, scripts and functions. There is not much on programming organization or style. Object oriented programming is not mentioned at all even though the more recent versions of MATLAB have this capability. If your main purpose is to introduce programming this book is woefully inadequate.
Likewise, this book is not a good introduction to numerical methods. It has material on root-finding, interpolation, numerical integration, differential equations and a few other topics. None of the topics is covered in depth and some basic ideas that belong in an introductory book on numerical methods are missing. For example, how do you code the function f(x) = (1-cos(x))/x2 so that it evaluates accurately over the interval [-5,5]? You won’t find any clues here.
Another issue is that a numerical methods book with MATLAB in the title ought to take more advantage of the built-in features of the package. The section on solving differential equations barely makes mention of the fact that MATLAB has a host of ode solvers of very high quality and the two that are mentioned are not covered in enough detail to warrant their inclusion. There are also some programming idioms that are unique to MATLAB that are not covered very well. In particular, it is possible to make your code run much faster by “vectorizing” it. This process allows one to take advantage of precompiled loops that run faster than interpreted loops. Even with these problems, the material on MATLAB is not too bad.
If you are teaching a course whose goal is to cover a little programming, a little numerical methods and a little MATLAB and you are willing to plug a few holes, this book might work. Be sure to shop around though because there are quite a few similar books out there.
Jeffrey A. Graham teaches at Susquehanna University. His interests include numerical analysis, differential equations, inverse problems, and mathematical biology.