Objectives (for 1993, when used this for C++, after general concepts discussion) Understand the objects in a design encapsulation of ADTs Understand the value in reuse of design generics and inheritance. Understand message passing and when to use it See inheritance as "modifying the recursion" Understand subtyping and subtype polymorphism Plan, don't spend too much time on semantics. don't go over C stuff or too many details give lots of examples. 1. Hype/Promise. Design overview. Semantics from ref manual? 2. Examples: Cook's paper, Stacks, Lottery. 3. Examples: Designing a library of classes. 4. Design issues: templates, exceptions, subtyping vs. inheritance, subtyping and the type system, gc vs. explicit storage alloc, reference vs. value semantics....