Covers important data structures and core algorithm design techniques. Topics include efficiency analysis, hash tables, heaps, graphs, trees, and sorting/searching. Students also work with paradigms like brute force, divide-and-conquer, dynamic programming, and greedy algorithms, learning how to pick the right approach for a given problem.