18-213/18-613: Computer Systems, Spring 2025

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

Schedule (subject to change)

Date Lecture/Groups Lec By   Reading   Labs

Jan 12 18-613 Special! (Anyone can watch): EGO's Linux Bootcamp (mp4) L0 (cprogramminglab) out (pdf, tar)
Jan 14 Overview (pptx , pdf , code) SK 1
Jan 15 Small groups: Introductions, Overview of the role of group and TAs, Getting started with the shark machines, Overview of Lab 0
Jan 16 Bits, Bytes, Integers, & Endianness (pptx , pdf , code) SK 2.1-2.3 L1 (datalab) out

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

Jan 28 Machine Prog: Control SK 3.6 L1 due, L2 (bomblab) out
Jan 29 Small groups: Floating point, Unbox bomb, "Example bomb"
Jan 30 Machine Prog: Procedures SK 3.7

Feb 4 Machine Prog: Data SK 3.8-3.9,3.11
Feb 5 Small groups: Assembly and Stack review and old exam problems
Feb 6 Machine Prog: Advanced SK 3.10 L0 2nd deadline

Feb 11 The Memory Hierarchy SK 6.1-6.3
Feb 12 Small groups: Attack lab related material, esp. gadgets
Feb 13 Cache Memories SK 6.4-6.7 L3 due, L4 (cachelab) out

Feb 18 Virtual Memory: Concepts GK 9.1-9.6
Feb 19 Small groups: Memory hierarchy and locality exam problems, cache organization, cache traces and old exam problems.
Feb 20 Virtual Memory: Details GK 9.7-9.8

Feb 25 Dynamic Memory Allocation: Basics GK 9.9 Midterm out
Feb 26 Small groups: midterm review, VM reinforcement, traces
Feb 27 Dynamic Memory Allocation: Advanced GK 9.10-9.12 L4 due
Feb 28 Midterm Due

Mar 4 No class -- University break break
Mar 5 Small groups don't meet -- University break
Mar 6 No class -- University break break

Mar 11 Design and Debugging GK L5 (malloclab) out
Mar 12 Small groups: Malloc review, gdb, valgrind, Malloc lab unboxing
Mar 13 Linking GK 7

Mar 18 ECF: Exceptions & Processes GK 8.1-8.4 L5 checkpoint due
Mar 19 Small groups: Heap checker cases, removing footers, malloc trace exam problems, etc.
Mar 20 ECF: Signals GK 8.5

Mar 25 System Level I/O GK 10 L5 due, L6 (tshlab) out
Mar 26 Small groups: Fork bomb with signals, Unbox tsh lab
Mar 27 Network Programming (Part I) SK 11.3-11.4

Apr 1 Network Programming (Part II) SK 11.4-11.6
Apr 2 Small groups: I/O bomb problems, files and redirection in tshlab.
Apr 3 No class: Carnival Carnival
Apr 7 L6 Due, L7 (proxylab) out

Apr 8 Concurrent programming SK 12.1-12.3
Apr 9 Small groups: Proxylab unboxing. Heavy emphasis on role of proxy and parts of lab.
Apr 10 Synchronization: Basic GK 12.4-12.5.3
Apr 14 L7 checkpoint due

Apr 15 Synchronization: Advanced GK 12.5.4-5, 12.7-8
Apr 16 Small groups: Critical resources, critical sections, mutex problems, at-most-n and sempahore problems
Apr 17 Thread-Level Parallelism GK 12.6

Apr 22 Code optimization and wrap-up GK 5
Apr 23 Small groups: Final exam review
Apr 24 Wrap-up
Apr 25 L7 due