This document provides an overview of object-oriented programming and Java. It discusses the major programming paradigms including imperative, logical, functional and object-oriented. It then covers the key principles of object-oriented programming like encapsulation, inheritance, abstraction and polymorphism. The document also defines Java applications and applets and explains the processes of editing, compiling and interpreting Java code.