If you are considering taking 6.033 this semester, and have a question about whether that's a good idea, please check out our FAQ for interested students.

Textbook

6.033 uses Saltzer and Kaashoek's Principles of Computer System Design: An Introduction (Morgan Kaufmann 2009). The text supplements the lectures and recitations; it should be your first resource when you are confused by a lecture topic, or want more information.

If you notice errors of any kind in the 6.033 text, from minor typos to major blunders, please report them by e-mail to saltzer@mit.edu and kaashoek@mit.edu.

You can find PDFs with corrections to the printed and online textbook here. A more up to date version of the Part II errata is here.

First Day of Classes + Section Assignment

6.033 will start on Tuesday, 2/6, with a recitation. Ignore the section assigned to you by the registrar; go to whichever one fits your schedule.

In addition, please fill out this form by Wednesday, 2/7, 5:00pm so that we can assign you to a permanent recitation section that works with your schedule. If you cannot access that page, please post a private message on Piazza so that we can fix things.

Course Calendar

We will release the Spring 2018 assignments as the semester progresses. The contents of this calendar for days more than two weeks in the future may be missing or inaccurate.

MondayTuesday WednesdayThursday Friday
feb 5

Reg day
feb 6
REC 1: Worse is Better

Assigned: Hands-on DNS

First day of classes
feb 7
LEC 1: Coping with Complexity: Enforced Modularity via Client/server Organization

Reading: Book sections 1.1-1.5, and 4.1-4.3
feb 8
REC 2: Therac-25
feb 9
TUT 1: What/How/Why Framework

Assigned: System critique #1
feb 12
LEC 2: Naming

Reading: Book sections 2.2, and 3.1
feb 13
REC 3: DNS

Assigned: Hands-on UNIX
feb 14
LEC 3: Virtual memory

Reading: Book sections 5.1, 5.3, and 5.4
DUE: Hands-on DNS
feb 15
REC 4: UNIX
feb 16
TUT 2: Stasis Theory and System Critiques
feb 19
President's day
feb 20
LEC 4: Bounded buffers and locks

Reading: Book section 5.2
DUE: Hands-on UNIX
Assigned: Hands-on Valgrind
feb 21
LEC 5: Threads

Reading: Book sections 5.5 and 5.6
feb 22
REC 5: UNIX
feb 23
TUT 3: DP discussion

DUE: System critique #1
Assigned: DP preliminary report
feb 26
LEC 6: OS structure, Virtual Machines

Reading: Book section 5.8
feb 27
REC 6: Eraser

DUE: Hands-on Valgrind
DUE: Send team list to TA
Assigned: Hands-on MapReduce
feb 28
LEC 7: Performance

Reading: Book sections 6.1, 6.2, and 6.3.4
mar 1
REC 7: MapReduce
mar 2
TUT 4: Team-writing and collaboration
mar 5
LEC 8: Intro to networking

Reading: Book section 7.2 (book chapters 7-11 are online)
mar 6
REC 8: The Design Philosophy of the DARPA Internet Protocols

DUE: Hands-on MapReduce
Assigned: Hands-on traceroute
mar 7
LEC 9: Routing

Reading: TBD
Assigned: System critique #2
mar 8
REC 9: TBD
mar 9
TUT 5: DP Preliminary Report/RFPs


ADD DATE
mar 12
LEC 10: BGP

Reading: BGP tutorial through Section 3.2
mar 13
REC 10: RON

DUE: Hands-on traceroute
mar 14
LEC 11: Transport layer

Reading: Chapter 19 of the 6.02 notes

Note that the 6.02 reading uses slightly different ACKs
mar 15
REC 11: Bufferbloat

Assigned: Hands-on TCP
mar 16
TUT 6: Design Choices and Justifications

DUE: System critique #2
mar 19
LEC 12: In-network resource management
mar 20
REC 12: DCTCP

DUE: Hands-on TCP
mar 21
LEC 13: Overcoming the Internet's architecture with P2P Networks
mar 22
REC 13: CDNs
mar 23
TUT 7: No tutorial

DUE: DP preliminary report
mar 26
Spring break
mar 27
Spring break
mar 28
Spring break
mar 29
Spring break
mar 30
Spring break
apr 2
LEC 14: Reliability

Reading: Book sections 8.1, 8.2, and 8.3
apr 3
REC 14: Distributed Storage
apr 4
LEC 15: Transactions (Atomicity + Isolation)

Reading: Book sections 9.1, 9.2.1, and 9.2.2
apr 5
REC 15: Canceled (prep for the quiz!)


QUIZ 1: 7:30pm-9:30pm; Location TBD
apr 6
TUT 8: DP presentation

Assigned: DP Presentation
apr 9
LEC 16: Atomicity via Logging

Reading: Book section 9.3
apr 10
REC 16: LFS

Assigned: Hands-on Logging
apr 11
LEC 17: Isolation

Reading: Book sections 9.4 before 9.4.1, and 9.5
apr 12
REC 17: Databases
apr 13
TUT 9: Figures
apr 16
Patriots day
apr 17
Patriots day
apr 18
LEC 18: Distributed transactions

Reading: Book section 9.6
DUE: Hands-on Logging
Assigned: Hands-on DB

DP Presentations should be scheduled between 4/18 and 4/24
apr 19
REC 18: Consistency Guarantees
apr 20
TUT 10: DP analysis/evaluation

Assigned: DP Report
apr 23
LEC 19: Availability via Replication
apr 24
REC 19: Raft
apr 25
LEC 20: Security intro

Reading: Book section 11.1
DUE: Hands-on DB
Assigned: Hands-on buffer overrun
apr 26
REC 20: Beyond Stack Smashing


DROP DATE
apr 27
TUT 11: How to write a design report

Assigned: Peer Review
apr 30
LEC 21: Authentication and passwords

Reading: Book section 11.2

CI instructors will be holding office hours this week and next for help with the design report and peer review.
may 1
REC 21: Why Cryptosystems Fail
may 2
LEC 22: Secure channels

Reading: Book sections 11.3, 11.4, and 11.5
DUE: Hands-on buffer overrun
may 3
REC 22: DNSSEC
may 4
TUT 12: How to do a Peer Review
may 7
LEC 23: Network security and DDoS attacks

DUE: DP Report
may 8
REC 23: Botnets
may 9
LEC 24: Digital Currency
may 10
REC 24: Blockstack
may 11
TUT 13: No tutorial

DUE: Peer Review
may 14
LEC 25: Tor
may 15
REC 25: Privacy and Policy
may 16
LEC 26: The Importance of Policy

Reading: The Night Watch
may 17
REC 26: Morality in Systems + DP wrap-up


Last day of classes
may 18
may 21

Final exam week
may 22

Final exam week
may 23

Final exam week
may 24

Final exam week
may 25

Final exam week