Practical Algorithm Analysis

This course introduces algorithm analysis with a practical focus on how CPUs execute code and fetch data. Topics include growth rates, locality, and why memory layout matters.

1
Data Structures & Algorithms
An introduction to data structures and algorithms from a practical, hardware-first perspective. Learn how the physical layout of your data in memory impacts performance.
2
CPUs, Memory, and Locality
Understand how our code interacts with physical hardware. Learn about virtual memory, the stack vs. heap, cache lines, and prefetching.
3
Polynomial Algorithms
Learn how input size affects execution speed and the most common class of algorithms.
4
Logarithmic and Linearithmic Algorithms
Working with massive datasets using divide and conquer strategies, and the the required trade-offs.
5
NP-Hard and Approximations
Learn why some problems are impossible to solve exactly and how we can use approximations like Monte Carlo simulations to cheat.