What makes this book so unique?

There are a few items that make this textbook unusual. As if C++ for beginner programmers was not enough:

bulletNo special background required - All concepts are introduced without resorting to any mathematical background. Daily situations are explored so that the student feels familiar with the subject. How can you do this?
bulletInstant gratification - Students are able to produce interesting programs dealing with graphic objects very early in the course. This encourages them to learn more. As a matter of fact, this may be the only introductory programming text in C++ that teaches the students to manipulate graphics!
bulletLearn as you go - Students do not have to learn an incredible amount of boring rules before being able to program. Subjects are introduced smoothly.

How can this be done?

The main tool lying underneath this feat is the support software developed to accompany the book. This is a main program including a class library. The student plugs his/hers own "mainprogram" into this software and it is ready to go! Objects, such as athletes, clocks, robots, squares, circles and many others are immediately available in the computer screen.

Sounds too good? There must be a drawback!

As a matter of fact, there is.

bulletIn order to make this software practical, I had to choose a platform for it.
bulletI chose the IBM PC because that is a machine many students are likely to have (as opposed to a workstation). I could also have chosen a Mac, but still, those interested in C++ are more likely to be interested in PCs.
bulletI chose Windows, because less and less people are interested in dealing with the DOS interface.
bulletThe software currently runs with Turbo C++ (3.1 and 4.5), Borland C++(3.0, 4.0 and 5.0) and Microsoft Visual C++(1.52 and 4.0).

Therefore, it is imperative that students have easy access to a computer running this software. No one will learn anything just by reading the book! One has to use the software!

No special background? How come?

Students may be reluctant to remember how to use prime numbers, how to find the greatest common divisor and other things. Nonetheless, they can easily understand how to perform a simple fitness exercise. By instantiating an object of class athlete, student can send messages to this object (well, invoke member functions, as they will learn later) and have the athlete move with the arms up, down, left and right on the screen.

Whatever they tell the athlete to do, they will be able to see on the screen. They will not need to use any "cout" nor understand the meaning of input / output in order to do that. They will inequivocally see how the computer understood their orders.

The same fitness class exercises are used to explain the role of functions and repetitions. Students will practice the syntax of functions and repetitions using the familiar fitness problem. Some other problems are inserted in the text as well.

Numeric computation is postponed until chapter 5. Only a few simple rules for expressions are discussed in chapter 3. Even then, when dealing with numeric computations, I decided to take advantage of the graphics and animation capabilities the student is already used to. Some background of coordinate systems will help in this chapter. In this chapter students show circles and squares on the screen, move them to either draw graphs of functions or to produce animations. Simulations of freedrop, ballistic movement and orbiting planets are included.