18-213/18-613: Computer Systems, Fall 2023

Notes on links

  • pptx links are to Powerpoint versions of the lectures
  • pdf links are to Adobe Acrobat versions of the lectures
  • code links are to directories containing code used for class demonstrations
  • tar links are to archive files in TAR format. Use the tar command on a linux machine to unpack these
  • 18-213 lectures are most often presented by Prof. Ziad Youssfi
  • 18-613 lectures are most often presented by Prof. Greg Kesden

Schedule (subject to change)

Date Lecture/Groups Reading   Labs

Aug 28 Small groups: Introductions, Overview of the role of group and TAs, Getting started with the shark machines, Overview of Lab 0 L0 (cprogramminglab) out (pdf, tar)
Aug 29 Overview (pptx , pdf) 1
Aug 31 Bits, Bytes, Integers, & Endianness (pptx , pdf , code) 2.1-2.3 L1 (datalab) out

Sep 4 Labor Day: Bit ops, Int rep, Endianness, Lean forward to Data Lab int puzzles. Groups reschedule meeting for later in week.
Sep 5 Floating Point (pptx , pdf) 2.4 L0 (cprogramminglab) 1st deadline
Sep 7 Machine Prog: Basics (pptx , pdf) 3.1-3.5

Sep 11 Small groups: Floating point, Unbox bomb, "Example bomb"
Sep 12 Machine Prog: Control (pptx , pdf , code) 3.6 L1 due, L2 (bomblab) out
Sep 14 Machine Prog: Procedures (pptx , pdf , code) 3.7

Sep 18 Small groups: Assembly and Stack review and old exam problems
Sep 19 Machine Prog: Data (pptx , pdf) 3.8-3.9,3.11
Sep 21 Machine Prog: Advanced (pptx , pdf , code) 3.10 L2 due, L3 (attacklab) out

Sep 25 Small groups: Attack lab related material, esp. gadgets L0 2nd deadline
Sep 26 The Memory Hierarchy (pptx , pdf) 6.1-6.3
Sep 28 Cache Memories (pptx , pdf) 6.4-6.7 L3 due, L4 (cachelab) out

Oct 2 Small groups: Memory hierarchy and locality exam problems, cache organization, cache traces and old exam problems.
Oct 3 Design and Debugging (pptx , pdf)
Oct 5 Virtual Memory: Concepts (pptx , pdf) 9.1-9.6

Oct 9 Small groups: midterm review, VM reinforcement, traces HW 6/7 (low stakes midterm) out
Oct 10 Virtual Memory: Systems (pptx , pdf) 9.7-9.8
Oct 12 Dynamic Memory Allocation: Basics (pptx , pdf , code) 9.9 L4 due
Oct 13 HW 6/7 (low stakes midterm) due

Oct 16 Small groups don't meet -- University break
Oct 17 No class -- University break
Oct 19 No class -- University break

Oct 23 Small groups: Malloc review, gdb, valgrind, Malloc lab unboxing L5 (malloclab) out
Oct 24 Dynamic Memory Allocation: Advanced (pptx , pdf) 9.10-9.12
Oct 26 Linking (pptx , pdf) 7

Oct 30 Small groups: Heap checker cases, removing footers, malloc trace exam problems, etc. L5 checkpoint due
Oct 31 ECF: Exceptions & Processes (pptx , pdf , code) 8.1-8.4
Nov 2 ECF: Signals (pptx , pdf , code) 8.5

Nov 6 Small groups: Fork bomb with signals, Unbox tsh lab L5 due, L6 (tshlab) out
Nov 7 No class -- Democracy Day
Nov 9 System Level I/O (pptx , pdf , code) 10

Nov 13 Small groups: I/O bomb problems, files and redirection in tshlab.
Nov 14 Network Programming (Part I) (pptx , pdf , code)
Nov 16 Network Programming (Part II) (pptx , pdf , code)

Nov 20 Small groups: Proxylab unboxing. Heavy emphasis on role of proxy and parts of lab. L6 Due, L7 (proxylab) out
Nov 21 Concurrent programming (pptx , pdf , code) 12.1-12.3
Nov 23 No class -- Thanksgiving

Nov 27 Small groups: Critical resources, critical sections, mutex problems, at-most-n and sempahore problems
Nov 28 Synchronization: Basic (pptx , pdf , code) 12.4-12.5.3
Nov 30 Synchronization: Advanced (pptx , pdf , code) 12.5.4-5, 12.7-8 L7 checkpoint due

Dec 4 Small groups: Final exam review
Dec 5 Thread-Level Parallelism (pptx , pdf , code) 12.6
Dec 7 Code optimization and wrap-up (pptx , pdf)
Dec 8 L7 due