There are a few items that make this textbook unusual. As if C++ for beginner programmers was not enough:
|No 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?|
|Instant 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!|
|Learn as you go - Students do not have to learn an incredible amount of boring rules before being able to program. Subjects are introduced smoothly.|
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.
As a matter of fact, there is.
|In order to make this software practical, I had to choose a platform for it.|
|I 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.|
|I chose Windows, because less and less people are interested in dealing with the DOS interface.|
|The 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!
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.