This document provides an introduction to object oriented programming. It discusses key concepts like objects, classes, data encapsulation, data abstraction, inheritance, and polymorphism. Objects contain both data and code, and classes are user-defined types that make objects. Data encapsulation involves wrapping data and functions together, hiding the data. Inheritance allows classes to acquire properties from other classes to enable reusability. Polymorphism means the same operation can have different behaviors depending on the data type. The benefits of OOP include code reuse, easier upgrades, and managing complexity through objects modeling real-world items.