Notes 2025/2026
60001: Advanced Computer Architecture
Paul Kelly
1. Pipelining & Caching (2025-10-09)2. Dynamic Scheduling (2025-10-16)3. Branch Prediction (2025-10-23)4. Cache & Memory (2025-10-30)5. Side Channel Vulnerabilities (2025-11-06)6. Multithreading (2025-11-13)7. Vectors and SIMD (2025-11-20)8. GPUs (2025-11-27)9. Multicore & Cache Coherency (2025-12-05)
60005: Graphics
Bernhard Kainz
60007: Concurrent Programming
Azalea Raad // Alastair Donaldson
1. Designing Concurrent Programs (2025-10-07)2. Concurrent Semantics (2025-10-09)3. Declarative Semantics (2025-10-17)4. Concurrent Objects (2025-10-21)5. C++ Concurrency (2025-10-24)6. Haskell Concurrency (2025-11-04)7. Dynamic Datarace Detection (2025-11-11)8. Rust Concurrency (2025-11-14)
60012: Intro to Machine Learning
Josiah Wang // Antoine Cully // Marek Rei
1. The Big Picture (2025-10-06)2. K-NNs & Decision Trees (2025-10-13)3. Evaluation (2025-10-20)4. Neural Networks (2025-10-27)5. Unsupervised Learning (2025-11-10)6. Evolutionary Algorithms (2025-11-17)
60017: System Performance Engineering
Holger Pirk // Lluis Vilanova
60019: Robotics
Andrew Davison
60029: Data Processing Systems
Holger Pirk
1. Relational Algebra (2025-10-07)2. Storage (2025-10-14)3. Algorithms & Indexing (2025-10-21)4. Query Processing Models (2025-10-28)5. Query Optimization (2025-11-04)6. Vector Databases (2025-11-11)7. Stream Processing (2025-11-18)8. Advanced Topics (2025-11-25)
60032: Deep Learning
Bernhard Kainz // Yingzheng Li
Notes 2024/2025
50001: Algorithm Design and Analysis
Jamie Willis
1. Intro Lecture (2024-10-07)2. Sequences (2024-10-14)3. Divide and Conquer (2024-10-21)4. Amortised Complexity (2024-11-04)5. Random Access Lists (2024-11-11)6. Poset (2024-11-23)7. Red Black Trees (2024-11-25)8. Randomized Algorithms (2024-12-02)9. Zippers (2024-12-03)
50003: Models of Computation
Herbert Wiklicky // Sophia Drossopolou
1. Register Machine (2024-10-10)2. Universal Register Machine (2024-10-11)3. The Halting Problem (2024-10-18)4. Turing Machines (2024-10-24)5. Lambda Calculus (2024-11-01)6. Operational Semantics (2024-11-08)7. Indutive Proofs (2024-11-21)8. Denotational Semantics (2024-11-29)9. Hoare Logic (2024-12-01)
50004: Operating Systems
Peter Pietzuch // Lluis Vilanova
1. OS Introduction (2024-10-06)2. Kernel Design (2024-10-07)3. Processes (2024-10-08)4. Threads (2024-10-09)5. Scheduling (2024-10-15)6. Synchonization (2024-10-17)7. Deadlocks (2024-10-22)8. Memory Management (2024-10-23)9. Device Management (2024-11-05)10. Disk Management (2024-11-21)11. File Systems (2024-11-22)12. Security (2024-11-28)13. Virtualization (2024-11-29)
50005: Networking & Communications
Konstantinos Gkoutzis
1. Networking Introduction (2025-01-15)2. Application Layer (2025-01-16)3. Transport Layer (2025-01-27)4. Network Security (2025-02-03)5. Network Layer (2025-02-10)6. Data Link Layer (2025-02-24)7. Physical Layer (2025-03-03)
50006: Compilers
Paul Kelly // Jamie Willis // Hongxiang Fan
1. Compilers Introduction (2025-01-06)2. Parsing & Tokenization (2025-01-16)3. Renaming & Typechecking (2025-01-22)4. Basic Code Generation (2025-01-30)5. Optimization (2025-02-12)6. Runtime Organization (2025-02-13)7. Heap Management (2025-02-20)
50008: Probability & Statistics
Guiliano Casale
1. Events (2025-01-14)2. Random Variables (2025-01-21)3. Joint Random Variables (2025-02-04)4. Statistics (2025-02-13)5. Simulation (2025-02-25)
50011: Computational Techniques
Abbas Edelat
1. Introduction, Norms & Revision (2025-01-16)2. Least Square Method (2025-01-23)3. Spectral Decomposition (2025-01-24)4. Single Value Decomposition (2025-01-25)5. Generalized Eigenvectors (2025-01-31)6. Cholesky Decomposition (2025-02-06)7. QR Decomposition (2025-02-09)8. Fixed Point (2025-02-13)9. Orthogonalization (2025-02-14)10. Conditioning (2025-02-20)