Practical Algorithm Analysis
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.
Practical Algorithm Analysis
CPUs, Memory, and Locality
Understand how our code interacts with physical hardware. Learn about virtual memory, the stack vs. heap, cache lines, and prefetching.
Practical Algorithm Analysis
Polynomial Algorithms
Learn how input size affects execution speed and the most common class of algorithms.
Practical Algorithm Analysis
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.
Intro to C++ Programming
The #include Directive
Discover how the #include directive helps us include library features and split our project across multiple files.
Google Benchmark for C++
Analyzing Benchmark Data
Learn to interpret CPU time, variance, and the trade-offs between insertion speed and read speed.
Intro to C++ Programming
Function Overloading
This lesson provides an in-depth look at function overloading in C++, covering its importance, implementation, and best practices
Managing C++ Projects Using CMake
Using Shared Libraries
Adding support for user-configurable library types and an initial introduction to target installation.
Google Benchmark for C++
Configuring a CMake Project
Separate our core logic into libraries, configure CMake for multiple targets, and apply hardware-aware optimizations.
Google Benchmark for C++
Integrating Google Benchmark
Integrate the industry-standard Google Benchmark library into a CMake project to capture nanosecond-precision timings.