Practical DSA
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.
Practical DSA
Configuring a CMake Project
Separate our core logic into libraries, configure CMake for multiple targets, and apply hardware-aware optimizations.
Practical DSA
The Iterator Pattern
The bridge between data layout and algorithms. Learn how iterators abstract memory traversal and the hierarchy of capabilities.
Practical DSA
Instruction Reordering
Learn how CPU out-of-order execution breaks lock-free code, and how to use seq_cst, acquire, release, acq_rel, and relaxed to fix it.
Practical DSA
Concurrency and Striped Hashing
Scale the Swiss Table across multiple CPU cores with sharded striping, reader-writer locks, and cache-line alignment.
Practical DSA
Swiss Table Memory Layout
Rethink hash table memory layout for SIMD hardware by splitting metadata from payloads and extracting 7-bit hash signatures.
Practical DSA
Swiss Table SIMD Probing
Combine structure of arrays metadata with xsimd batch operations to search 16, 32, or 64 hash buckets in a single clock cycle.
Intro to C++ Programming
Creating Variables
Creating variables to store and update the data that describes our objects. We also introduce comments, allowing us to describe our code in plain language.
Intro to C++ Programming
Pointers
This lesson provides a thorough introduction to pointers in C++, covering their definition, usage, and the distinction between pointers and references
Practical DSA
Cache Coherency and False Sharing
Explore the performance cost of synchronization, how to mitigate it, and how to avoid it entirely with better algorithm design.