This course compares and contrasts procedural/functional approach to object-oriented programming. This also covers designing, coding, testing and debugging programs using OOP concepts like abstraction, encapsulation, inheritance and polymorphism.