This document introduces object-oriented programming (OOP) by discussing the differences between structured and OOP, key OOP terminology like objects, classes, methods and attributes, and the four main design principles of OOP: encapsulation, abstraction, polymorphism, and inheritance. It provides examples of attributes and methods for a car class and explains the benefits of OOP like code reuse and easier debugging. Finally, it briefly covers some popular OOP programming languages like Java, C++ and Smalltalk.