• Evolution of programming types
  • Encapsulation
  • Polymorphism
  • Inheritance
  • Modularity and abstraction