| TeachJava!
|
Workshop Program: June 21-25, 2004
Resources
Schedule of Topics
Monday:
- Welcome and Guiding Vision:
- Program design in Java is data-directed
- Common data abstractions are codified as design patterns
- Language levels flatten the learning curve
- DrJava vs. Editor + Command Line
- Beware of hidden differences between C++ and Java
- Elementary Data-directed Programming in Java
- Concrete classes in Java correspond to structures and classes in C++
- Using the union pattern to represent data variants
- Using inheritance to eliminate repeated code
- Using the composite pattern to represent inductive data
- Standard class methods: constructors, toString, and equals
- Using the interpreter pattern to perform delegation
Tuesday:
- Review
Ë - Another composite data definition example: IntFunList
- Using the interpreter pattern to perform delegation
- Static fields
- Information hiding and the singleton pattern
- Type-checking and casting
Wednesday:
- Interfaces
- Using the command pattern to represent behavior as data
- Anonymous classes
- Visitor pattern
Thursday:
- Static methods
- Java command line interface
- 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