To the Second Edition This book is designed both for introductory courses in computer problem solving, at the freshman and sophomore college level, and for individual self study. The first edition of this book has been used for teaching introductory classes at University of California San Diego (UCSD), University of California Irvine (UCI), and many other schools. This second edition is based on our experience using the text over the past six years with a broad range of students. We have taught the course using variations on Keller's Personalized System of Instruction (PSI). The organization of this book is conducive to this approach but does not require it. PSI methods allow slightly more material to be absorbed by the students than is the case with the traditional lecture/recitation presentation. PSI allows grading according to the number of chapter units completed. In a 10 week quarter, virtually all students who pass the course at UCSDand UCI complete the material covered in the first eleven chapters and the exercises associated with them. A substantial portion complete the entire fifteen chapters. For a conventional presentation under the semester system, the 15 chapters should present an appropriate amount of material for the average student.