OOP 16 Week Plan

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 7

University of Gujrat

Faculty of CS & IT
Title Object Oriented Programming
Code CS – 106, SE- 106, IT-106
Credit hours 4
Prerequisite Programming Fundamentals
Instructor: Zafar Mahmood Khattak
Course This course provides in-depth coverage of object-oriented programming
Description principles and techniques using C++. Topics include classes, overloading,
data abstraction, information hiding, encapsulation, inheritance,
polymorphism, file processing, templates, exceptions, container classes. The
course briefly covers the mapping of UML design to C++ implementation and
object-oriented considerations for software design and reuse.
The course has a strong practical emphasis, and students will be required to
implement OO concepts in C++ during supervised laboratory sessions and in
unsupervised assignment work. In general, each class will consist of a one
and a half hour lecture, and a one and a half hour laboratory session, which
will be held weekly.
This course provides in-depth coverage of OOP using the C++ programming
Course goal: language. At the completion of this course the student should be comfortable
coding a program using C++. He or she will know the strengths and
weaknesses of the language.
Students will then be exposed to OO analysis and design. C++ syntax and its
idioms will be covered, with particular emphasis on how to program in C++
with an OO mindset.
Course objective  By the end of the course, students should be able to:

1. create class hierarchies using OOP design


2. understand and apply inheritance techniques to their programs
3. overload and override methods and understand the difference
4. create modular programs using accepted structured
programming
 Create and use UML diagrams
 Understand the strengths and weaknesses of OOP programming.
 Use files, both binary and text.

a) The teacher is responsible for the evaluation of work of the


students of his/her class and for the grades on the basis of such
evaluation.
b) The number and nature of tests and assignments depends on
Evaluation the nature of the course. However, there will be at least two
System tests, mid semester and final examination in addition to class
work.
c) Each course will follow the weight age as under:
Mid term 25%
Sessional work 25%
Final term 50%
d) To pass a course, student must obtain ‘D’ grade (50% marks)
with at least 20% marks separately in (i) mid term + sessional
work and (ii) final term.
e) The final term examination will cover the entire course.
Marks in Letter Grade Numeric Value of Description
Percentage Grade
85 and above A+ 4.00 Exceptional
80-84 A 3.70 Outstanding
Grading System 75-79 B+ 3.40 Excellent
70-74 B 3.00 Very Good
65-69 B- 2.50 Good
60-64 C+ 2.00 Average
55-59 C 1.50 Satisfactory
50-54 D 1.00 Pass
49 and below F 0.0 Fail
W Withdrawal
I Incomplete

a) A minimum of 39 contact hour (70 %) are required by the


Class Attendance students to be eligible to sit in the final examination.
b) A candidate with less than 70% of the attendance shall be
dropped from the course.
Recommended 1. Object Oriented Programming in C++, Latest Edition By Rober Lafore.
2. C++ How to Program by Deitel & Deitel,
Books 3. Let us C++ by Yashavant Kanetkar, 8th Edition

Reference Books
& Materials:

COURSE OUTLINE

Lecture Topic Chp No. RL


Week
1 The Big Picture Chp 1

 Beginning of programming
 Structured programming
 Why Do We Need Object-Oriented Programming?

 Object oriented programming


 Characteristics of Object-Oriented Languages
o Objects
o Classes
1 o Inheritance
o Reusability
o Data Abstraction
2
o Data Encapsulation
o Creating new data types
o Polymorphism and overloading

 Software Engineering Case Study: introduction to


Object Technology and the UML
Structure Chp 4
 Sturcutre basics
 Sturucture within structure
3  Structures and classes
 Enumerations,
 Software Engineering Case Study: examining the ATM
2 Requirements Document
Objects and classes Chp 6
o Basics of class and objects with real world
example
4 o Basics of class and objects with
programming example
o Data member and member function
o Access specifier
 C++ objects as data types
 Constructors
 Destructors
5
3

6  Object as function argument Quiz 1


o Overloaded constructor
o Member functions defined outside the class Assignment
o Objects as arguments No 1
7  The default copy constructor
 Returning objects from function
 Class, object and memory
4  Static class data
 Const and classes
o Const member functions
o Const objects
8  Software Engineering Case Study: identifying the
classes in the ATM Requirements Document,
 Identifying the class Attributes
 Objects states and activates
Functions and functions overloading Chp 5
 Functions
 Functions Basics
9
 Overloaded functions
o Different numbers of arguments
o Different kinds of arguments
5  Inline functions
 Default arguments
 Variables and storage classes
o Automatic variable
o External variables
10 o Static variables
o Storage
 Const function arguments

 Software Engineering Case Study: class operation in


the ATM system.
Operator overloading Chp 8
 Overloading unary operator
 Overloading binary operator
 Data conversion Quiz No 2
11 o Conversion between basic types
o Conversion between objects and basic types Assignment
6 o Conversion between objects of different No 2.
classes
o Conversion: when to use what.
 pitfall of operator overloading and conversion
o use similar meanings
o use similar syntax
12
o show restraint
o avoid ambiguity
o not all operator can be overloaded

Implementation of the case study.


13

7 14 Inheritance: Chp 9
 Inheritance basics in real world and programming
 Derived class and base class
o public, private & protected, Abstract Classes
o Specifying the derived class
o Accessing base class members
o The protected access specifier

 Derived class constructors


 Overriding member functions
 Class hierarchies
15 o Abstract base class
8 o Constructor and member functions
 Scope resolution with overridden functions
 Public and private inheritance
16 o Access combinations
o Access specifiers: when to use what
 Level of inheritance
 Multiple inheritance
 Ambiguity in multiple inheritance
 Containership: classes within class
17
9 o Composition and aggregation
 Inheritance and program development

Mid term
Pointers Chp 10
 Pointer basics concepts
 Addresses and pointers
 The address of operator Quiz No 3
 Pointer and arrays
18  Pointers and functions Assignment
10  Pointers and ctype string No 3.
 Memory management: new and delete
o The new opearaotr
o The delete operator
o A string class using new
 Pointer to objects
19
 Pointers to pointers
Virtual functions Chp 11
 Virtual functions
o Normal member function accessed with
pointer
o Normal member function accessed without
11 20
pointer
o virtual member function accessed with
pointer
o Virtual member functions accesses without
pointer
o Late binding
o Abstract classes and pure virtual functions
21 o Virtual destructors
o Virtual base classes
 Friend functions
 Friend classes
22
 Static functions
 The this pointer
12 Polymorphism,
 Type of Polymorphism –
o Compile time and runtime,
23
o Function Overloading,
o Operator Overloading (Unary and Binary)
Polymorphism by parameter,
o Pointer to objects, Revision of
o this pointer, previous
topics with
24 o Virtual Functions,
respect to
o Pure virtual functions.
polymorphis
13 m
Streams and files Chp 12
 Stream classes
o Advantages of streams Quiz 4
25 o The stream class hierarchy Assignment
o The ios class No 4
o The isteam class
o The ostram class
14  Disk file I/O with streams
26
 File pointers
 Error handling in file I/O
27
 File I/O with member functions
Chp 13

Multifile Programs
28  Reason for multifile program
 Creating a multifile program
15 o Header file
o Directory
29
o Projects
 Case study
Templates and exceptions Chp 14
 Functions templates
30 o A simple functions template
o Functions templates with multiple arguments
16  Class templates
 Exception
o Why do we need exception
31 o Exception syntax
o A simple exception example
o Multiple exceptions with arguments
32 Revision

You might also like