Object Oriented Programming Lab (CS1141)

Pre-requisite(s)

Computer Programming (CS-1123)

Computer Programming Lab (CS-1121)

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

Quizzes   

Assignments                        

Midterm Exam \s                

Final Exam