0% found this document useful (0 votes)
17 views5 pages

F24 - CSCP2023 - OOP - OBE - Theory (Outline)

The document outlines the course details for 'Object Oriented Programming' (CSCP2023) at the University of Central Punjab, including prerequisites, assessment methods, and course objectives. It emphasizes teaching object-oriented programming concepts using C++, focusing on topics such as classes, inheritance, and polymorphism. The course aims to equip students with both theoretical knowledge and practical skills to solve complex programming problems.

Uploaded by

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

F24 - CSCP2023 - OOP - OBE - Theory (Outline)

The document outlines the course details for 'Object Oriented Programming' (CSCP2023) at the University of Central Punjab, including prerequisites, assessment methods, and course objectives. It emphasizes teaching object-oriented programming concepts using C++, focusing on topics such as classes, inheritance, and polymorphism. The course aims to equip students with both theoretical knowledge and practical skills to solve complex programming problems.

Uploaded by

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

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

You might also like