Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code to manipulate that data. The principles of OOP include encapsulation, inheritance, and polymorphism, which enable programmers to create modular, reusable code.