This text introduces the beginning computer science student to the analysis, design, implementation, testing, and debugging of programs using ANSI C++, and to the breadth and richness of the computer science discipline. With ample use of examples and figures, the authors present material in a clear, visual manner. The introduction to object-oriented programming (OOP), which begins early in the text, is gradual and natural. Chapter 3 starts covering encapsulation with objects and use of classes, and Chapter 4 shows students how to define methods. Offering a wonderful hands-on introduction to many features of problem solving in C++, each chapter concludes with a laboratory section that is integrated with the topics in the text. Throughout the text, twenty-two discrete "breadth" sections present a broad range of topics in computer science. Students develop problem solving ability, programming skill, and an appreciation for the discipline of computer science.