Spring 2008





Preparation for Recitation 26

Thursday, May 17

The final 6.033 recitation discusses Butler Lampson's classic paper Hints for Computer System Design . This paper presents about two dozen general rules of thumb that experienced system designers have found helpful in building functional, fault-tolerant systems with acceptable performance. Some of Lampson's rules may seem obvious to you. Don't be misled by their apparent simplicity: they embody deep ideas, and it is all too easy to forget them while in the throes of a project. (And even if they are obvious, they are well worth collecting and repeating.)

Start out by reading the conclusion of the paper, and then follow the advice in its first sentence: read the paper in small pieces, over time, so that you can fully absorb its lessons. You will get less from the paper if you read it all at once.

You are likely to be unfamiliar with many of the systems discussed in the examples. It is not necessary to understand every example, but you should understand in detail at least one of the examples for each hint. Then, for each hint you should think of at least one example of a use (and perhaps also a misuse) of the hint from one of the readings. In addition, think about your design projects: how did you follow (or not) the hints? You might also think about when the hints are not applicable, and how you can tell when that is the case. Overall, the collection of hints should help you to synthesize the lessons you have learned during the semester.

If you have taken 6.170, you will notice that many of the hints are similar to, or identical to, those presented in 6.170. This is another example of the close relationship between 6.170 and 6.033. 6.033 and 6.170 are both about the construction of computer systems (even though they choose different details for close scrutiny), so the primary problems and techniques for avoiding those problems are similar.

Questions or comments regarding 6.033? Send e-mail to the 6.033 staff at or to the 6.033 TAs at

Top // 6.033 home // $Revision: 251 $, last modified on $Date: 2008-05-12 13:13:56 -0400 (Mon, 12 May 2008) $ GMT by $Author: cowling $