Spring 2025 Course Schedule
Week | Day | Date | Topic | Lecture Slides | Lecture Notes | Readings | Lab/Assignment |
---|---|---|---|---|---|---|---|
1 | Tu | 1/21 | Intro and 1+1=2 |
|
|
||
Th | 1/23 | Numbers and C Intro |
|
||||
2 | Tu | 1/28 | Float, Types |
|
|
A2: Minifloat (Due: 2/5) | |
Th | 1/30 | Arrays & Pointers | Arrays & Pointers (notes) | Arrays & Pointers | Arrays, Pointers, Bit Packing | ||
3 | Tu | 2/4 | Heap & Allocation | The Stack & Heap (notes) | The Stack & Heap | Strings, Memory Allocation | A3: Huffman (Due: 2/12) |
Th | 2/6 | Gates, Logic | Gates (notes) | Gates | [P&H] A.1-A.3, A.5-A.6 (Appendix) | ||
4 | Tu | 2/11 | State | State (notes) | State | [P&H] A.7-A.8,A.11 (Appendix) | Lab 4: GDB (Due: 2/14) |
Th | 2/13 | RISC-V ISA (1) | RISC-V (1) (notes) | RISC-V | [P&H] 2.1-2.3, 2.5-2.6 | ||
5 | Tu | 2/18 | February Break! | A5: CPU Simulation (Due: 2/26) | |||
Th | 2/20 | RISC-V ISA (2), CPU Stages, & Prelim 1 | RISC-V (2), CPU Stages | CPU Stages | [P&H] 2.7, 2.20 | ||
6 | Tu | 2/25 | RISC-V: Data Memory & Control Flow | RISC-V: Data Memory & Control Flow | 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) |
Th | 2/27 | Pipelining & Performance | Pipelining & Performance | Pipelining & Performance | [P&H] 4.1 - 4.3 | ||
7 | Tu | 3/4 | Calling Conv. (1) | Calling Conv (notes) | [P&H] 2.8 | A7: Functions (Due: 3/12) | |
Th | 3/6 | Calling Conv. (2) | [P&H] 2.13 | ||||
8 | Tu | 3/11 | Compiling RISC, CISC, & ISAs |
|
[P&H] 2.12 [P&H] 2.16-2.18, 2.22 |
Buffer Overflow | |
Th | 3/13 | Caches (1) | |||||
9 | Tu | 3/18 | Caches (2) | Blocking | |||
Th | 3/20 | Caches (3) | |||||
10 | Tu | 3/25 | Processes | Happy Spring Break! | |||
Th | 3/27 | System Calls | |||||
Tu | 4/1 | Spring Break | |||||
Th | 4/3 | Spring Break | |||||
11 | Tu | 4/8 | Virtual Memory | Shell | |||
Th | 4/10 | Prelim 2 | |||||
12 | Tu | 4/15 | Threads | Concurrent Hash Table | |||
Th | 4/17 | Atomics | |||||
13 | Tu | 4/22 | Synchronization (1) | Raycasting | |||
Th | 4/24 | Synchronization (2) | |||||
14 | Tu | 4/29 | Parallelism | ||||
Th | 5/1 | Races & Deadlock | |||||
15 | Tu | 5/6 | 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:
- Two preliminary exams:
- Prelim 1 at February 20 at 7:30pm
- Prelim 2 at April 10 at 7:30pm
- The final exam, on TBA