This course aims to educate students to understand the Object-Oriented approach to programming and help them develop some practical skills along the way. The concepts that will be explained and skills developed are in common use among programmers using many modern Object-Oriented languages and are thus transferable from one language to another. However, for practical purposes these concepts are explored and demonstrate using the C# (pronounced C sharp) programming language. Topics include core fundamental of C#, GUI objects and controls, methods, classes, objects, inheritance, exception handling, and files and streams.