This course provides an introduction to object-oriented programming (OOP) using the Java programming language. Its main objective is to teach the basic concepts and techniques which form the object-oriented programming paradigm. In this course, the main content area is an overview of Java Programming Languages, comparison of structure, and object-oriented programming, Evolution of Object-Oriented (OO) Programming, OO Concepts and Principles, Problem Solving in OO Paradigm. OO Program & Design Process, Objects, Classes, Encapsulation, Abstraction, Constructors (constructors overloading), Destructors, Operator Overloading (unary, binary operators, subscript operator, Assignment operator and Copy constructor overloading), Basic to basic and User define to user define Conversion (explicit Constructors and Conversion Operators), Inheritance( single, Multi, Multilevel), Derived Classes, Function overriding, Aggregation and composition concepts, Dynamic Memory Management, Virtual Functions, Polymorphism, Stream Input/Output, File Processing, Exception Handling.