Spring 2025 Course Schedule
Week | Date | Lecture | Lecture Slides | Lecture Notes | Readings | Lab/Assignment |
---|---|---|---|---|---|---|
1 | Tuesday, Jan. 21 | L01: Intro and 1+1=2 |
|
|
||
Thursday, Jan. 23 | L02: Numbers and C Intro |
|
||||
2 | Tuesday, Jan. 28 | L03: Float, Types |
|
|
A2: Minifloat (Due: 2/5) | |
Thursday, Jan. 30 | L04: Arrays & Pointers | Arrays & Pointers (notes) | Arrays & Pointers | Arrays, Pointers, Bit Packing | ||
3 | Tuesday, Feb. 4 | L05: Heap & Allocation | The Stack & Heap (notes) | The Stack & Heap | Strings, Memory Allocation | A3: Huffman (Due: 2/12) |
Thursday, Feb. 6 | L06: Gates, Logic | Gates (notes) | Gates | [P&H] A.1-A.3, A.5-A.6 (Appendix) | ||
4 | Tuesday, Feb 11 | L07: State | State (notes) | State | [P&H] A.7-A.8,A.11 (Appendix) | Lab 4: GDB (Due: 2/14) |
Thursday, Feb. 13 | L08: RISC-V ISA (1) | RISC-V (1) (notes) | RISC-V | [P&H] 2.1-2.3, 2.5-2.6 | ||
5 | Tuesday, Feb. 18 | February Break! | A5: CPU Simulation (Due: 2/26) | |||
Thursday, Feb. 20 | L09: RISC-V ISA (2), CPU Stages, & Prelim 1 | RISC-V (2), CPU Stages | CPU Stages | [P&H] 2.7, 2.20 | ||
6 | Tuesday, Feb. 25 | L10: RISC-V: Data Memory & Control Flow | RISC-V: Data Memory & Control Flow (notes) | RISC-V: Data Memory & Control Flow | [P&H] 2.3-2.4, 2.7, 2.14, 5.1-5.2 | A6: Assembly (Due: 3/5) |
Thursday, Feb. 27 | L11: Pipelining & Performance | Pipelining & Performance | Pipelining & Performance | [P&H] 4.1 - 4.3 | ||
7 | Tuesday, Mar. 4 | L12: Calling Conv. (1) | Calling Conv (notes) | Calling Conv | [P&H] 2.8 | A7: Functions (Due: 3/12) |
Thursday, Mar. 6 | L13: Calling Conv. (2) | [P&H] 2.13 | ||||
8 | Tuesday, Mar. 11 | L14: Compiling RISC, CISC, & ISAs |
|
[P&H] 2.12 [P&H] 2.16-2.18, 2.22 |
A8: Buffer Overflow (Due: 3/19) | |
Thursday, Mar. 13 | L15: Caches (1) | Caches (notes) | Caches | [P&H] 5.1–5.2 | ||
9 | Tuesday, Mar. 18 | L16: Caches (2) | [P&H] 5.3–5.4 | A9: Cache Blocking (Due: 3/26) | ||
Thursday, Mar. 20 | L17: Caches (3) | [P&H] 5.8, 5.17 | ||||
10 | Tuesday, Mar. 25 | L18: Processes | Processes (notes) | Processes | [OSTEP] Ch. 4, 6 | Happy Spring Break! |
Thursday, Mar. 27 | L19: System Calls, Signals, & Interrupts | System Calls, Signals, & Interrupts (notes) | System Calls, Signals, & Interrupts | [OSTEP] Ch. 5, 6 | ||
Tuesday, Apr. 1 | Spring Break | |||||
Thursday, Apr. 3 | Spring Break | |||||
11 | Tuesday, Apr. 8 | L20: Virtual Memory (1) | Virtual Memory (notes) | Virtual Memory | [P&H] 5.7 (up to TLB) | A11: shall (Due: 4/16) |
Thursday, Apr. 10 | L21: Virtual Memory (2) & Prelim 2 | [P&H] rest of 5.7 | ||||
12 | Tuesday, Apr. 15 | L22: Multicore and Cache Coherency | A12: Concurrent Hash Table (Due: 4/23) | |||
Thursday, Apr. 17 | L23: Threads & Atomics | Threads and Atomics | ||||
13 | Tuesday, Apr. 22 | L24: Synchronization (1) | Raycasting | |||
Thursday, Apr. 24 | L25: Synchronization (2) | |||||
14 | Tuesday, Apr. 29 | L26: Parallelism | ||||
Thursday, May 1 | L27: Races & Deadlock | |||||
15 | Tuesday, May 6 | L28: Parallelism |
Reading Abbreviations
- [P&H]: Computer Organization and Design RISC-V Edition: The Hardware Software Interface, 2nd Edition by David A. Patterson and John L. Hennessy (ISBN: 9780128245583)
- [C]: Modern C by Jens Gustedt
- [OSTEP]: Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Lab Sections
Lab sections are split 50/50 between Thursday and Friday. The work in each lab is meant to help you get started on the assignment that is out that week. There is nothing separate to turn in from lab; the work you do in lab will get turned in as part of that week’s assignment.
Exams
There are three exams: