CS 211: Introduction to Computer Architecture

Spring 2025 with Minesh Patel (Sections 5-8)

Logistics

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
  • CS:APP 3/E: Chapter 1 (1.1 - 1.4)
Recitation Recitations and Office Hours start next week
2 Jan 28 Memory; C objects; data representations
[slides]
  • CS:APP 3/E: Chapter 2.1
Jan 30 Character and unsigned integer representations
[slides]
Survey 1 Due (23:59)
WA1 Assigned
  • CS:APP 3/E: Chapter 2.2
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
Recitation Exam week: no recitation
- Mar 18 Spring Break!
Mar 20
Recitation
9 Mar 25 The Hardware-Software Interface; ISAs
[slides]
WA6 Assigned
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) WA6 Due
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