For the last several years the National Science Foundation has helped support the redesign of our introductory computer science courses here at Cornell. I have benefited from this support and from the lively discussions that took place in the context of the various course renovations.

The programs in the text are written in Think Pascal , a product of the Symantec Corporation. I find that the Think Pascal environment is very effective when teaching the concepts in this book to undergraduates.

Stephen Vavasis taught from a preliminary version of the text and made many useful suggestions. He and Professor Norman Kretzmann (philosopher, colleague, neighbor) put me in touch with the two greatest ``problem-solving'' texts that I have ever read:

H. Dorrie, 100 Great Problems of Elementary Mathematics (Translated by D. Antin), Dover Publications Inc., New York, 1958.

H. Steinhaus, Mathematical Snapshots, Oxford University Press, New York, 1951.

I break out in a mathematical fever every time I look over these wonderful books and I will consider my manuscript a success if it can engender the same kind of enthusiasm for computer problem-solving.

Cindy Robinson of Cornell University was my administrative assistant during the four years it took to develop this book. The completion of the manuscript would have been impossible without her contributions.