University of Central Punjab
Faculty of Information Technology
PROGRAM (S) TO BE
BSCS
EVALUATED
A. Course Description
1 NCEAC.FORM.001.C
Course Code CSCP2023
Course Title Object Oriented Programming
Credit Hours 4(3-1)
Prerequisites by Course(s) and Programming Fundamentals
Topics
Assessment Instruments with Quiz (4-6) 15%
Weights (homework, quizzes, Assignments (4) 10%
midterms, final, programming Class Activity (2-4) 10%
assignments, lab work, etc.)
Midterm 25%
Final Term 40%
Semester 3
Course Instructor (s)
Course Instructor Email
Course Coordinator Dr. Nabeel Sabir Khan, Dr. Abbas Khalid
Course Coordinator Email [email protected], [email protected]
Office Hours
Office Location
Plagiarism Policy All the parties involved will be awarded Zero in the first instance. Repeat of the
same offense will result in an (F) grade.
Tools Used in the Course Visual Studio 2013, 2019
Course Description This course teaches object-oriented programming to those who have
learnt basic programming concepts and are ready to learn in-depth
programming. It focuses on object-oriented programming using C++.
The main concepts discussed are: Objects, Data Abstraction, Data
Encapsulation, Polymorphism, and Inheritance. We teach the C++
language constructs that are used to implement these concepts. For
example, Classes, Overloaded Operators, Overridden Methods, Virtual
Functions, Templates and Standard Template Libraries.
Course Objectives This module will provide the students with a solid theoretical
understanding of, as well as practical skills in, object-oriented
programming. Practical skills will be learnt using the C++ programming
language. The primary aim of the module is to enable the students to
tackle complex programming problems, making good use of the object-
oriented programming paradigm to simplify the design and
implementation process. Laboratory sessions and tutorials will be
provided to encourage acquisition of practical problem-solving skills.
Textbook (or Laboratory Manual Textbook:
for Laboratory Courses) C++ How to Program by Deitel and Deitel, 8th Edition.
References:
C++ Programming Language, 4th Edition by Bjarne Stroustrup.
Effective C++: 55 Specific Ways to Improve Your Programs and
Designs by Scott Mayers, 3rd Edition
Object-Oriented Programming in C++ by Robert Lafore, 4th Edition,
Sams Publisher, 2001
Reference Material Odoo course material
Programming Assignments Done Yes (C++ Programs)
in the Course
2 NCEAC.FORM.001.C
Class Time Spent on Theory Problem Solution Social and Ethical Issues
(in credit hours) Analysis Design
1.25 1.25 1.25 0.25
Oral and Written Yes
Communications
CLO CLO STATEMENT Bloom’s Taxonomy PLO
Level
1 Describe key concepts of object-oriented paradigm C2 (Understand) 2
2 Interpret real world problems in terms of object-oriented design C3 (Apply) 3
3 Apply object-oriented programming principles to implement small and C3 (Apply) 2,3
medium problems
Book / Slides Evaluation Relation
Week Topics
Reference Used to CLO
Revision of previous concepts
Functions, Pass-by-Value, Pass-by-Reference
Function Overloading
1st Default Arguments CLO_1
Dynamic Memory Allocation, Dangling Pointers,
and Memory Leakage
Introduction to Object-Oriented Programming
Overview of OOP concepts.
Introduction to classes and objects.
Basic syntax and structure of a C++ class.
Access specifiers: public, private. CLO_ 1
2nd Ch#9
Member functions and data members.
Writing a simple class definition.
Setters and Getters.
Constructors & Destructors, Understanding Class
Interface and Implementation
Introduction to constructors and destructors.
Default constructor, parameterized constructor.
Constructor overloading and default arguments.
Role of destructors in deleting the dynamically CLO _1
3rd allocated memory. Ch#9
CLO _2
Separating interface and implementation: Defining
member functions outside the class definition,
Working with multiple files.
Introduction to class diagram for Single Class
(UML diagram)
More Object Handling Techniques
Passing objects as arguments
Returning Objects Assignment
CLO_ 2
4th Copy Constructor vs Member-wise Copy Ch#10 1
CLO_3
Deep copy vs Shallow Copy Quiz 1
The this Pointer
3 NCEAC.FORM.001.C
Constant and Static Members
Constructor Initializer List.
Constant members: const variables, const functions.
Ch#10 CLO_ 1
5th Static members: static variables, static functions. CLO_2
Constant Objects.
Static Objects.
Arrays of Objects and Pointer to Objects
Arrays of Objects.
Pointers to Objects. Quiz 2 CLO_1
6th Array of Pointers to Objects. Ch#10
CLO_ 2
Friend functions and friend classes
Operator Overloading
Need of Operator Overloading. Implicitly
overloaded operators
Binary Arithmetic Operators (+, -, *, --, %)
Relational Operators (==, >=, <=, ==)
Ch#11 Assignment CLO_ 2
7th Unary Operators (+, -, ++, --)
2 CLO_3
Stream Insertion <<, and Stream Extraction >>
operators
Potential issues faced while overloading an
assignment operator
8th Revision
CLO_1,
MID Term
CLO_2,
MID Term Review
CLO_3
Relationships among Classes
Association, Types of Associations (one-to-one,
one-to-many, many-to-many), UML representation,
Example scenarios, Implementation. CLO_2
9th Ch#10
Aggregation, UML representation, Example CLO_3
scenarios, Implementation.
Composition, UML representation, Example
scenarios, Implementation.
Inheritance
Overview of inheritance, Access control, The
protected access specifier, public, private, and
protected inheritance. Types of Inheritance (single,
CLO_2
10th multiple, multi-level), UML representations. Ch#12
CLO_3
The ‘is a’ and ‘has a’ relationships.
Implementation of Single Inheritance. Order of
constructor and destructor invocation.
More on Inheritance
Implementation of Multi-level Inheritance, Order of
constructor and destructor invocation. Assignment CLO_1
11th Implementation Multiple Inheritance, The ‘diamond Ch#12 3 CLO_2
Problem’ and its possible solutions, Virtual base CLO_3
classes, Order of constructor and destructor
invocation.
4 NCEAC.FORM.001.C
Polymorphism
Static vs Dynamic Binding.
Polymorphism, Static and Dynamic Polymorphism.
Function Overriding, Rules for Function CLO_2
12th Ch#13 Quiz 3
Overriding, Virtual Functions. CLO_3
Concept of Virtual Table (VTABLE).
Pure Virtual Functions, Abstract and Concrete
classes. Virtual Destructors.
Generic Programming
Function Templates, Overloading Function
Templates. CLO_1
Class Templates, UML representation. Assignment
CLO_2
13th Use of Default Arguments in Function and Class Ch#14 4
CLO_3
Templates.
Implementation of a List using Function and Class
Templates.
Standard Template Library
STL Components: Containers and Iterators.
CLO_1
14th Using list. Ch#22 Quiz 4
CLO_2
Using vector.
Exception Handling
Understanding Exceptions, Throwing Exceptions, CLO_1
15th Catching Exceptions. Ch#16
CLO_2
Constructors, Destructors and Exception Handling.
Revision
16th
Final Examination CLO_1
CLO_2
CLO_3
5 NCEAC.FORM.001.C