This is an abbreviated course syllabus. Like everything else in this course, it is likely to change.
Weeks: 1, 2, 3, 4, 5, 6, 7, 8, break, 9, 10, 11, 12, 13, 14.
|Week 1: Some Basics|
|(01) Friday, 27 August 2004
|(02) Monday, 30 August 2004
About the class. The candy machine world. Problem 1: Testing. Problem 2: Doubling.
|(03) Wednesday, 1 September 2004
Quiz. The Import Statement. Why packages? Using packages in *nix systems.
|(04) Friday, 3 September 2004
Using Java packages. The Candy Machine Problem, Revisited. Solution one: Java Introspection. Solution two: An Important Design Pattern. Improving solution two: Anonymous Inner Classes.
|Week 2: Basics, Continued|
|(05) Monday, 6 September 2004
Factories, Revisited. Anonymous Inner Classes. Factories, Re-Revisited.
Assignments: Read Fowler, Chapter 3, 5, and 6.
|(06) Wednesday, 8 September 2004
The UML (1): Objects and Their Relationships
The Key Parts of a Class Relationships Between Classes Incorporating Interfaces Q and Q Exercise
Assignments: Read Fowler, Chapters 4, 9, and 10.
|(07) Friday, 10 September 2004
|Week 3: UML|
|(08) Monday, 13 September 2004
The UML (2): Classes and Interfaces
Assignments: Homework for Friday: Sketch UML diagrams to give an overview of how one might approach the "Ant Simulation" problem. Work in groups of three. Homework for Wednesday: Finish UML Distilled.
|(09) Wednesday, 15 September 2004
The UML (3): Processes and Computation
Representing code in action. Sequence diagrams. Use cases. Finite state amchines.
|(10) Friday, 17 September 2004
The UML (4): Miscellaneous
Sequence diagram example. Questions and answers. State diagram example.
Due: Homework 2: Diagrams. Assignments: Start to read the XP book. Project, phase 1: Design and implement theWorld.
|Week 4: Tools|
|(11) Monday, 20 September 2004
Version Management with CVS
Background: Controlling Source Code Background: Unix tool design CVS: Design Issues Using CVS
|(12) Wednesday, 22 September 2004
Simple Project Management with Make
The problems Make addresses Make basics Variables in Make Standard Make targets Advanced make
|(13) Friday, 24 September 2004
Java Project Management with Ant
Philosophy of Ant Ant Basics Ant Variables
Due: Homework 3: Worlds Assignments: Read the XP book. HW4, Part 1: Implementing the State of the World. HW4, Part 2: Implementing Bugs.
|Week 5: Extreme Programming|
|(14) Monday, 27 September 2004
Extreme Programming (1)
Context: Kinds of Software. Context: Heavyweight Development. Basics of XP.
|(15) Wednesday, 29 September 2004
Extreme Programming (2)
Principles that ground XP. Programmers' activities. XP Practices. Exercise: Testing.
|(16) Friday, 1 October 2004
Due: WorldState or Bug Assignments: Prepare talks for Monday's class. Write a better TestVector (due Friday). Read JUnit Test Infected: Programmers Love Writing Tests.
|Week 6: Swing|
|(17) Monday, 4 October 2004
Assignments: Start reading Creating a GUI with JFC/Swing.
|(18) Wednesday, 6 October 2004
Testing with JUnit
Writing our own tests. Generalizing to a test suite. JUnit.
|(19) Friday, 8 October 2004
Swing Basics A Sample Program Some Design Issues Exercise
|Week 7: Pause for Breath|
|(20) Monday, 11 October 2004
Design Criteria. Examples. Exercise.
|(21) Wednesday, 13 October 2004
|(22) Friday, 15 October 2004
|Week 8: Design Heuristics|
|(23) Monday, 25 October 2004
Design Heuristics (1): Basics
Quiz discussion. Your questions. The basics: Why this book, why study heuristics? A guiding principle: Encapsulation. Weaknesses of this principle.
|(24) Wednesday, 27 October 2004
Design Heuristics (2): Relationships
Preparation Containment vs. Association
Assignments: Take Home Exam 1 (due next Friday).
|(25) Friday, 29 October 2004
Pause for Breath
|Week 9: Testing|
|(26) Monday, 1 November 2004
In-Class Exam 1
|(27) Wednesday, 3 November 2004
Swing (3): Drawing
Graphics basics Normal steps Example
|(28) Friday, 5 November 2004
Discussion of In-Class Exam 1
Questions and answer on take-home Problems with in-class If time: Ideas about Wednesday's problems?
Assignments: Please try to read more of Design Heuristics. Finish the exam.
|Week 10: Design Heuristics, Revisited|
|(29) Monday, 8 November 2004
Swing (4): Debugging Drawing
A buggy program Strategies for zapping the bug
|(30) Wednesday, 10 November 2004
Design Heuristics (3): Relationships
How objects and classes relate Obtaining classes to use Class design Inheritance Polymorphism Association
|(31) Friday, 12 November 2004
Next phase of assignment Interface demos
Assignments: Next stage of the project: Integrate! In particular, integrate (1) a world represented by a two-dimensional array of tiles; (2) the code that displays tiles; (3) the code that reads and runs bugs.
|Week 11: Design Heuristics, Concluded|
|(32) Monday, 15 November 2004
Design Heuristics (4): Choosing Relationships
Today's strategy Choosing a relationship Choosing how to get objects to use
|(33) Wednesday, 17 November 2004
Design Heuristics (5): Choosing Relationships, Continued
Today's strategy Choosing a relationship
|(34) Friday, 19 November 2004
Design Heuristics (6): Obtaining Objects to Use
Choosing how to get objects to use Riel's heuristics Our heuristics
Assignments: Read chapters 1 and 2 of Design Patterns.
|Week 12: Design Patterns|
|(35) Monday, 22 November 2004
Design Patterns (1): Introduction
Multiple perspectives on software reuse The Design Patterns philosophy An example: Sorting The Design Patterns catalog, abbreviated The Patterns Format(s)
Assignments: Finish your simulation (due Monday, 6 December 2004). Read chapter 2 of Design Patterns (due Wednesday, 24 November 2004). Read chapter 3 of Design Patterns (due Monday, 29 November 2004).
|(36) Wednesday, 24 November 2004
|Week 13: Design Patterns|
|(37) Monday, 29 November 2004
Design Patterns (2): Case Study
The case: A text editor Nine key patterns: Composite (163), Strategy (315), Decorator (175), Abstract Factory (87), Bridge (151), Command (223), Iterator (257), Visitor (331), Flyweight (195)
|(38) Wednesday, 1 December 2004
Design Patterns (3): Creational Patterns
Questions and answers. Three related creational patterns. Two other creational patterns.
Assignments: Read "Structural Patterns" for Friday.
|(39) Friday, 3 December 2004
Design Patterns (4): Structural Patterns
Builders, revisited Basic wrapper patterns Group wrapper patterns Other wrapper patterns Other creational patterns
|Week 14: Wrapup|
|(40) Monday, 6 December 2004
Introductory notes Java Collections Framework Factories Introspective Testing Refactoring
Assignments: Take-home Final Examination. Read Chapter 5 of Design Patterns.
|(41) Wednesday, 8 December 2004
Design Patterns (5): Behavioral Patterns
Introduction Summary of patterns Relating patterns
Assignments: End-of-course Development Evaluation (due Friday). Final stages of project (due Friday).
|(42) Friday, 10 December 2004
I usually create these pages
on the fly, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Wed Dec 8 08:40:11 2004.
The source to the document was last modified on Mon Nov 29 08:33:38 2004.
This document may be found at