CS 208 Spring 2022
Topics

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

DateDescription
March 28 Introduction; Binary & Hexadecimal
Read CSPP: § 1.4.1 (p. 8-10)
March 30 Get to Know You; Bits, Bytes, and C Pointers
Read Pointer Basics and The 5-minute Guide to C Pointers, watch this silly video
April 1 C: Data Representation and Memory Management
Read The Descent to C
April 4 More Memory and C
No reading
April 6 Integer Representation and Arithmetic
Read CSPP: § 2.2.1 (p. 60-62) and CSPP: § 2.2.8 (p. 83-84)
April 8 Floating Point; Bitwise and Boolean Operators
Read CSPP: § 2.1.7--2.1.9 (p. 54-58)
April 11 Introduction to x86-64 Assembly
CPSS: § 3.4 through 3.4.1 (p. 179-181)
April 13 Arithmetic in x86-64 Assembly
No reading, but review figures 3.2, 3.3, and 3.10 (p. 180, 181, 192)
April 15 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
April 18 x86-64 Control Flow: Loops and Switch Statements
Read CSPP § 3.6.3 to learn about indirect jumps
April 20 Data Structure Representation: Arrays
Read CSPP § 3.8.2 on pointer arithmetic
April 22 Data Structure Representation: Structs
No reading
April 25 Memory Layout and The Stack
Make sure you understand figure 3.27 (p. 243)
April 27 Implementing Procedure Calls
Read CSPP: § 3.7.4 and 3.7.5 (p. 248-252)
April 29 Buffer Overflow Attacks
Read CSPP: § 3.10.3 and 3.10.4 (p. 279-293)
May 4 Dynamic Memory Allocation: malloc and free
No reading
May 6 Dynamic Memory Allocation: Free Lists
Read CSPP § 9.9.6
May 9 Explicit Free Lists
No reading
May 11 Caching and the Memory Hierachy
Read CSPP § 6.2 about locality
May 13 Virtual Memory
Read CSPP § 9.3 (p. 805–810)
May 16 The Process Model and Exceptional Control Flow
Read CSPP § 8.1-8.1.2 (p. 723–728) and § 8.2 (p. 732–737)
May 18 System-Level I/O
Read CSPP § 10.1-10.2 (p. 890–893) and § 10.11 (p. 911–913)
May 20 Network Programming
Read CSPP § 11.1 (p. 918–919) and § 11.5 (p. 948–955)
May 23 Networking continued
No reading
May 25 Concurrency and Synchronization
Read CSPP § 12.1 and 12.3 (p. 973–976 and 985–992), then CSPP § 12.5 through 12.5.4 (p. 995–1008)
May 27 Parallelism
Read CSPP § 12.6 (p. 1013–1020)
May 30 Java vs C
No reading
June 1 Victory lap
No reading