Logistics
- Lecture: T/Th 3:50 PM - 5:10 PM (Busch HLL-114)
- Recitations:
- Section 5 (Nate): Thursday 7:45 PM - 8:40 PM (Busch ARC-105)
- Section 6 (Neha): Tuesday 7:45 PM - 8:40 PM (Busch ARC-105)
- Section 7 (Ramesh): Thursday 5:55 PM - 6:50 PM (Busch SEC-202)
- Section 8 (Jerlin): Tuesday 5:55 PM - 6:50 PM (Busch SEC-203)
- Office Hours:
- Monday (Ramesh): 8:50 AM - 9:50 AM (CoRE 244)
- Wednesday (Minesh): 11:00 AM - 12:00 PM (CoRE 244)
- Wednesday (Jerlin): 4:30 PM - 5:30 PM (TIL-111L in the Livi Learning Center)
- Thursday (Neha): 5:10 PM - 6:10 PM (CoRE 305)
- Friday (Nate): 4:00 PM - 5:00 PM (CoRE 305)
Course Plan (note: subject to revision)
Lecture recordings (and the slides) are posted on the course Canvas.| Week | Date | Topic | Programming Assignments |
Written Assignments |
Supplementary Resource(s) |
|---|---|---|---|---|---|
| 1 | Jan 21 |
Preview of the syllabus, course objectives and activities. [slides] |
Survey 1 Assigned | ||
| Jan 23 |
Introduction to C programming in Linux.
[slides] |
PA1 Assigned |
|
||
| Recitations and Office Hours start next week | |||||
| 2 | Jan 28 |
Memory; C objects; data representations
[slides] |
|
||
| Jan 30 |
Character and unsigned integer representations
[slides] |
Survey 1 Due (23:59)
WA1 Assigned |
|
||
| Recitation | Programming using ilab | ||||
| 3 | Feb 4 |
Endianness and signed integer representations
[slides] |
|||
| Feb 6 |
Fixed and floating point data representations
[slides] |
PA1 Due (Thu, 23:59) |
WA1 Due (Fri, 23:59)
WA2 Assigned (Sat, 23:59) |
||
| Recitation | Data representations | ||||
| 4 | Feb 11 |
Floating point (cntd.); C for Java Programmers
[slides] |
PA2 Assigned (Wed 21:00) | ||
| Feb 13 |
C preprocessing; C compilation; Compile targets and cross compilation
[slides] |
WA2 Due (Sun, 23:59)
WA3 Assigned (Mon, 23:59) |
|||
| Recitation | Floating point, C compilation; PA2 | ||||
| 5 | Feb 18 |
C's type system; Data representations in C I: void and basic types; Operations on representations
[slides] |
|
||
| Feb 20 |
Data representations in C II: derived types
[slides] |
|
|||
| Recitation | C basic types and representations; Manipulating basic types | ||||
| 6 | Feb 25 |
Data representations in C III: Pointers
[slides] |
PA2 Due (Wed 23:59) | WA3 Due (Mon 23:59) | |
| Feb 27 |
Data representations in C IV: More Pointers; Arrays; Unions
[slides] |
||||
| Recitation | Pointers; Bugs and debugging | ||||
| 7 | Mar 4 |
Functions; C memory layout; Scope; Dynamic memory management I; Memory bugs
[slides] |
PA3 Assigned (Wed 23:59) | WA4 + WA5 Assigned (Tue @ Noon) | |
| Mar 6 |
Generic types in C; Standard Library Functions; Bugs and Debugging
[slides] |
||||
| Recitation | Explicit memory management; Typical bugs and debugging | ||||
| 8 | Mar 11 | Exam review | WA4 + WA5 Due (Tue @ 23:59) | ||
| Mar 13 | MIDTERM EXAM | ||||
| Exam week: no recitation | |||||
| - | Spring Break! | ||||
| 9 | Mar 25 |
The Hardware-Software Interface; ISAs
[slides] |
Extra Credit Assigned via Canvas (Mon) |
||
| Mar 27 |
RISC-V assembly and machine code; Registers; RV64I state and programming model
[slides] |
PA3 Due (Fri 23:59) |
|
||
| Recitation | ISAs; RV64I state and programming model | ||||
| 10 | Apr 1 |
RV64I control flow; Program counter and instruction register; Conditional branches
[slides] |
WA7 Assigned (Wednesday) | ||
| Apr 3 |
Unconditional branches; Call-and-return; Procedural
abstraction; Loads and stores; Runtime stack
[slides] |
PA4 Assigned (Friday) | |||
| Recitation | Reading and writing assembly code; Loads and stores; Conditionals and loops | ||||
| 11 | Apr 8 |
Digital logic; Boolean algebra
[slides] |
WA7 Due (Wednesday @ 23:59) | ||
| Apr 10 |
Combinational logic; Buses; ALUs; Latches and flip-flops
[slides] |
Extra Credit Due (Fri @ 23:59)
WA8 Assigned (Fri @ 23:59) |
|||
| Recitation | Using the runtime stack; Assembly for branching and memory | ||||
| 12 | Apr 15 |
Single-Cycle RV64I CPU (Arithmetic/Logic); Instruction
formats; Machine language representations; Overview of
the datapath
[slides] |
|||
| Apr 17 |
Single-Cycle RV64I CPU (Branches/Jumps/Memory)
[slides] |
PA4 Due (Fri @ 23:59) |
WA8 Due (Friday @ 23:59)
WA9 Assigned (Friday @ 23:59) |
||
| Recitation | Digital logic circuits | ||||
| 13 | Apr 22 |
CPU performance
[slides] |
PA5 Assigned (Sun @ 23:59) | ||
| Apr 24 |
Memory wall; Motivate caching; Direct-mapped caches
[slides] |
WA9 Due (Friday @ 23:59)
WA10 Assigned (Friday @ 23:59) |
|||
| Recitation | Single-cycle RV64I CPU | ||||
| 14 | Apr 29 |
Direct-mapped caches continued
[slides] |
|||
| May 1 |
Cache performance; Average memory access time; Course wrap-up
[slides] |
PA5 Due (Mon May 5th @ 23:59) | WA10 Due (Friday @ 23:59) | ||
| Recitation | Cache memories | ||||
| May 14 | FINAL EXAM | ||||