Object-Oriented Programming and Design Workshops
Ho Chi Minh City, Vietnam, July 19 & 20, 2004
Conducted by
Dung X. Nguyen &
Stephen B. Wong,
Rice
University, Houston, TX, USA
Overview:
Design Patterns are commonly viewed as design solutions to recurring
problems. Fundamental to problem solving is the principle of
"divide-and-conquer": decompose the problem into smaller "chunks", solve each of
the chunks and reassemble the solutions of the chunks to solve the original
problem. How to decompose a problem and how to reassemble the parts are at
the heart of the design process and are intimately intertwined.
In
object-oriented programming, a problem is decomposed into separate entities that
are related to one another via two fundamental relationships: "is-a" for
inheritance and "has-a" for composition. An object-oriented design pattern
not only describes
the specific "is-a" and "has-a" relationships of the various pieces in a problem,
but also prescribes how the pieces interact with one another to solve
the problem. As such, design patterns are expressions of fundamental
principles in computing.
Schedule:
- Inheritance and polymorphism:
- Union design pattern
- Factory design pattern
- The Shape Calculator
- Component Frameworks for Data Structures
- Immutable Lists
- What is a List?
- Abstract Structure
- Composite Design Pattern
- What is an algorithm on a list?
- Interpreter pattern
- Recursion
- Play-acting & Examples
- Decoupling algorithms from data structures
- Abstract Behavior
- Separation of Variant and Invariant
- Intrinsic vs. Extrinsic Behaviors
- Visitor Design Pattern
- Examples
- Does it all depend on the list implementation?
- Abstract Construction
- Factory design pattern
- Examples
- Mutable Lists
- Introduction to the State design pattern
- The State Design Pattern and
Mutable Lists
- LRStruct implementation
- Visitors to LRStruct : OOT vs. NOOT
- Lazy Evaluation
- Decorator design pattern
- Strategy design pattern
- Factory design pattern (again)
- Self-balancing trees
- Published paper (911 KB file)
- PowerPoint presentation (478 KB
file)
- Image of the poster presented (728
KB file)
- Lunch break (perhaps earlier)
- Design Festival
- Problem statement
- Group design
- Break
- Analysis of designs
Resources: