Practical DSA
Bits, Binary, and Hexadecimal
Explore how hardware represents data at the bit level, how to read binary and hexadecimal literals, and how to inspect raw bits in C++.
Practical DSA
Bitwise Operators and Flags
Learn to use bitwise operators to pack multiple states into a single byte, reducing memory bandwidth use.
Practical DSA
Advanced Bitwise Techniques
Use bloom filters for fast rejection, hierarchical bitmasks for spatial skipping, and hardware intrinsics using C++20's <bit> library.
Practical DSA
Locks and Atomics
Learn how mutexes and atomics prevent race conditions, and why hardware contention can make multithreaded code slower than single-threaded code.
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.
Practical DSA
Reader-Writer Locks and std::shared_mutex
Learn how to protect stateful data structures with minimal contention using critical section granularity, std::shared_mutex, and deadlock-safe lock acquisition.
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.