Writing programs is not easy! In particular, writing programs that perform correctly in a
variety of different situations is not easy. It requires that you develop a way of thinking about
problems and developing solutions to those problems that is probably quite different from
anything you have done before. Developing these skills is the essence oflearning to program.
Once you've acquired these skills, they will be equally applicable to the design of programs
for video games, airline reservation systems, or sending electronic mail. They will be equally
applicable no matter what type of computer (or computers) your program is to run on or
what computer programming language it is written in! Thus, our emphasis in this book is on
developing the problem solving skills necessary to write correct computer programs given
some problem to be solved.
Recognizing that programming is difficult, computer scientists have developed a number
of different approaches to the design of programs. Different approaches, or methodologies,
exist. Some are more applicable to certain types of problem than others. One of the most
widely used, and maybe even the most widely applicable, approaches to program design that
is used in the computer industry today is known as the object-oriented approach. This is the
approach that we advocate in this book. Using the object-oriented approach to programming
gives you a common framework for tackling different problems that will hopefully help you
to write correct programs. Unfortunately, using the object-oriented (or indeed any other)
approach to program design cannot guarantee that you will get a correct program at the end.
It serves only as a guide to the design of the program. Writing a correct program depends
ultimately on your own skill and application.