This presentation introduces object-oriented programming (OOP). It discusses the hierarchy of programming paradigms, comparing procedural programming to OOP. The need for OOP is that it models real-world things better and promotes reusability. The main components of OOP discussed are classes, objects, inheritance, polymorphism, encapsulation, and abstraction. Benefits of OOP include reusability, extensibility, and maintainability. The presentation concludes that OOP allows breaking problems into smaller pieces and facilitates upgrading systems from small to large.