Books & Videos

Table of Contents

  1. Chapter 1 Strategies for Problem Solving

    1. Classic Puzzles

    2. General Problem-Solving Techniques

    3. Exercises

  2. Chapter 2 Pure Puzzles

    1. Review of C++ Used in This Chapter

    2. Output Patterns

    3. Input Processing

    4. Tracking State

    5. Conclusion

    6. Exercises

  3. Chapter 3 Solving Problems with Arrays

    1. Review of Array Fundamentals

    2. Solving Problems with Arrays

    3. Arrays of Fixed Data

    4. Non-scalar Arrays

    5. Multidimensional Arrays

    6. Deciding When to Use Arrays

    7. Exercises

  4. Chapter 4 Solving Problems with Pointers and Dynamic Memory

    1. Review of Pointer Fundamentals

    2. Benefits of Pointers

    3. When to Use Pointers

    4. Memory Matters

    5. Solving Pointer Problems

    6. Conclusion and Next Steps

    7. Exercises

  5. Chapter 5 Solving Problems with Classes

    1. Review of Class Fundamentals

    2. Goals of Class Use

    3. Building a Simple Class

    4. Classes with Dynamic Data

    5. Mistakes to Avoid

    6. Exercises

  6. Chapter 6 Solving Problems with Recursion

    1. Review of Recursion Fundamentals

    2. Head and Tail Recursion

    3. The Big Recursive Idea

    4. Common Mistakes

    5. Applying Recursion to Dynamic Data Structures

    6. Wrapper Functions

    7. When to Choose Recursion

    8. Exercises

  7. Chapter 7 Solving Problems with Code Reuse

    1. Good Reuse and Bad Reuse

    2. Review of Component Fundamentals

    3. Building Component Knowledge

    4. Choosing a Component Type

    5. Exercises

  8. Chapter 8 Thinking Like a Programmer

    1. Creating Your Own Master Plan

    2. Tackling Any Problem

    3. Required Operations for Cheating at Hangman

    4. Learning New Programming Skills

    5. Conclusion

    6. Exercises

  1. Colophon

  2. Appendix Updates