Unit - I: Foundations of Object Oriented Programming Software Evolution, Introduction to Procedural, Modular, Object - Oriented and Generic Programming Techniques, Limitations of Procedural Programming, Need of Object- Oriented Programming, Fundamentals of Object-Oriented Programming : Objects, Classes, Data Members, Methods, Messages, Data Encapsulation, Data Abstraction and Information Hiding, Inheritance, Polymorphism, Static and Dynamic Binding, Message Passing. UNIT - II: Classes, Objects and Methods Creating a Class, Visibility/Access Modifiers, Encapsulation, Methods : Adding a Method to Class, Returning a Value, Adding a Method That Takes Parameters, The 'this' Keyword, Method Overloading, Object Creation, Using Object as a Parameters, Returning Object, Array of Objects, Memory Allocation : 'new', Memory Recovery : 'delete', Static Data Members, Static Methods, Forward Declaration, Class as Abstract Data Types (ADTs), Classes as Objects.