This document provides an introduction to object-oriented programming (OOP) concepts. It discusses procedural programming and its limitations. OOP aims to overcome these limitations through concepts like encapsulation, inheritance, polymorphism, and abstraction. Encapsulation binds data and functions together in classes. Inheritance allows deriving new classes from existing classes. Polymorphism allows the same action to be performed in different ways. Abstraction describes things at a conceptual level. Examples are provided to illustrate these core OOP concepts. The next lecture will cover implementing OOP in C# and building a game with Unity 3D.