You are on page 1of 2

CMPC-102: Object Oriented Programming

Credit Hours: 3+1 Prerequisites: CMPC-101

1. Introduction to Classes, Objects and Strings: Defining a Class with a Member Function, Defining a
Member Function with a Parameter, Data Members, set Member Functions and get Member
Functions, Initializing Objects with Constructors, Placing a Class in a Separate File for Reusability,
Separating Interface from Implementation, Validating Data with set Functions [TB 1: Ch. 3]
2. Class Templates array and vector; Catching Exceptions: Introduction, Arrays, Declaring arrays,
Examples Using arrays, Range-Based for Statement, Sorting and Searching arrays, Multidimensional
arrays. [TB 1: Ch. 7]
3. Classes - Throwing Exceptions: Class Scope and Accessing Class Members, Access Functions and
Utility Functions, Constructors with Default Arguments, Destructors, When Constructors and
Destructors Are Called, Default Memberwise Assignment, const Objects and const Member
Functions, Composition: Objects as Members of Classes, friend Functions and friend Classes, Using
the this Pointer, static Class Members. [TB 1: Ch. 9]
4. Operator Overloading; Class string: Introduction, Using the Overloaded Operators of Standard
Library Class string, Fundamentals of Operator Overloading, Overloading Binary Operators,
Overloading the Binary Stream Insertion and Stream Extraction Operators, Overloading Unary
Operators, Overloading the Unary Prefix and Postfix ++

and – Operators, Dynamic Memory Management, Operators as Member vs. Non-Member


Functions, Converting Between Types, explicit Constructors and Conversion Operators,
Overloading the Function Call Operator () [TB 1: Ch. 10].
5. Inheritance: Introduction, Base Classes and Derived Classes, Relationship between Base
and Derived Classes, Constructors and Destructors in Derived Classes, public, protected and
private Inheritance, Software Engineering with Inheritance. [TB 1: Ch. 11]]
6. Polymorphism: Introduction, Relationships Among Objects in an Inheritance Hierarchy,
Type Fields and switch Statements, Abstract Classes and Pure virtual Functions,
Polymorphism, Virtual Functions and Dynamic Binding ―Under the Hood‖. [TB 1: Ch. 12]
7. Stream Input/Output: Introduction, Streams, Stream Output, Stream Input, Unformatted
I/O Using read, write and gcount, Introduction to Stream Manipulators, Stream Format
States and Stream Manipulators, Stream Error States, Tying an Output Stream to an Input
Prentice Hall File Processing: Introduction, Files and Streams, Creating a Sequential File,
Reading Data from a Sequential File, Updating Sequential Files, Random-Access Files,
Creating a Random-Access File, Writing Data Randomly to a Random-Access File, Reading
from a Random-Access File Sequentially [TB 1: Ch. 14]
8. Standard Library Containers and Iterators: Introduction to Containers, Introduction to
Iterators, Introduction to Algorithms, Sequence Containers, Associative Containers,
Container Adapters, Class bitset. [TB 1: Ch. 15]
9. Exception Handling: Introduction, Rethrowing an Exception, Stack Unwinding, When to
Use Exception Handling, Constructors, Destructors and Exception Handling, Exceptions and
Inheritance, Processing new Failures, Class unique_ptr and Dynamic Memory Allocation,
Standard Library Exception Hierarchy. [TB 1: Ch. 17]

Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations
Course Assessment:
Sessional Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam
Reference Materials:

1. C++ How to Program, 10th Edition, Deitel & Deitel.


2. Object Oriented Programming in C++, 3rd Edition by Robert Lafore
3. Starting Out with C++ from Control Structures to Objects, 9th Edition, Tony Gaddis
4. Java: How to Program, 9th Edition by Paul Deitel
5. Beginning Java 2, 7th Edition by Ivor Horton
6. An Introduction to Object Oriented Programming with Java, 5th Edition by C. Thomas
Wu

You might also like