Knowledge of problem solving and programming concepts is necessary for those who
develop applications for users. Unfortunately, many students have greater difficulty
with problem solving than they do with the syntax of computer languages. The art of
programming is learning multiple techniques and applying those techniques to specific
problems. When students learn basic programming and problem-solving techniques,
they can then concentrate on the syntax when learning specific languages. These techniques
may be presented in a separate class on problem solving or with a first language
course that concentrates on problem solving. This approach tends to decrease students’
frustration and improves their success rate.
This book is intended for a one-semester introductory course for programming
majors. It can serve as a primary text or as a supplement. Although this book is written
for students who have little or no computer experience, those who have studied a computer
language can benefit from the generic presentation of the material.
The text provides a step-by-step progression of ideas with detailed explanation and
many illustrations, from the basics of mathematical functions and operators to the design
and use of techniques such as codes, arrays, pointers, other data structures, database concepts,
and object-oriented programming concepts. The text uses problem-solving tools, such
as problem analysis charts, interactivity charts, IPO charts, algorithms, and flowcharts and
Universal Modeling Language (UML), to design a solution to a problem. The appendices
present additional tools, including Nassi-Schneiderman charts, and Warnier-Orr diagrams.
Putting It All Together sections illustrate a complete solution for a given problem, using the
concepts previously presented. In some cases, an earlier solution is updated to incorporate
more sophisticated techniques. Throughout the text, problems presented are typical of the
business world and provide excellent experience for students. These problems then can be
presented in a language course so that students can finish the solution on the computer.