The document provides an introduction to object oriented programming (OOP) by comparing it to procedural programming. It discusses that OOP treats data as a critical element and ties data more closely to functions that operate on it. It allows decomposition of problems into objects that contain both data and functions. The four main pillars of OOP are discussed as objects, classes, encapsulation, and inheritance. Classes are defined as collections of similar objects that define attributes and behaviors of objects. Constructors and different types of constructors like parameterized and copy constructors are also introduced.