OOP - Course Outline Updated 06march22
OOP - Course Outline Updated 06march22
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.
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