This is an archived course. A more recent version may be available at ocw.mit.edu.

Lecture Notes

These lecture notes have been collaboratively authored, with contributions from Saman Amarasinghe, Srini Devadas, Michael Ernst, John Guttag, Daniel Jackson, Rob Miller, Martin Rinard, and Armando Solar-Lezama. Used with permission.

LECTURE NOTES SUPPORTING FILES

Lecture 1: Static checking (PDF)

Addendum: Snapshot diagrams (PDF)

(ZIP) (This ZIP file contains: 1 .java file.)
Lecture 2: Test-first programming (PDF) (ZIP) (This ZIP file contains: 2 .java files.)
Lecture 3: Specifications (PDF - 1.0MB) (ZIP) (This ZIP file contains: 2 .java files.)
Lecture 4: State machines (PDF - 1.1MB) (ZIP) (This ZIP file contains: 5 .java files.)
Lecture 5: Regular expressions and grammars (PDF) (ZIP) (This ZIP file contains: 10 .java files.)
Lecture 6: Abstract data types (PDF - 1.2MB) (ZIP) (This ZIP file contains: 8 .java files.)
Lecture 7: Recursive data types (PDF) (ZIP) (This ZIP file contains: 4 .java files.)
Lecture 8: Interpreters and visitors (PDF - 1.1MB) (ZIP) (This ZIP file contains: 8 .java files.)
Lecture 9: Review  
Lecture 10: Concurrency (PDF) (ZIP) (This ZIP file contains: 3 .java files.)
Lecture 11: Processes and sockets (PDF) (ZIP) (This ZIP file contains: 2 .java files.)
Lecture 12: Thread safety (PDF) (ZIP) (This ZIP file contains: 4 .java files.)
Lecture 13: Synchronization (PDF) (ZIP) (This ZIP file contains: 19 .java files.)
Lecture 14: Graphical user interfaces (PDF - 1.2MB)

(ZIP) (This ZIP file contains: 4 .java files.)

In the beforeclass\hogwarts\gui\images folder, three images (harry.jpg, hermione.jpg, and no-photo.jpg) have been removed due to copyright restrictions.

Lecture 15: Map, filter, reduce (PDF)

(ZIP - 8.9MB) (This ZIP file contains: 12 .class files, 5 .java files, 4 .py files, and 1 .jar file)

Jython 2.5.2 © Python Software Foundation. All rights reserved. This content is excluded from our Creative Commons license. For more information, see https://ocw.mit.edu/fairuse.

Lecture 16: Little languages (PDF)

(ZIP - 8.9MB) (This ZIP file contains: 17 .java files, 1 .py file, and 1 .jar file.)

Jython 2.5.2 © Python Software Foundation. All rights reserved. This content is excluded from our Creative Commons license. For more information, see https://ocw.mit.edu/fairuse.