Workshop: How to Design Class Hierarchies

Viera K. Proulx

June 17, 2004

Day 1

Monday am:

Overview and Introductions
Design recipes in HtDP
Structure of data: containment, union
Self-referential data

Monday pm:

Classes: data definitions, class diagrams, constructors
Making examples of objects
Composition
Union: data definitions, class diagrams, examples

Day 2

Tuesday am:

Design recipes for class hierarchies
Self-referential data - lists, trees, ...
Mutually referential data

Tuesday pm:

Methods for simple classes
Design recipes for methods
Methods for classes with containment
Methods for union

Day 3

Wednesday am:

More methods for unions:
    Abstract vs. concrete methods in the abstract class
    Methods for self-referential class hierarchies
    Accumulator style methods for self-referential data

Wednesday pm:

Abstractions over the data item type: Object
Abstracting behavior: interfaces

Day 4:

Thursday am:

Function objects: Comparator, Selector, IObj2Int
State - programming with effects
Mutating structures
Equality

Thursday pm:

Abstracting traversals: iterators
Design recipe for abstractions

Day 5:

Friday am:

Designing loops with function objects and iterators
Implementing iterators

Friday pm:

What have we learned
Where do we go from here

Last modified: Thursday, June 17th, 2004
HTML conversion by TeX2page 2003-09-27