M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering January 18, 2000

6.033 Reading List

Textbook

Class notes

Papers

Introduction to computer systems

  1. Robert Lucky. Bozos on the bus. IEEE Spectrum 33, 7 (July, 1996) page 19.
  2. Richard P. Gabriel. Worse is better. From LISP: good news, bad news, how to win BIG, AI Expert 6, 6 (June, 1991) pages 33-35.
  3. Herbert A. Simon. The architecture of complexity. Proceedings American Philosophical Society 106, 6 (December, 1962) pages 467-482. Republished as Part 4, pages 84-118, of The Sciences of the Artificial, MIT Press, 1969. ISBN: 0-262-191051-6 (hardbound) 0-262-69023-3 (paperback).
  4. George D. Gopen and Judith A. Swan. The science of scientific writing. American Scientist 78, 6 (November-December, 1990) pages 550-558.
  5. Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents. Computer 26, 7 (July, 1993) pages 18-41.
  6. Butler W. Lampson. Hints for computer system design. Proceedings of the Ninth ACM Symposium on Operating Systems Principles, Bretton Woods, New Hampshire (October 10-13, 1983), pages 33-48. Published as Operating Systems Review 17, 5 (1983).

Computer system organization

  1. Robert Scheifler and Jim Gettys. The X window system. ACM Transactions on Graphics 5, 2 (April, 1986) pages 79-109.
  2. Ted Kaehler. Virtual memory for an object-oriented language. BYTE 6, 6 (August, 1981) pages 378-387.
  3. Dennis M. Ritchie and Ken L.Thompson. The UNIX time-sharing system. Bell System Technical Journal 57, 6, part 2 (1978) pages 1905-1930.
  4. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. Eraser: a dynamic race detector for multithreaded programs. ACM Transaction on Computer Systems 15, 4 (November 1997) pages 391-411. Also appeared in the Proc. Sixteenth ACM Symposium on Operating Systems Principles (October 1997).

Networking

  1. Robert M. Metcalfe and David R. Boggs. Ethernet: Distributed packet switching for local computer networks. Communications of the ACM 19, 7 (July, 1976) pages 395-404.
  2. David B. Johnson. Scalable support for transparent mobile host Internetworking. Mobile Computing. Ed. T. Imielinski and H. Korth, Kluwer Academic Publishers, 1996.
  3. Jerome H. Saltzer, David P. Reed, and David. D. Clark. End-to-end arguments in system design. ACM Transactions on Computer Systems 2, 4 (November, 1984) pages 277-288.
  4. Robert Morris, Eddie Kohler, John Jannotti, and M. Frans Kaashoek. The Click modular router. Proc. Seventeenth ACM Symposium on Operating Systems Principles. Kiawah Island, South Carolina (December 1999) pages 217-231.

Naming

  1. Andrew D. Birrell, Roy Levin, Roger M. Needham, and Michael D. Schroeder. Grapevine: An exercise in distributed computing. Communications of the ACM 25, 4 (April, 1982) pages 260-274.

Security

  1. Eugene H. Spafford. Crisis and aftermath. Communications of the ACM 32, 6 (June, 1989) pages 678-687.
  2. Steven R. Lerman, James D. Bruce, and Jerome H. Saltzer. Teaching students about responsible use of computers. Communications of the ACM 32, 6 (June, 1989) page 704. The publication omits the names of the first two authors.
  3. Ken Thompson. Reflections on Trusting Trust. Communications of the ACM 27, 8 (August 1984) pages 761-763.
  4. Ross J. Anderson. Why cryptosystems fail. Communications of the ACM 37, 11 (November 1994) pages 32-40.

    Note: A more timely set of society-impact papers will be handed out later.

Failure recovery, coordination, and atomicity

  1. Henry Petroski. Engineering: History and failure. American Scientist 80, 6 (November-December, 1992) pages 523-526.
  2. Phillip J. Plauger. Chocolate. Embedded Systems Programming 7, 3 (March, 1994) pages 81-84.
  3. Jim Gray and Daniel P. Sieworek. High-availability computer systems. Computer 24, 9 (September, 1991) pages 39-48.
  4. Randy H. Katz, Garth A. Gibson, and David A. Patterson. Disk system architectures for high performance computing. Proceedings of the IEEE 77, 12 (December, 1989) pages 1842-1857.
  5. Alfred Spector and David Gifford. The space shuttle primary computer system. Communications of the ACM 27, 9 (September, 1984) pages 874-900.
  6. Jim Gray, Paul McJones, Bruce Lindsay, Raymond Lorie, Tom Price, Franco Putzolu, and Irving Traiger. The recovery manager of the System R database manager. ACM Computing Surveys 13, 2 (June, 1981) pages 223-242.
  7. Mendel Rosenblum and John K. Ousterhout. The design and implementation of a log-structured file system. Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, Pacific Grove, California (October 13-16, 1991) pages 1-15. Published as Operating Systems Review 25, 5 (1991). Also appeared in ACM Transactions on Computer Systems 10, 1 (February, 1992) pages 26-52.
  8. James J. Kistler and Mahadarev Satyanarayanan. Disconnected operation in the Coda file system. Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, October 13-16, 1991, Pacific Grove, California. In Operating Systems Review 25, 5 (December, 1991) pages 213-225.

More complexity

  1. Effy Oz. When professional standards are lax: the CONFIRM failure and its lessons. Communications of the ACM 37, 10 (October 1994) pages 29-36.
  2. James L. Woodward. What makes business programming hard? BYTE 7, 10 (October, 1982) pages 68-72.

Historical perspective

  1. Larry Press. Before the Altair: The history of personal computing. Communications of the ACM 36, 9 (September, 1993) pages 27-33.
  2. Butler W. Lampson. Hints for computer system design. Proceedings of the Ninth ACM Symposium on Operating Systems Principles, Bretton Woods, New Hampshire (October 10-13, 1983), pages 33-48. Published as Operating Systems Review 17, 5 (1983).
    Note: we suggest you read this paper twice: once at the beginning of the term and once at the end.