6.005 | Fall 2008 | Undergraduate

Elements of Software Construction

Pedagogy

We asked Prof. Miller to comment on the differences between the Fall 2008 and Fall 2011 versions of 6.005, both published on OCW:

The Fall 2011 version of 6.005 has several pedagogical differences from the Fall 2008 version. The Fall 2008 course was organized into three modules, each covering one paradigm (state machines, functional programming, and object-oriented programming). Fall 2011 weaves those paradigms together, rather than separating them. It also uses Python instead of Java for higher-order functional programming, and focuses less on high-level design notations (like dependency diagrams and object models) and more on low-level module design and implementation (like specifications, abstract data types, and test-first programming). Fall 2011 also includes much more material on concurrency than Fall 2008.

Course Info

Learning Resource Types
Problem Sets
Lecture Notes
Projects
Programming Assignments with Examples