Grad Systems (COMPSCI 630)

Course Description

In this course, we will discuss classic papers across the broad area of Systems, in roughly chronological order by area: programming languages, architecture, runtime systems, operating systems, and system design in general. This is a lecture-driven class (not a seminar); you will not be expected to present papers, but you are expected to have read every paper before class and participate in in-class discussions.

This course can be used to satisfy core requirements for Systems for the M.S. and PhD degrees.

Grades will be based on in-class participation, projects, and exams.
You must submit your reviews via the review submission site before each class. Do not modify and re-submit your reviews: just submit once.

See these notes by John Ousterhout on writing reviews. Focus on the positive: these are classics for a reason!

Your reviews must address the following points:

  • Summary: (at least two paragraphs) What is the problem that this work addressed? What are the big ideas / key insights / technical contributions?
  • Significance / Contributions: How have the assumptions / context this work was based on changed? What is the practical significance of these results today?
  • Discussion Points: Include at least two discussion points to bring up in class.

You will be expected to scribe at least one lecture’s notes. Here is an example to use as a template (in LaTeX).

Course Schedule

All paper reviews should be submitted using the class HotCRP site.

January 24

The Education of a Computer, Hopper 1952 (read)
The FORTRAN Automatic Coding System, Backus et al. 1957 (review)

January 29

Programming Languages
Recursive Functions of Symbolic Expressions and Their Computation by Machine, McCarthy 1960 (review)
Algol-60 Translation, Dijsktra 1961 (skim)

January 31

Runtime Systems
Garbage Collection in an Uncooperative Environment, Boehm & Weiser 1991 (review)
Uniprocessor Garbage Collection Techniques, Wilson et al. 1991 (background)
A Unified Theory of Garbage Collection, Bacon et al. 2004 (background)

February 5

Computer Architecture
Architecture of the IBM System/360, Amdahl et al. 1964 (review)
Structural aspects of the System/360 Model 85: The cache, Liptay 1968 (read)

February 14

Hardware/Software Interface
The Case for the Reduced Instruction Set Computer, Patterson & Ditzel 1980 (review)
Comments on the Case for RISC, Clark & Strecker 1980 (review)
Available Instruction-Level Parallelism for Superscalar and Superpipelined Machines, Jouppi & Wall 1991 (review)

February 21

Experience with Processes and Monitors in Mesa, Lampson & Redell 1980 (review)
Dthreads: Efficient Deterministic Multithreading, Liu et al. 2011 (review)
An Introduction to Programming with Threads, Birrell 1989 (background)

February 26

OS Design and Internals
The Structure of the “THE”-Multiprogramming System, Dijkstra 1968 (review)
The Evolution of the UNIX Time-Sharing System, Ritchie 1984 (review)
The Rise of “Worse is Better”, Gabriel 1991 (review)
Introduction and Overview of the MULTICS System, Corbató & Vyssotsky 1965 (skim)
The Torvalds-Tanenbaum Debate (read)

February 28

Networked Systems Principles
End-to-End Arguments in System Design, Saltzer, Reed and Clark 1981 (review)
The Design Philosophy of the DARPA Internet Protocols, Clark 1988 (review)
Hints for Computer System Design, Lampson 1983 (review)

March 5

A Note on the Confinement Problem, Lampson 1973 (review)
Reflections on Trusting Trust, Thompson 1984 (review)
Spectre/Meltdown papers, (read)

March 7

class cancelled (snow day)

March 19

Privacy & Cryptography
A Method for Obtaining Digital Signatures and Public Key Cryptosystems, RSA 1978(review)
Tor: The Second-Generation Onion Router, Dingledine et al., 2004(read)

March 21

Fault Tolerance
A Case for Redundant Arrays of Inexpensive Disks (RAID), Patterson, Gibson & Katz, 1988(review)
Why Do Computers Stop and What Can Be Done About It?, Gray 1985(review)

March 26

class cancelled

March 28


April 2

Fault Tolerance
guest lecture: Karthik Pattabiraman (presentation)

April 4

Security & Privacy
Secure Outsourced Databases: Past, Present, and Future, Adam O'Neill (GaTech), room 151

April 9

Distributed Systems Principles
Bringing Distributed Data Systems to End Users, Heather Miller (Northeastern), room 151
In Search of an Understandable Consensus Algorithm, Ongaro & Ousterhout, 2014(review)
The Byzantine Generals Problem, Lamport, Shostak & Pease, 1982(read, skim proofs)

April 11

Distributed Systems Principles
Byzantine Generals, RAFT

April 17

no papers

April 18

Distributed and Concurrent Systems

Time, Clocks, and the Ordering of Events in a Distributed System, Lamport, 1978(review)
FastTrack: Efficient and Precise Dynamic Race Detection, Flanagan and Freund, 2009(read)

April 23

Bitcoin: A Peer-to-Peer Electronic Cash System, Nakamoto, 2008(review)
Bitcoin and Cryptocurrency Technologies, Narayanan et al., 2016(reference)

April 30

May 4

3:30pm-5:30pm, Hasbrouck 124