| TeachJava!
|
Workshop Program: August 3 - August 8, 2002
Resources
Schedule of Topics
Monday:
- Welcome and Guiding Vision:
- Program design in Java = Program design in Scheme + transformations
- The Goals and Non-Goals of TeachJava!
- DrJava vs. DrScheme
- Summary of Major Differences Between Java and Scheme
- Basic Mechanics of Java
- Java data: primitive values and objects
- Java expressions
- Simple Java statements
- Java classes and instance methods
- Data-directed Programming in Java
- Review of the structural design recipe from Scheme
- Concrete classes in Java correspond to structures in Scheme
- Using the composite pattern to represent mixed data
- Standard class methods: constructors, toString, and equals
- Using the interpreter pattern to represent structural recursion
Tuesday:
- Review
- Another composite data definition example: IntFunList
- Using the interpreter pattern to represent structural recursion
- Static methods and fields
- Java command line interface
- Information hiding and the singleton pattern
- Type-checking and casting
Wednesday:
- Interfaces
- Using the command pattern to represent functions as data
- Anonymous classes
- Visitor pattern
Thursday:
- Imperative Programming with arrays
- Arrays as mutable sequences of fixed length
- Tail recursion on arrays
- Relationship between loops and recursion
- Loop invariants vs. function contracts
- GUI Design
- Model-View-Controller Pattern
- Java AWT event model
- Abbreviated roadmap of AWT/Swing component library
- Writing event class listeners as anonymous inner classes
Friday:
- Java applets
- Mutable data structures and the iterator pattern
- A glimpse of Threads and Concurrency
- Projecting the future of Java technology and pedagogy