This document provides an introduction to object-oriented programming concepts including the differences between procedural and OOP languages, basic Java terminology like classes, objects, attributes, methods, and encapsulation. It discusses what objects are, how to identify, define, create and operate on objects. It also covers object relationships like association, inheritance and mutability. Finally, it discusses modeling languages/symbols like UML, class definition, creating objects, object methods, and the Java System class.