0% found this document useful (0 votes)
24 views8 pages

OOP - Course Outline Updated 06march22

This document outlines an Object Oriented Programming course taught in C++. It includes 1) the course details like credit hours, prerequisites, instructor information and learning outcomes, 2) the topics to be covered in lectures and practical sessions over 4 weeks including classes, objects, encapsulation, inheritance and polymorphism, and 3) the assessment criteria with theory and practical exam weights and passing requirements. The goal is for students to understand and apply OOP principles and design quality software using C++.
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)
24 views8 pages

OOP - Course Outline Updated 06march22

This document outlines an Object Oriented Programming course taught in C++. It includes 1) the course details like credit hours, prerequisites, instructor information and learning outcomes, 2) the topics to be covered in lectures and practical sessions over 4 weeks including classes, objects, encapsulation, inheritance and polymorphism, and 3) the assessment criteria with theory and practical exam weights and passing requirements. The goal is for students to understand and apply OOP principles and design quality software using C++.
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/ 8

PIR MEHR ALI SHAH ARID AGRICULTURE UNIVERSITY

University Institute of Information Technology

Object Oriented Programming (CS-423)


Credit Hours: 4(3-2) Prerequisites: Programming Fundamentals
(CS-323)
Teacher Name: Dr. Kashif Sattar Office: Room 104 Email: [email protected]
Course Learning Outcomes (CLOs)
At the end of course the students will be able to: Domain BT Level*
1. Understand principles of object oriented paradigm C 2
2. Identify the objects & their relationships to build Object C 3
Oriented solution
3. Model a solution for a given problem using Object C 3
Oriented principles
4. Examine an Object Oriented solution. C 4
*BT- Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A=Affective
domain

Course Contents:
Introduction to object oriented design, history and advantages of object oriented design,
introduction to object oriented programming concepts, classes, objects, data
encapsulation, constructors, destructors, access modifiers, const vs non-const
functions, static data members & functions, function overloading, operator overloading,
identification of classes and their relationships, composition, aggregation, inheritance,
multiple inheritance, polymorphism, abstract classes and interfaces, generic
programming concepts, function & class templates, standard template library, object
streams, data and object serialization using object streams, exception handling.

Course Objective:
This course covers the C++ language with a focus on its object-oriented features, and
how these can be implemented as part of program designs and implementation.
Student will also study and gain practical experience with the implementation issues
related to object-oriented techniques, be able to build good quality software using
object-oriented techniques and understand the role of patterns in object-oriented
design.
Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations
Courses Assessment:
Mid Exam, Home Assignments, Lab Assignments, Quizzes, Project, Presentations,
Final Exam
Theory Total Marks= 60 Grading Criteria:
Mid Exam Marks: 18 >=64 Grade A
QA (Including Labs): 12 >=52 Grade B
Final Exam Marks: 30 >=40 Grade C
Practical Total Marks= 20 >=32 Grade D
Project Marks: 06 <32 Grade F
Final Practical Marks: 14 Min. 24 marks required in theory and Min.
Total Course Marks: 80 08 marks required in practical to pass the
course.
Reference Materials:
1. Object-Oriented Programming in C++, Robert Lafore; 4th Edition.
2. Problem Solving and Programming Concepts, M Sprankle, 9 th Edition, Prentice Hall,
2012.
3. Programming and Problem Solving with C++, Nell Dale, Chip Weems,
Comprehensive Edition, 2016.
4. C++ How to Program, 10th Edition, Deitel & Deitel, 2016.
5. Starting Out with C++ from Control Structures through Objects, 9th Edition, Tony
Gaddis, 2017.

6. Java: How to Program, 11th Edition by Paul Deitel , 2017.


7. Beginning Java 2, 7th Edition by Ivor Horton
8. An Introduction to Object Oriented Programming with Java, 5th Edition by C. Thomas
Wu.

Week/Lecture # Theory Practical


Week Revision Structures:
1  Defining Structures
 Declaring Structure Variables
Lecture-I
 Initializing and Accessing
Members of Structures Using
Nested Structures
Revision Functions:
 Declaration, Calling and Definition
of Functions
Lecture-II
 Passing Arguments (constants &
variables) to Functions
 Returning Values from Functions
Revision Functions:
 Passing Structure as Argument to
Functions
Lecture-III
 Returning structure from functions
 Passing Pointers as Arguments to
Function
Practical-I  Writing programs that input
data into members of
structure and then print data
from the members of
structure.
 Writing programs that swap
two structure type variables,
Print the results before and
after swapping.

 Writing programs that find


out the maximum/minimum
value in an array through
Practical-II pointer notation
 Writing program to swap two
values by passing pointers to
function.
 Writing program to copy one
Practical-III string to another string using
pointers.
Introduction to Object Oriented
Lecture-I Design:
 Object oriented design
History and advantages of object
Lecture-II oriented design:
 Object Oriented Approach
 Characteristics/Advantages of
OOP Languages (Encapsulation,
Lecture-III
Abstraction, Inheritance,
Polymorphism).
Week  Practical exercise that how to
2 convert a structural program
Practical-I
into object oriented program
using C++
 Practical exercise that how to
convert a structural program
Practical-II
into object oriented program
using C++
 Practical exercise that how to
convert a structural program
Practical-III
into object oriented program
using C++
Week Introduction to Object Oriented
3 Programming Concepts:
Lecture-I
Classes and Objects:
 Objects and Classes.
Data Encapsulation:
 Data encapsulation
Lecture-II
 Data Members and Member
Function
Lecture-III Access Modifiers:
 Public and private Access
 Functions defining outside the
class
 Inline functions VS macros
 Programming Exercise for
Practical-I
Classes and Objects
 Practical exercise that how to
Practical-II access private and public
members of the class
 Practical exercise that how
Practical-III functions defined outside the
class
Classes and Objects:
 Array of Objects
Lecture-I  Passing/Returning objects
 Object as function argument
 Function returning objects
Constructors & Destructors:
Lecture-II  Constructors and destructors.
Week
 Default copy constructors
4
Lecture-III  Constructor Overloading
 Programming Exercise for
Practical-I
constructor
 Programming Exercise for
Practical-II
destructor
 Program for Constructor
Practical-III
overloading
Week Constant vs Non-Constant
5 functions:
Lecture-I  Constant and Classes
 Constant Member Function
 Constant Objects
Static data Members & functions:
Lecture-II  Static Class Data (variables and
functions)
Identification of classes and their
relationships:
Composition:
Lecture-III Aggregation:
 Association
 Inheritance
 Composition vs Inheritance
 Programming Exercise for
Practical-I constant variables and
function access.
 Programming Exercise for
Practical-II Static variables and function
access.
Practical-III  Programming Exercise for
concept of composition vs
inheritance.
Lecture-I  Friend Functions
Lecture-II  Friend classes
Inheritance:
 Derived and Base Classes.
Lecture-III  Derived Class Constructors
 Protected Specifier
Week
6  Programming Exercise for
Practical-I
friend functions.
 Programming Exercise for
Practical-II
friend classes.
 Programming Exercise for
inheritance, constructors call
Practical-III
sequence.

Inheritance:
 Function Overriding
Lecture-I
 Scope Resolution with overridden
function
Multi Inheritance:
Lecture-II  Single Inheritance
 Multilevel Inheritance
Week  Multiple Inheritance and
Lecture-III
7 Constructor calling
 Programming Exercise for
Practical-I
function overriding.
 Programming Exercise for
Practical-II
multilevel inheritance.
 Programming Exercise for
Practical-III multiple inheritance and
constructor calling.
String Classes:
Lecture-I  String class
 String class functions
String Classes:
Lecture-II  String class
 String class functions
Week Mid Course Revision:
Lecture-III
8
 Programming Exercise for
Practical-I
string class built-in functions.
 Programming Exercise for
Practical-II
defining own String class.
 Revision of upto mid
Practical-III
practical’s.
Midterm Exam
Function Overloading:
Operator Overloading:
Lecture-I  Operators which cannot be
overloaded
 Unary operator overloading
Operator Overloading:
Lecture-II  Binary operators overloading
 Multiple Overloading
Operator Overloading:
 Subscript operator overloading
Week  Function call operator overloading
Lecture-III
9  Assignment Operator overloading
 Stream insertion and extraction
operators overloading
 Group formation and
Practical-I
Course Project Allocation
 Programming Exercises for
Practical-II unary, binary and multiple
operator overloading.
 Programming Exercises for
Practical-III (), [] and = operator
overloading.
Data Conversion:
 Conversion between basic types
 Conversion between user-defined
Lecture-I
and basic types
 Conversion between objects of
different classes
Polymorphism:
 Virtual functions
Lecture-II  Base class pointer
 Inline Function
Week
 Late and Early binding
10
Abstract Classes and Interfaces:
Lecture-III  Abstract Classes
 Pure virtual functions
 Programming Exercise for
Practical-I conversion between objects
of different classes.
 Programming Exercise for
Practical-II
virtual functions.
 Programming Exercise for
Practical-III
abstract class.
Week Lecture-I Memory Management:
11  Pointer arithmetic
 Pointer vs. array
 Use of New and Delete Keyword.
 Stack vs. heap
Memory Management:
Lecture-II  Pointer to Object
 Pointer to pointer
Memory Management:
Lecture-III
 Array of Pointer to string
 Programming Exercise for
Practical-I
dynamic memory creation.
 Programming Exercise for
Practical-II
dynamic memory deletion.
 Programming Exercise for
Practical-III
dynamic memory.
Function Templates:
Lecture-I
 Template functions
Class Templates:
Lecture-II
 Template Classes
Class Templates:
Lecture-III
 Multi Template Classes
Week
12  Programming Exercise for
Practical-I
template functions.
 Programming Exercise for
Practical-II
template classes.
 Programming Exercise for
Practical-III template classes with multi
template variables.
Exception handling:
Lecture-I  Exceptions syntax
 Simple Exceptions
Exception handling:
Lecture-II  Multiple exceptions with
Arguments.
Standard template library:
Week Lecture-III  Introduction to STL
13  Stack as an STL example
 Programming Exercise for
Practical-I
concept of exception
 Programming Exercise for
Practical-II exception with multiple error
classes with arguments.
 Programming Exercise for
Practical-III
STL (Stack library)
Week Standard template library:
14  Vector, List and Deque
Lecture-I
 Iterator
 Function Objects
Lecture-II Object Streams:
 Object Filing
 Read, Write functions in object
filing.
Object Streams:
 Update and delete operations in
Lecture-III
object filing
 File pointers for read and write
 Programming Exercise for
Practical-I
Vector and List.
 Programming Exercise to
Practical-II read and write data using
object filing in C++.
 Programming Exercise to
Practical-III update and delete data using
object filing in C++.
Introduction to Java:
 Object and Classes in Java
Lecture-I
 How to compile and execute java
programs
Data and Object serialization
Lecture-II using object streams:
 File handling using Java
 Update and delete in File using
Lecture-III
Java
Week
15  Practical exercise that how to
convert a structural program
Practical-I
into object-oriented program
using Java
 Programming Exercise to
Practical-II read and write data using
object streams in Java.
 Programming Exercise to
Practical-III update and delete data using
object streams in Java.
Project Demos:
Lecture-I GroupWise Project Demos and
Presentations
Project Demos:
Lecture-II GroupWise Project Demos and
Presentations
Week Final Course Revision:
Lecture-III
16
 Revision of programming
Practical-I
exercises
 Revision of programming
Practical-II
exercises
 Revision of programming
Practical-III
exercises
Final term Exam

You might also like