Ada 9X-the revised definition of the Ada programming language-provides support for object-oriented programming. This course examines the new, object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered, such as: extension, inheritance, and polymorphism. We then show how to integrate these mechanisms into good programming practice; topics include incremental programming, heterogeneous data structures, and mixin inheritance. The running theme is design for reuse.