0% found this document useful (0 votes)
297 views4 pages

CMP-142 OOP Course Outline

This course outline summarizes an Object Oriented Programming course. The course is 3 credit hours and meets for 2 lectures per week. It introduces students to object oriented concepts like encapsulation, abstraction, inheritance, and polymorphism. The course syllabus covers topics such as classes, constructors, destructors, operator overloading, inheritance, and polymorphism. Evaluation includes sessionals, a midterm exam, and a final exam.

Uploaded by

Noor Muhammad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
297 views4 pages

CMP-142 OOP Course Outline

This course outline summarizes an Object Oriented Programming course. The course is 3 credit hours and meets for 2 lectures per week. It introduces students to object oriented concepts like encapsulation, abstraction, inheritance, and polymorphism. The course syllabus covers topics such as classes, constructors, destructors, operator overloading, inheritance, and polymorphism. Evaluation includes sessionals, a midterm exam, and a final exam.

Uploaded by

Noor Muhammad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Course Outline

Course Title Object Oriented Programming

Course Code CMP-142

Course Webpage -
Course Email [email protected]

Instructor Muhammad Nadeem

Teacher Assistant(s) TBA


(T.A)

Credit Hours 3
Theory/week:
Weight 3 Cr. hrs.
Lectures: 2
Duration: 1.5 hrs.

Prerequisite Course CMP-140 Programming Fundamentals


CMP-141 Programming Fundamentals Laboratory

Prerequisite o Strong understanding of how to attack a bigger task by dividing it into


Skill/Knowledge/Un smaller tasks.
derstanding o Student should know the concept of passing/returning objects (struct)
to/from functions by knowing the pitfalls that come across while doing
that.
o Understanding the real spirit/cause of data driven programming.
o Good concepts of Type Casting.
o Student should be familiar with debugging process.

Follow Up CMP-210 Data Structures and Algorithms


CMP-211 Data Structures and Algorithms Laboratory

Program Name BS Computer Science

Aims and Objectives o To equip the learner with the philosophy and necessary skills to
formulate solutions of real world problems using object oriented
paradigm.
o Justify the philosophy of object-oriented design and the concepts of
encapsulation, abstraction, inheritance, and polymorphism.
o Strong concepts of object manipulation and dynamic memory allocation
within classes

Syllabus Topics: Object Oriented Concepts, Terminology and Features,


Class/ADT/UDT, Data Abstraction and Encapsulation, Special Methods,
Constructor and Destructor; Modifier const; Array and Pointer of ADT,
Composition; this Pointer, friend Function and Class, Modifier static,
Operator Overloading, Class Templates, Inheritance, its types, and related
Terminology, Overriding: static & dynamic/Polymorphism; Stream I/O, File
Processing; Exception Handling

Text Book(s) A. H. M. Deitel “C++ How to Program”, 5th Ed., Prentice Hall, 2005. ISBN
0-13-185757-6
B. Schaum Programming With C++
C. Lafore - Object-Oriented Programming in C++ (4th Edition).pdf

Reference Material R1. Handouts.


R2. Victor Shtern, “Core C++ A Software Engineering Approach”, 1st Ed.,
Prentice Hall PTR, 2000. ISBN: 0-13-085729-7,
R3. Stephen Parata, “C++ Primer Plus”, 5th Ed., Sams Publishing, 2005.
ISBN 0-672-32697-3
R4. Bjarne Stroustrup, “The C++ Programming Language”, 3rd Ed., Addison
Wesley, 1997. ISBN 0201889544
R5. D.S. Malik, “C++ Programming –Program Design Including Data
Structures”, 5th Ed., 2011 Course Technology, Cengage Learning. ISBN
0-538-79813-0

Assessment Criteria Sessional ………………… 25% Mid ……… 35% Final ……… 40%
Quizzes 8-10
Written Exam Written Exam
Assignments …………………35 …………………40
15-17

25 35 40
Total
100

Lecture Breakdown

Week Lecture Topic Source

1 1 Course Introduction R1: Reading Material


Overview of Structured Programming: Focus (Pointer,
Arrays, Dynamic Memory Allocation, Structures)

2 Overview of Structured Programming Continued R1-( Reading Material)

2 3 Intro to Object Oriented Concepts and Terminology: R2-(Ch-1 – Remedy-3)


Real world examples R2-(Ch-8)

4 Define a class A-(Ch-3 (3.1~3.6))


Access Specifiers: private and public only;
First Member function;
Data Abstraction through Encapsulation;
Setter/Mutator and Getter/Accessor methods;
How the function knows which object invoked him?
Answer will be given in lecture-6.

3 5 Revision of Function Overloading & Default A-(Ch-3 (3.7~3.11))


Arguments; A-(Chapter-9)
Two Special Method: Constructor & Destructor;
Constructor with No argument (Default Constructor);
Constructor with Default arguments; Constructor with
one argument (Type-cast Constructor)
Calling sequence of Constructor & Destructor for
multiple objects;
Why Destructors: Answer will be given in next lecture

6 Pointer as data member A-(Chapter-10.5, 10.6)


Importance of destructors
Pointer /Reference to objects,
Passing objects to functions by reference
Pointer this

4 7 Passing objects to functions by value, R1-Reading Material


Default Member-wise copy (Assignment & Initialization),
Problem of Member-wise copy & its solution: Copy
Constructor,
Calling sequence of Constructor & Destructor: when
objects are passed by value/reference

8 Preventing changes in data members from a A-(Chapter 10.2, 10.7)


method: const method;
Constant data members
Static functions
Static data members
constant and static objects
Calling sequence of Constructor & Destructor for
constant and static objects

5 9 Object as data member (Composition), Aggregation; A-(Chapter 10.3)


Cascading calls with and without this pointer. R2-(Chapter 12)
Nameless objects
Array of objects;

10 Operator Overloading; A-(Chapter 11.7)


Binary Operator receiving Instance of class as 1st
operand

6 11 Overloading Unary Operator: as member, as non- A-(Chapter 11.11)


member
Unusual Operators: ++, --,

12 [ ] (set & get, both versions), type-cast, A-(Chapter 11.8, 11.9)


Parentheses

7 13 Friend functions (efficient but shake the concept of A-(Chapter 10.4)


encapsulation);
Declaring a global function as friend of a class;
Declaring member function of a class as friend of
another class
Friend class (an easy but more un-secure way);

14 Operator NOT receiving Instance of class as 1st operand A-(Chapter 11.5)


Overloading Binary Operators (Stream
Insertion/Extraction) for I/O stream

8 15 Other unusual operators:, comma, arrow, new, delete, R1-Reading Material


delete[] etc.

16 Review of the course for Mid Term Exam

Mid Term Examination

9 17 In theory what is inheritance A-(Chapter 12.1~12.4)


is-A Relationship: Public Inheritance R2-(Chapter 14)
Protected data member
protected, private inheritance

18 Multilevel Inheritance: Direct and Indirect Base Class A-(Chapter 12.5, 12.6)
Calling of Constructor and Destructor for Derived Class Case Study-A
Objects;
Explicit call to the constructor of Base class from
Derived class;

10 19 Review of Simple Inheritance, Multi Level Inheritance, A-(Chapter 12)


Multiple Inheritance Case Study-B
A review of OO relationships terminologies:
Aggregation, composition, generalization (is-A),
knows-a.

20 Polymorphism: Overriding base-class members in A-(Chapter 13)


derived class; Virtual functions and Dynamic binding; R1-Reading Material
Concept of v-Pointer and v-Table Case Study-B

11 21 Pure virtual functions and abstract class; R1-Reading Material


Defining a pure virtual destructor

22 Detail discussion on v-table structure, virtual R1-Reading Material


constructor, object cloning

12 23 Some tricky things in pointer type casting and applying R1-Reading Material
them on different topics studied so far.

24 Diamond inheritance R1-Reading Material


Virtual inheritance

13 25 R1-Reading Material
C++ Streams, Members and Manipulators of Streams; A-(Chapter Chapter-15)
File Handling using Streams

26 Access Techniques: Sequential, Direct, and Random R1-Reading Material


Access Files; A-(Chapter Chapter-17)
Input/Output of Object from/to File (binary/ text
mode);

14 27 Function Template; A-(Chapter 14.2,14.3)


Overloading of Function Template;
Specialized of Template Function

28 Class Template; A-(Chapter 14.4, 14.5)


Specialized method of Template Class;
Complete Specialized Template Class

15 29 Friendship and Inheritance with Templates A-(Chapter 14.6, 14.7,


14.8)

30 What is Exception? Error vs. Exception; A-(Chapter 16)


Evolution of Exception Handling: exit, abort, assert,
new-keywords;
try, catch, throw

16 31 Unhandled Exception; A-(Chapter 16)


Propagation of Exception and its advantage

32 Overall Review of Course for Final Exam

Final Term Examination

You might also like