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
  • [P&H] 2.4, 3.2
  • [C] Ch. 1
2 Tuesday, Jan. 28 L03: Float, Types
  • [P&H] 3.5
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:

  • Two preliminary exams:
  • The final exam on May 17 at 2:00pm