Sponsored Link •
Summary: This course teaches object-oriented design through design guidelines, idioms, and patterns. Each guideline, idiom, and pattern will be explained and justified, and then discussed by the students. This discussion is an integral part of the workshop, aimed at facilitating a conversation about design among peers that can help everyone to learn from each other's experiences and perspectives.
The Object Design Workshop also includes a hands-on design project. Periodically, the students will break up into small groups, each of which is assigned an API design project. Each group will document their design with UML and/or javadoc HTML pages, and present their design to the rest of the class, who will critique it mercilessly.
The Object Design Workshop focuses heavily on the designing with Java. Although many of the guidelines are applicable to any object-oriented language, all examples are shown in Java. Most of the idioms, by contrast, are specific to Java. In addition, the end result of each API design project will be a Java package.
Audience: This course is designed for experienced programmers who want to improve their object-oriented design skills.
Duration: Three days, lecture and lab
Objective: To facilitate an object-oriented design experience with a high degree of interaction between students. At the end of the Object Design Workshop, students will walk away with a specfic set of practical guidelines and concrete idioms and patterns that they can draw upon in their future designs. The point of the design reviews is the same as the discussions -- to draw out the experience and perspectives of the entire group, and enable everyone to learn from each other.
Prerequisites: The student should be a programmer experienced in at least one object-oriented language. Prior experience in Java is helpful.
Topics: Here's an outline of the Object Design Workshop, in which each lecture is linked to an online copy of the handout:
To contact Bill about giving this seminar in-house, please e-mail him at email@example.com.