The basic idea behind Object Oriented Programming (OOP) is to combine into a single unit both data and the methods that operate on that data, and that helps us write complex code that we could possibly difficult to manage. The aim of this course is not only to teach students the fundamental concepts of OOP such as Abstraction, Polymorphism, Encapsulation and Inheritance; but also, to use these concepts in designing and implementing complex applications using C# language.