This document provides an introduction to object oriented programming (OOP). It discusses how OOP addresses issues that contributed to a "software crisis" like managing complexity as systems grow. OOP models real-world problems using objects that encapsulate both data and functions. Key concepts of OOP include classes, which define user-defined data types, and objects, which are instances of classes. Other concepts are inheritance, which allows classes to acquire properties of other classes; polymorphism, which allows operations to exhibit different behaviors; and encapsulation, which wraps data and functions into a single unit. The document outlines benefits of OOP like reusability, extensibility, and mapping to real-world problems. It also lists promising applications