Lecture 4:
Janus
Designing the class hierarchy to represent a Java program as data.
Lecture 5:
Methodical Methods
Designing methods for classes.