This textbook is meant to be used in a one-semester introductory undergraduate course or as a self-study guide for engineers (not software engineers). Readers are expected to have no prior computer programming experience. The book is unique in its concurrent teaching of the reading of Fortran (Fortran 77) and programming in C. A set of instructor’s materials, available from the author, includes overhead transparencies and test problems. I have not seen this material.
The author emphasizes the importance of stating problems clearly and working a check case by hand. The illustrative problems in the text are from engineering and physics. The subset of C and Fortran described is useful for engineering and physics programming. The text is organized logically, and the explanations are clear. I am troubled, however, by the author’s implications that Fortran is a dead language, that any Fortran program one encounters is legacy code, and that legacy code is always completely debugged. On the contrary, Fortran is still alive in engineering and scientific applications, and legacy code is not always completely debugged.
In only 167 pages plus appendices, a glossary, a bibliography, and an index, the book covers most of Fortran and C and a bit of history. Without substantial augmentation of the text and an extensive computer laboratory experience, students will gain only enough information to address toy problems in C and will leave the course with just enough knowledge to be dangerous. Even with additional materials and laboratory experience, learning both reading of Fortran and programming in C is too much in a one-semester course for students with no prior knowledge of computer programming.
The author states that “the engineer can apply the same principles of engineering design that are used to build machines to the construction of computer programs.” This leaves student engineers with the impression that the complexity, reliability, and correctness of computer programs are qualitatively similar to those of electric engines. This impression sets up future engineers for failure when they try to understand how any program but the most trivial works. Before using this text in a one-semester engineering course, carefully consider whether it meets your course objectives.