CS162 | Object Oriented Programming
  • Rating: 4.85
  • (439)
Course overview

Introduction to object-oriented concepts, analysis and development using C++, Object oriented problem solving, program design process, classes, methods, objects and encapsulation. Operator & function overloading, virtual functions, derived classes, inheritance, polymorphism and Design Patterns. Become familiar with breaking down a problem into objects rather than procedures. Learn object-oriented programming in C++, Learn what is available off the shelf to facilitate C++ development (tools, libraries)

What you will learn
  • CLO-1 Describe key concepts of object-oriented programming paradigm (C1 - Remembering).

  • CLO-2 Interpret real world problems in terms of objects rather than procedure (C2 - Understanding).

  • CLO-3 Apply object-oriented programming principles to implement small and medium scale C++ programs with simple graphical user interface (C3 - Applying).

Data Abstraction
Introduction, Structure Definitions, Accessing Structure Members, Implementing a User-Defined Type Time with a struct
Abstract Data Type, Constructors, Destructors, Set and Get Functions, Friend Function, New and Delete
Operator Overloading
Fundamentals of Operator Overloading, Overloading Stream, Unary and Binary Operators, String Class, Vector
Base Classes and Derived Classes, Constructors and Destructors in Derived Classes, “Uses A” and “Knows A” Relationships, Public, Protected and Private Inheritance
Inheriting Interface and Implementation, Polymorphism, Virtual Functions and Dynamic Binding, “Under the Hood”, Virtual Destructors
Templates and STL
Function and Class Templates, Static Members, STL Containers, Sequence and Associative Containers, Container Adapters
Exception Handling
Error-Handling Techniques, Divide by Zero, Processing Unexpected Exceptions, Stack Unwinding, Dynamic Memory Allocation
Design Patterns
MVC, Roles, Interface-vs-Implementation, Factory Method, and Singleton Design Pattern, Iterator and Composite Design Pattern
Course program
This course teaches object-oriented programming to those who have learnt basic programming concepts and are ready to learn in-depth programming. It focuses on object-oriented programming using C++. The main concepts discussed are: Objects, Data Abstraction, Data Encapsulation, Polymorphism, and Inheritance. We teach the C++ language constructs that are used to implement these concepts. For example, Classes, Overloaded Operators, Overridden Methods, Friend Functions, Virtual Functions, and Templates.
Lessons Name Description Duration Week Slides
1 Pointers and Strings Bubble Sort, Card Shuffling 3 hours 1 OOPS1401
2 Data Abstraction Implementing Time ADT 3 hours 2 OOPS1402
3 Classes Composition, Friend Functions, This Pointer 6 hours 3,4 OOPS1403
4 Operator Overloading Overloading Stream-Insertion and Stream-Extraction 6 hours 5,6 OOPS1404
5 Inheritance Base and Derived Classes 6 hours 7,8 OOPS1405
6 Polymorphism Derived Class Pointer via Base Class Pointers 6 hours 9,10 OOPS1406
7 Templates unction Templates, Class Templates 6 hours 11,12 OOPS1407
8 Exception Handling Divide-By-Zero 3 hours 13 OOPS1408
9 Standard Template Library Iterator, Vector and Containers 6 hours 14,15 OOPS1409