Textbook
Introduction to Engineering Programming: Solving Problems with AlgorithmsISBN: 9780471202158
448 pages
April 2003, ©2004

Introduction to Engineering Programming: Solving Problems with Algorithms provides students of engineering with the tools to think algorithmically about scientific and mathematical problems within the first and second year engineering curriculum. The text supports the teaching of basic numerical and image processing algorithms as examples of engineering design. The creative aspects of solving unfamiliar problems by using available tools—the heart of engineering education and practiceare emphasized. A concern for elegance and correctness is a core value that the text seeks to convey to students.
The text uses C++ to implement algorithms, and is presented clearly and precisely. The text emphasizes a subset of C++ that can be used to solve many problems from physics, calculus, biology and introductory engineering courses, and it deemphasizes many features of the language that are unnecessary or illdesigned for this purpose, or too advanced to be comfortably covered in a first year college engineering course.
List of Codes.
Chapter 1. Introduction.
Chapter 2. Sequence.
Chapter 3. Iteration.
Chapter 4. Selection.
Chapter 5. Dealing with Data.
Chapter 6. Array Semantics.
Chapter 7. Aggregate Semantics.
Chapter 8. Finite Space and Time.
Appendix A. A Brief C++ Language Reference.
Appendix B. A Brief Standard Library Reference.
Index.
 Functions and procedures are introduced very early. Students often tend to avoid using functions and procedures when creating code. By introducing functions very early students are encouraged to decompose their code into functions and procedures from the beginning. This benefits both students and instructors because the students can create better designed and easier to understand code that is much easier to grade. Because the students have this key organizational tool in hand early they can create and implement more complex algorithms.
 Iteration is introduced before selection. The author introduces this concept and its expression in C++ relatively early, so that students can start creating and implementing nontrivial algorithms as soon as possible. In addition, common patterns of iteration are presented and different criteria for terminating iterations are described. Students are able to complete interesting work early and thus better motivated.
 Integrates calculus, physics and introductory programming. Students taking their first year programming class are also generally taking calculus and physics. The text makes direct connections to those other classes, so that students can see their first year curriculum not as several separate courses, but an interlinked whole. This physics and mathematical material is designed so that a student with a basic knowledge of physics and calculus, or simultaneously enrolled in those courses, will be able to follow the text. Students benefit because this text reinforces their other classes and because their programming text and class is reinforced by their calculus and physics.