1. (Intermediate/Core) I'd cover basic OO in Python. I'd demonstrate basic features like instantiation, introspection, properties and methods before moving on. I would not cover defining new classes before I had covered creating a dispatcher with first-class functions in a hash-map/dictionary. I would not cover defining new classes unless I could cover pros and cons of using OO style versus simple functions that accept rich data structures like lists and hash-maps.
2. (Intermediate/Optional) I'd offer Java, C# and(or) Smalltalk classes at the intermediate level, where the goal would be competence with the chosen language's implementation, tooling, ecosystem and common programming idioms. These classes would involve object-oriented principles, given how important the paradigm is to these languages, but it wouldn't be the sole focus of the class. Edit: Also C++ if possible.
3. (Intermediate/Optional) A design patterns practicum. (Visitor, observer, factory, etc.). Just a programming-heavy class where you solve problems using as many of the common design patterns as possible.
4. (Advanced/Optional) A bottom-up class where we'd cover implementation details of object systems in a low-level systems language like C. Perhaps a semester-long project might be to build a working object system in C. The pedagogical goal would be impart an understanding of the kinds of problems that object-oriented programming was invented to solve by relying on first-hand experience rather than dogmatic instruction and hand-waving about the evils of procedural style.
5. (Advanced/Optional) An Object Oriented Design class that would cover issues in designing large-scale systems using object-oriented programming. It would cover issues relating to inheritance, Object-Relational Mapping, and API design. This is where you'd cover UML and that sort of thing.