This course introduces the basic concepts and techniques of object oriented programming. Actual computer programs are constructed by apply object oriented programming concepts and using an OOP language. Java is primarily chosen as the programming language in this course. The following topics are covered in this course: Java syntax with elementary programming, primitive data types, strings, operators, statements, arrays and methods, introduction to OOP, classes and objects, constructor, polymorphism, abstract classes and interfaces, file IO operations, handling exceptions in Java, GUI, multithreading, generics and related concepts.