This document provides an overview of basic object-oriented programming concepts including objects, classes, data abstraction and encapsulation, inheritance, polymorphism, dynamic binding, and message passing. It defines objects as run-time entities that contain both data and code, and can represent user-defined data types. Classes are introduced as templates that define common properties and behaviors of objects. The concepts of encapsulation, abstraction, inheritance and polymorphism are described as key pillars of object-oriented design. Dynamic binding and message passing are discussed as mechanisms for communication between objects at run-time.