Computing foundations
Connect data, programs, and machines with observable behavior.
Explain system behavior with concrete experiments.
Chapters
Follow an addition instruction through a computer
Distinguish unsigned carry from signed overflow with an eight-bit model, then connect bit representations, adders, ISA semantics, and processor execution.
After a program starts: processes, memory, and files
Distinguish process drafts, virtual memory, and saved data, including paths, failed saves, crash durability, and version conflicts.
Why the same bytes can be read as different values
Separate bytes, text, and types; check UTF-8, byte order, numeric precision, and whole-value regex matching at runtime boundaries.
From code to behavior: languages, compilers, and DSLs
Understand parsing, semantic checks, compilation, interpretation, and JIT, then enforce allowed nodes and resource bounds in a small expression language.
Learn algorithms and data structures through lookup tasks
Compare preparation, lookup, and update costs for scans, sets, and binary search, including ordering, counts, and concurrent uniqueness.
Trace the boundaries between a URL and a page
Follow URL parsing, DNS, transport, TLS, HTTP, and rendering, distinguishing connectivity from protocol and business success.