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

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. Vyas Sekar
  • 18-613 lectures are most often presented by Prof. Greg Kesden

Schedule (subject to change)

Date Lecture/Groups Reading   Labs

Aug 25 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 26 Overview (pptx , pdf , code) 1
Aug 28 Bits, Bytes, Integers, & Endianness (pptx , pdf , code) 2.1-2.3 L1 (datalab) out

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

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

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

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

Sep 29 Small groups: Cache + Memory Hierarchy + Midterm Review
Sep 30 Linking (pptx , pdf) 7
Oct 2 Midterm Exam

Oct 6 Small groups: Cache lab (Blocking, etc) + Linking
Oct 7 Dynamic Memory Allocation: Basics (pptx , pdf , code) 9.9
Oct 9 Dynamic Memory Allocation: Advanced (pptx , pdf) 9.10-9.12 L4 due

Oct 13 Small groups don't meet -- University break
Oct 14 No class -- University break
Oct 16 No class -- University break

Oct 20 Small groups: Malloc review, gdb, valgrind, Malloc lab unboxing L5 (malloclab) out
Oct 21 Virtual Memory: Concepts (pptx , pdf) 9.1-9.6
Oct 23 Virtual Memory: Details (pptx , pdf) 9.7-9.8

Oct 27 Small groups: Heap checker cases, removing footers, malloc trace exam problems, etc. VM, as time allows. L5 checkpoint due
Oct 28 ECF: Exceptions & Processes (pptx , pdf , code) 8.1-8.4
Oct 30 ECF: Signals (pptx , pdf , code) 8.5

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

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

Nov 17 Small groups: Proxylab unboxing. Heavy emphasis on role of proxy and parts of lab. L6 Due, L7 (proxylab) out
Nov 18 Concurrent programming (pptx , pdf , code) 12.1-12.3
Nov 20 Synchronization: Basic (pptx , pdf , code) 12.4-12.5.3

Nov 24 Small groups: Critical resources, critical sections, mutex problems, at-most-n and sempahore problems
Nov 25 Synchronization: Advanced (pptx , pdf , code) 12.5.4-5, 12.7-8 L7 checkpoint due
Nov 27 No class -- Thanksgiving

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