CS 208 Spring 2021
Topics

Subscribe to this calendar (google, iCal, etc.)

DateDescription
March 29 [Welcome!]; [Binary & Hexadecimal]
Read CSPP: § 1.4.1 (p. 8-10)
learning block notes
March 31 [Bits, Bytes], and C Pointers
Read Pointer Basics and The 5-minute Guide to C Pointers, watch this silly video
learning block notes
April 2 [C: Data Representation];
[C: Memory Management]

Read The Descent to C
April 5 Integer Representation
Read CSPP: § 2.2.1 (p. 60-62)
learning block notes
April 7 Integer Arithmetic
Read CSPP: § 2.2.8 (p. 83-84)
learning block notes
April 9 Programming With Bits
Read CSPP: § 2.1.7--2.1.9 (p. 54-58)
learning block notes
April 12 IEEE Floating Point
Read CSPP: § 2.4.2 (p. 112-115)
April 14 Introduction to x86-64 Assembly
CPSS: § 3.4 through 3.4.1 (p. 179-181)
learning block notes
April 16 Arithmetic in x86-64 Assembly
No reading, but review figures 3.2, 3.3, and 3.10 (p. 180, 181, 192)
learning block notes
April 19 x86-64 Control Flow: Conditionals
Review CSPP figures 3.13, 3.14, and 3.15 (p. 202, 203, 206), (OPTIONAL) read CSPP section 3.6.6
learning block notes
April 21 x86-64 Control Flow: Loops and Switch Statements
Read CSPP § 3.6.3 to learn about indirect jumps
April 23 Data Structure Representation: Arrays
Read CSPP § 3.8.2 on pointer arithmetic
learning block notes
April 26 Data Structure Representation: Structs
No reading
April 28 Memory Layout and The Stack
Make sure you understand figure 3.27 (p. 243)
learning block notes
April 30 Implementing Procedure Calls
Read CSPP: § 3.7.4 and 3.7.5 (p. 248-252)
learning block notes
May 5 Buffer Overflow Attacks
Read the Lab 3 writeup
May 7 The Memory Hierarchy
Read CSPP § 6.2 about locality
learning block notes
May 10 Caching: Basic Principles
Read CSPP § 6.4.1
learning block notes
May 12 Caching: Associativity and Lookup
Make sure you understand CSPP figures 6.28 through 6.37
learning block notes, cache simulator
May 14 The Process Model
No reading
May 17 Dynamic Memory Allocation: malloc and free
No reading
learning block notes
May 19 Dynamic Memory Allocation: Free Lists
Read CSPP § 9.9.6
learning block notes
May 21 Lab 5 Overview; Virtual Memory: Four Problems
Read the Lab 5 writeup
Lab 5 intro
May 24 Virtual Memory: Addressing
Read CSPP § 9.3 (p. 805–810)
learning block notes
exception notes (OPTIONAL)
May 26 Virtual Memory: Optimization
No reading
learning block notes
May 28 Java vs C
No reading
May 31 Concurrency
No reading
memory error worksheet
solutions
June 2 Victory lap
No reading
Gradescope demo