A straightforward, syntax-intensive introduction to C++ that can be easily covered in a one-semester course - The book covers all the core topics of programming, including numeric types, software development, conditions, looping, data types, abstraction, classes, arrays, and recursion.
Pedagogical features help students learn key programming concepts - The text includes fully revised chapter goals and programming examples, as well as a full set of new programming exercises in each chapter. Additional features include testing and debugging sections, quick checks, and exam prep exercises.
Presents advanced topics at an introductory level with accessible writing and strong pedagogy - for example, the authors address metalanguages explicitly as the formal means of specifying programming language syntax; modular design is discussed in terms of abstract steps, concrete steps, functional equivalence, and functional cohesion; data abstraction and ADTs are explained in conjunction with the C++ class mechanism, forming a natural lead-in to OOP.
Takes a transitional approach to object-oriented programming - A preview of OOP is presented in Chapter 4, but focused discussion is delayed until Chapter 14 after students have acquired a firm grounding in algorithm design, control abstraction, and data abstraction with classes.
ISO/ANSI standard C++ is used throughout the book, including relevant portions of the new C++ standard library. Students with pre-standard C++ compilers are also supported. An appendix explains how to modify the textbook's programs to compile and run successfully with an earlier compiler.
C++ classes are introduced before arrays - this sequencing eases students into composite types by allowing them to access a component by name rather than by position. This also makes it easier to introduce the idea of an array of class objects or an array of structs.