UC Berkeley EECS, by semester, with what each course actually involved building.
Three renderers in eight weeks: a rasterizer with supersampled antialiasing and trilinear mipmap filtering, a half-edge mesh editor with Loop subdivision, and a path tracer. The path tracer's bounding volume hierarchy is the number worth quoting, the course's reference render of cow.dae drops from 40 seconds to 0.173 seconds once the BVH is in.
Seven memory-safety exploits written against vulnerable binaries, several of them against enabled stack canaries and one defeating ASLR by brute force. Then an end-to-end encrypted file-sharing client in Go, graded against a hidden adversarial test suite rather than a functionality checklist.
Taken alongside the Altametrics machine learning internship.
Database internals from the storage layer up, built into a working relational engine: B+ tree indices, the join algorithms and external merge sort, a cost-based query optimizer, multigranularity two-phase locking, and ARIES crash recovery.
How the internet actually works, implemented rather than described, routing, transport reliability, and the layering that holds the whole thing together.
Also: Careers in Biotechnology (BIOENG 25) · Supervised Group Study (CHEM 98) · Directed Group Study (GEOG 198).
The Pac-Man project sequence: search and heuristic design graded on node-expansion counts rather than just correctness, adversarial search with alpha-beta pruning and expectimax, value iteration and Q-learning, and probabilistic inference over Bayes nets, HMMs and particle filters.
Proof-based, no programming. Induction and stable matching, modular arithmetic through RSA, polynomials over finite fields and Berlekamp-Welch error correction, then discrete and continuous probability, concentration inequalities, and Markov chains.
Also: Virtual Communities and Social Media (SOCIOL 167).
C and RISC-V assembly down through the memory hierarchy, ending in a 32-bit RISC-V CPU built from gates in Logisim, 36 instructions, single-cycle, then re-architected into a two-stage pipeline. In an eight-week session, the gap between the single-cycle deadline and the pipelined one is about a week.
Taken alongside the Altametrics machine learning internship.
Four Java projects, two of them substantial: a corpus-query engine over roughly 300 MB of Google Ngram data under a 60-second load ceiling, and a procedurally generated 2D world engine demonstrated live to a TA. The deque project earlier in the term is graded by an autograder that empirically verifies your asymptotics rather than trusting your claims about them.
RC and RLC transients, phasors and impedance, filters, poles and zeros, op-amps. Four directed labs, then an open-ended design problem weighted at double any of them: specify a treble boost guitar pedal to meet a set of specs, confirm it in SPICE, then build it and verify it on the bench.
Also: Social Implications of Computer Technology (CS 195) · Social Psychology (SOCIOL 150).
Abstraction, recursion and higher-order functions, then object orientation, ending in a Scheme interpreter written in Python, the evaluator, the environment model, and the special forms. The largest single assignment in the course.
Linear algebra taught through four things you build: an audio fingerprinting system that identifies a song from a spectrogram constellation map, a single-pixel camera that reconstructs an image by solving a 1200×1200 linear system, an acoustic positioning system that localizes a microphone from six speakers, and a voice classifier built on PCA via the SVD.
Also: The History of American Capitalism (HISTORY 133A).
Machine Learning Time-Series Forecasting Reinforcement Learning Bayesian Inference Particle Filtering Linear Algebra SVD & PCA Monte Carlo Methods Ray Tracing Query Optimization Concurrency Control Crash Recovery Computer Architecture Pipelining Memory Safety Applied Cryptography Network Protocols Signals & Systems
Languages, Python, Java, C, C++, Go, SQL, JavaScript, RISC-V Assembly, Scheme, R
ML & data, XGBoost, LightGBM, CatBoost, Prophet, TimesFM, scikit-learn, Pandas, NumPy, SciPy, Matplotlib
Systems & tools, Git, Linux/Bash, GDB, Valgrind, REST APIs, Logisim Evolution, SPICE, Onshape, VS Code, IntelliJ