- Data Abstraction
- C++ Classes: Constructors, Destructors, Composition, Initializer List
- Pointers, Dynamic Arrays, Dynamic Memory Allocation
- Resource Management: Copy Constructors, Assignment Operators
- Linked Lists: Insertion, Delition, Destruction, Traversals, Tail Pointers, Doubly-Linked Lists
- Stacks and Queues
- Inheritance
- Polymorphism: Virtual Functions, Virtual Destructors, Pure Virtual Functions, Abstract Base Classes
- Object-Oriented Design Principles
- Recursion
- Templates, Iterators, STL Algorithms
- Algorithmic Efficiency (Big-O Complexity)
- Sorting Algorithms: Shelllsort, Quicksort, Mergesort
- Trees, Binary Trees, Binary Search Trees
- Tables, Tree-based Tables, Open/Closed Hash Tables, Maps
- Trees and Arrays, Priority Queues, Heaps, Heapsort
- Graphs, Depth-First Search, Breadth-First Search, Dijkkstra's Algorithm