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