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 http://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 http://ocw.mit.edu/fairuse.