Learn by building, measuring and experimenting. Each lab or course follows a sequence of practical activities, with explanations alongside the work.
Computer Systems¶
| Lab or course | What you’ll do |
|---|---|
| Digital Design | Build from bits and logic gates towards a working computer |
| Bit Lab | Explore binary and hexadecimal, fixed-width arithmetic, CPU flags, masks, shifts and byte order through interactive experiments and checked questions. Draft course. |
| Assembly Lab | Explore processor instructions one at a time, with the corresponding C alongside them |
| Systems Lab — Systems From Scratch | Explore machine code, memory, operating systems and CPU performance through RISC-V/xv6 experiments and measurements on real hardware |
| GPU Lab | Investigate tensor layouts, memory access and GPU execution through browser simulations and downloadable CUDA/PyTorch examples |
Data Engineering & AI¶
Parquet Lab builds the reader used by Query Engine Lab, so they work well in that order.
| Lab or course | What you’ll do |
|---|---|
| Parquet Lab — Parquet, byte by byte | Build a Parquet reader in Python and Rust using real file bytes, interactive examples and browser exercises |
| Query Engine Lab — Queries, operator by operator | Build a Python query engine on Apache Arrow and compare operator costs with DuckDB. In progress. |
| Sizing & TCO Lab | Adjust capacity and cost models, explore uncertainty and sensitivity, and trace inputs to their sources |
| Benchmarking Lab | Design fair technology comparisons, run browser experiments and downloadable service harnesses, analyse evidence and build a recommendation |
| Observability & Anomaly Detection | Work through notebooks and examples for embeddings, anomaly detection and deployment with observability data |
| ML-101 | Practise machine learning fundamentals with scikit-learn |
Media¶
| Lab | What you’ll do |
|---|---|
| Video Lab | Run editable FFmpeg and ffprobe commands in the browser to practise cutting, joining, framing, sound, subtitles and export |
Assembly Lab, GPU Lab and Video Lab also support offline learning. Follow each lab’s instructions to prepare its offline content.