Note: This article was scanned using OCR from the 1984 Summer CCCE Newsletter. Please contact us if you identify any OCR errors.
Pascal is strongly recommended as a teaching language by many computer scientists and enthusiastically endorsed by columnists in some computer magazines. However, chemists who set out to learn about chemical applications of this language may encounter some frustrations. Although there are many Pascal textbooks, few of them deal with problems of interst to chemists, and the sample programs in chemistry books are usually written in FOR-TRAN or BASIC. Miller's book provides an excellent opportunity to learn more about Pascal while also developing a "toolkit" of scientific programs that may be used for either teaching or research.
This book was developed from a course in computer methods for engineering students taught at the New Mexico Institute of Technology, and the list of topics covered is very impressive for what I presume is a one semester course. An elementary knowledge of Pascal is assumed, and it is helpful to have one of the standard Pascal textbooks at hand for reference. The author intends the material to be read sequentially, so that the techniques introduced initially, such as random number generation, sorting, plotting, and matrix manipulations, are used in later programs. This can make it somewhat difficult to run an isolated program for a specific application, but it does make the topic development very logical and understandable.
Miller presents an extensive discussion of computational methods, including topics such as numerical integration, the Newton-Raphson Method, linear and nonlinear curve-fitting, and the solution of simultaneous equations. He not only suggests several different approaches for each of these techniques but also points out some of the complications which may arise. The text includes roughly sixty-five complete Pascal programs that demonstrate these various techniques. The discussion of the various subjects is quite clear, but as might be expected from the number of topics covered, the coverage of the mathematical background is sometimes rather brief. Those who wish a more extensive mathematical treatment can either 'consult the books mentioned in the bibliography or else go to one of the more mathematical references such as A.C. Norris' book on computational chemistry.
I have found this book to be very enjoyable, and one of my students who is currently working through it has expressed a similar response. The discussion is 'clear, the organization is good, and the programs are presented in a format that is easy to follow. The author reports that he has tested most of the programs on several different Pascal compilers. I have tried many of the programs, and the few cases where minor modifications were necessary to make them run may well be because our Pascal compiler is not one of the common commercial versions. In order to make the programs as portable as possible, the author has used only a fundamental set of Pascal commands. I regret not having the chance to see examples where some of the more elegant structures are used, but this regret is more than balanced by the fact that the programs run so well. I do wish that exercises had been provided, and I hope that this omission will be corrected in the next edition.
In summary, I have found much that I like in this book and very little that I dislike. Because of its clarity and organization, it should be useful to many different individuals having a broad range of computer experience. It is especially welcome to find such a readable book that covers so much valuable material on computational methods.