Object Oriented Programming (CS1143)

Pre-requisite(s)

Computer Programming (CS-1123)

Recommended Book(s)

Introduction To C++ Programming, Comprehensive Version, By Y. Daniel Liang
Object-Oriented Programming In C++ Author: Robert Lafore, Fourth Edition

Reference Book(s)

C++: How To Program (Fourth Edition), Deitel & Deitel, Prentice-Hall.

An Introduction To Object Oriented Programming, Timothy Budd, Second Edition

Course Objectives

Emphasis this course is on intensive study of object-oriented programming using C++. Abstract data types, object instantiation, inheritance, polymorphism, composition, member access control, templates, overloaded operators, exception handling, use of C++ headers, and class libraries will be studied.

Course Learning Outcomes (CLO)

Course Objectives

Course Contents

Introduction and Revision

Introduction of the course
Overview of Structured Programming using C++
Pointers Revision
Introduction to classes and Object Oriented Concepts

Creating classes

Function Overloading, C++ Constructor & Destructor.
Importance of Destructor, Calling sequence of Constructor & Destructor for multiple objects.
Preventing changes in data members from a method: const method.
Pointer to Object; Object as argument to function (call by value & call by reference);

 Composition of classes

Composition

 Friend classes and functions

Friend functions
Friend class

 Operator overloading

Operator Overloading
Binary Operator NOT receiving Instance of class as 1st operand
Overloading Binary Operators for I/O stream
Overloading Unary Operator: as member, as non-member
Unusual Operators: ++, --, [ ] (set & get, both versions), type-cast

 Inheritance in OOP

C++ Inheritance Concepts
Introduction to Java
Constructors, Destructors, Inheritance in Java,
Relationships in OOP
C++  Multiple Level Inheritance, Multiple Inheritance

 Virtual classes and Polymorphism

Virtual inheritance
Polymorphism in C++ and Java
Virtual Functions

 Streams

C++ Streams
Java Streams
C++ and Java Streams

 Template classes and functions

Function Template
Class Template

 GUI and Exceptions

Java GUI Handling
C++ and Java Exceptions
Unhandled Exception
Revision of Course 

Mapping of CLOs to Assessment Modules

Final Exam

Assignments 

Surprise Tests/Quizzes

Project

Midterm Exam