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 | Cache structure; Management policies | |||
May 1 | Cache performance; Average memory access time; Cache-friendly code | PA5 Due (Mon May 5th @ 23:59) | WA10 Due (Friday @ 23:59) | ||
Recitation | Cache memories | ||||
May 14 | FINAL EXAM | ||||