Koffman and Wolfgang introduce data structures in the context of C++ programming. They embed the design and implementation of data structures into the practice of sound software design principles that are introduced early and reinforced by 20 case studies. Data structures are introduced in the C++ STL format whenever possible. Each new data structure is introduced by describing its interface in the STL. Next, one or two simpler applications are discussed then the data structure is implemented following the interface previously introduced. Finally, additional advanced applications are covered in the case studies, and the cases use the STL.
In the implementation of each data structure, the authors encourage students to perform a thorough analysis of the design approach and expected performance before actually undertaking detailed design and implementation. Students gain an understanding of why different data structures are needed, the applications they are suited for, and the advantages and disadvantages of their possible implementations.
Case studies follow a five-step process (problem specification, analysis, design, implementation, and testing) that has been adapted to object-oriented programming. Students are encouraged to think critically about the five-step process and use it in their problem solutions. Several problems have extensive discussions of testing and include methods that automate the testing process. Some cases are revisited in later chapters and new solutions are provided that use different data structures.
The text assumes a first course in programming and is designed for Data Structures or the second course in programming, especially those courses that include coverage of OO design and algorithms. A C++ primer is provided for students who have taken a course in another programming language or for those who need a review in C++. Finally, more advanced coverage of C++ is found in an appendix.
Course Hierarchy:
Course is the second course in the CS curriculum
Required of CS majors
Course names include Data Structures and Data Structures & Algorithms
"It is a practical book with emphasis on real problems the programmers encounter daily."
―Dr. Tim H. Lin,
California State Polytechnic University, Pomona
"My overall impressions of this book are excellent. This book emphasizes the three areas I want: advanced C++, data structures and the STL and is much stronger in these areas than other competing books."
―Al Verbanec,
Pennsylvania State University
THINK, THEN CODE™
When it comes to writing code, preparation is crucial to success. Before you can begin writing successful code, you need to first work through your options and analyze the expected performance of your design. That's why Elliot Koffman and Paul Wolfgang's Objects, Abstraction, Data Structures, and Design: Using C++ encourages you to Think, Then Code, to help you make good decisions in those critical first steps in the software design process.
The text helps you thoroughly understand basic data structures and algorithms, as well as essential design skills and principles. Approximately 20 case studies show you how to apply those skills and principles to real-world problems. Along the way, you'll gain an understanding of why different data structures are needed, the applications they are suited for, and the advantages and disadvantages of their possible implementations.
Key Features
- Object-oriented approach.
- Data structures are presented in the context of software design principles.
- 20 case studies reinforce good programming practice.
- Problem-solving methodology used throughout... "Think, then code!"
- Emphasis on the C++ Standard Library.
- Effective pedagogy.
TO LEARN MORE ABOUT THESE KEY FEATURES, PLEASE SEE THE FEATURES PAGE AND PREFACE.