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 practices; topics will include incremental programming, heterogeneous data structures, mixin inheritance, and design for reuse. We will also compare standard object-oriented idioms as implemented in Ada vs. other object-oriented languages (e.g. C++, Eiffel).