/6.033

MIT's Computer Systems Engineering class. Self-studied during the summer of 2017 (based on Spring 2017 class).

6.033 - Computer Systems Engineering

Self-studied during the summer of 2017 in preparation for advanced graduate coursework in operating system and database engineering. Will be taken again during the spring of 2018 as a requirement under the MIT EECS curriculum.

Objectives of 6.033

After 6.033, the students will be able to design their own distributed systems to solve real-world problems. The ability to design one's own distributed system includes an ability to argue for one's design choices.

This primary objective is supported by a few others:

  • The students will be able to evaluate and critique existing systems, as well as their own system designs. As part of that, students will learn to recognize design choices made in existing systems.
  • The students will be able to apply the technical material taught in lecture to new system components. This implies an ability to recognize and describe:
    1. How common design patterns in computer system—such as abstraction and modularity—are used to limit complexity.
    2. How operating systems use virtualization and abstraction to enforce modularity.
    3. How the Internet is designed to deal with scale, a diversity of applications, and competing economic interests.
    4. How reliable, usable distributed systems are able to be built on top of an unreliable network.
    5. Common pitfalls in the security of computer systems, and how to combat them.