Oops Cho
Oops Cho
Understand C++ language features, basics of problem solving aspects for logic building by
CLO01 using data types, variables, operators and expressions.
CLO02 Choose the appropriate object oriented programming constructs to solve the problems
using classes, objects, recursion and constructors.
CLO03 Apply inheritance, early binding and late binding in C++ to formulate new solutions for
programming problems.
CLO04 Determine the bugs in a program using exceptional handling and recognize basic need of
templates.
CLO05 Design and develop reusable and modular code for collaborative team based software
development.
The course provides a wide scope of learning & understanding of the subject. The main objectives of the course
are :
● To formulate proficient solutions of programming problems using object oriented constructs.
● To demonstrate the importance of major features of object oriented programming such as
encapsulation, inheritance, code extensibility, reusability, and polymorphism.
● To customize their own templates and implement the generic programming.
● To evaluate and improve the existing programs using Standard Template Library.
CLO-PO mapping grid |Program outcomes (POs) are available as a part of Academic Program Guide (APG)
Course PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
Learning
Outcome
s
CLO01 H L M H M M
CLO02 M L M M M M
CLO03 L M M L M
CLO04 M H H L
CLO05 M H H M M
H=High, M=Medium, L=Low
Entrepreneurship 2
Research 1
Innovation 3
Skills 5
Employability 4
4. Recommended Books:
Text Books:
B01: ‘Object Oriented Programming with C++’ by E Balagurusamy, 6th Edition, Tata McGraw Hill.
B02: Object Oriented Programming in C++’ by Robert Lafore, 4th Edition, Galgotia.
B03: The Complete Reference C++’ by Herbert Schildt , 4th Edition ,Tata McGraw Hill.
B04: Stroustrup, Bjarne, The C++ Programming Language, Pearson Education .
B05: Lippman, S.B. and Lajoie, J., C++Primer, Pearson Education .
B06: C-The Complete Reference, Herbert Schildt,4th edition, McGraw Hill Education, 2017
B07: The C Programming Language, Brian W. Kernighan, and Dennis M. Ritchie, 2nd Edition, Pearson, 2015
E-Resourses:
● https://library.chitkara.edu.in/subscribed-books.php
● https://www.sciencedirect.com/science/article/pii/B9780123507723500069?via%3Dihub
GCC Compiler
7. Course Plan:
3-4 Comparison between procedural programming paradigm and object-oriented B06, B07
programming paradigm , Problem solving strategies- Top Down, Bottom up,
Problems on array
11-12 Accessing class members, Access specifiers – public, private, and protected (Explain B01
with inheritance), Objects and memory
13-14 Static members, Static objects, constant member function, constant objects B01
15-16 Friend functions, friend class, Passing Object as an argument (by value, by reference, B01,B02
by address), Returning object from a function.
17-18 Need for constructors and destructors, Copy constructor and Deep Copy, Dynamic B01,B02
constructors
19-20 Destructors, Constructors and destructors with static members B01
21-22 Defining operator overloading, Rules for overloading operators, Overloading of unary B01,B02
operators
23-24 Binary operators (+, -, /, *), binary operators using friend functions, manipulation of B01,B02
strings using operators Overloading (>, <, = =)
25-26 Type conversion: Basic type to class type, Class type to basic type, Class to class type. B01
27-28 Understanding pointers, Accessing address of a variable, Declaring & initializing B01,B02
pointers, Accessing a variable through its pointer
31-32 Dynamic memory management - new and delete Operators, Pointers and classes, B01,B02
Pointer to an object, Pointer to a member
33-34 this Pointer, Possible problems with the use of pointers - Dangling/wild pointers, Null B01,B02
pointer assignment, Memory leak and allocation failures
37-38 Forms of inheritance (single, multilevel, multiple, hybrid & hierarchical) B01,B02
39-40 Ambiguity in multiple and multipath inheritance (Diamond Problem) B01,B02
49-50 Abstract classes, Virtual destructors & polymorphism, Order of execution of Virtual B01,B02
functions
51-52 Overriding member functions, Accessing base class functions B01,B02
61-62 Concept of streams, Input/ Output using Overloaded operators >> and << and B01
Member functions of I/O stream classes.
63-64 File streams, Hierarchy of file stream classes B01
8. Delivery/Instructional Resources
Lecture Topics Web References Audio-Video
Number
1-2 History of programming language- https://www.geeksforgeeks. https://onlinecourse
complexity and security, Introduction to org/the-evolution-of- s.nptel.ac.in/noc24_
basic concepts of object-oriented programming-languages/ cs125/preview
programming- concept of data hiding,
abstraction, encapsulation, inheritance
and polymorphism
https://courses.cs.washingt
on.edu/courses/cse333/18s
u/lectures/14-c++-STL.pdf
63-64 File streams, Hierarchy of file stream https://www.w3schools.co https://www.youtub
classes m/cpp/cpp_files.asp e.com/watch?v=I0jb
nrJM5zY&list=PLiekD
ZFMHZAxPhb6UYI3N
1IrQzpsMRh6Y
65-66 Error handling during file operations https://www.w3schools.co https://www.youtub
m/cpp/cpp_files.asp e.com/watch?v=I0jb
nrJM5zY&list=PLiekD
ZFMHZAxPhb6UYI3N
1IrQzpsMRh6Y
67-68 Reading/Writing of files accessing records https://www.w3schools.co https://www.youtub
randomly m/cpp/cpp_files.asp e.com/watch?v=I0jb
nrJM5zY&list=PLiekD
ZFMHZAxPhb6UYI3N
1IrQzpsMRh6Y
69-72 Standard Template Library: Containers https://www.geeksforgeeks. https://www.youtub
org/cpp-stl-tutorial/ e.com/watch?v=W7
uB9-TKfTg
73-76 Standard Template Library: Iterators and https://www.geeksforgeeks. https://www.youtub
Algorithms. org/cpp-stl-tutorial/ e.com/watch?v=W7
uB9-TKfTg
9. Lab Plan
Sr. Lab
Experiments Learning Resource
No. Number
https://www.geeksforgeeks.org/program-for-
factorial-of-a-number/
P1 Factorial of a number
P2 Swap two numbers without using https://www.geeksforgeeks.org/swap-two-numbers-
1 1-2
third one without-third-variable-in-cpp/
P3 Sum of a set of numbers
https://www.geeksforgeeks.org/cpp-program-to-
find-sum-of-first-n-natural-numbers/
https://www.programiz.com/cpp-
programming/strings
P1 Functions to Display String
2 3-4
P2 Print Kth largest number https://www.geeksforgeeks.org/k-largestor-
smallest-elements-in-an-array/
https://www.tutorialspoint.com/cplusplus-program-
P1 Create Class - Rectangle
to-create-one-rectangle-class-and-calculate-its-area
3 5-8 P2 Find occurrences of palindrome
https://www.geeksforgeeks.org/java-program-
words in a string
count-number-palindrome-words-sentence/
https://www.tutorialspoint.com/cplusplus/cpp_date
P1 Create Class - Date
_time.htm
4 9-10 P2 Capitalize the first letter of each
https://www.w3resource.com/cpp-
word
exercises/string/cpp-string-exercise-3.php
https://www.tutorialspoint.com/cplusplus/cpp_class
es_objects.htm#:~:text=C%2B%2B%20Class%20Defin
itions&text=class%20Box%20%7B%20public%3A%20
P1 Create class - Box double%20length,the%20class%20that%20follows%
5 11-12
P2 Create Class - TimeSpan 20it
https://reference.aspose.com/slides/cpp/system/ti
mespan/
https://www.geeksforgeeks.org/cpp-program-to-
P1 Class - ComplexNumber add-two-complex-numbers/
6 13-16
P2 Create Class - ArrayClass
https://www.geeksforgeeks.org/array-class-c/
https://www.programiz.com/cpp-
programming/examples/inch-feet-structure
P1 Create Class – Distance Calculator
7 17-18
https://www.programiz.com/cpp-
programming/string-class
https://www.geeksforgeeks.org/minimize-number-
P1 Cut the sticks of-cuts-required-to-break-n-length-stick-into-n-unit-
8 19-22
P2 Class - IntValue length-sticks/
P1 Inheritance : Actors
https://www.tutorialride.com/cpp-inheritance-
9 23-24 P2 Inheritance : CalculateBill
programs/create-item-wise-bill-c-program.htm
P3 Inheritance : BookCD
Total 100%
*Students will have to appear in all Sessional Tests.
Makeup Examination will compensate for either ST1 or ST2 (Only for genuine cases, based on the Dean’s approval).
**As per Academic Guidelines, a minimum of 75% attendance is required to become eligible for appearing in the End Semester Examination.
No. of
S. No. Topic (s) Weightage %
Sessions
1 History of programming language- complexity and security, 24 30%
Introduction to basic concepts of object-oriented programming-
concept of data hiding, abstraction, encapsulation, inheritance and
polymorphism
Comparison between procedural programming paradigm and object-
oriented programming paradigm , Problem solving strategies- Top
Down, Bottom up, Problems on array
Inline functions, default arguments, function prototyping
Function overloading, call by reference, call by value , call by pointer,
return by reference, Introduction to Name Space, Specifying a class,
Creating class objects, Accessing class members, Access specifiers –
public, private, and protected (Explain with inheritance), Objects and
memory
Static members, Static objects, constant member function, constant
objects, Friend functions, friend class, Passing Object as an argument
(by value, by reference, by address), Returning object from a function.
Need for constructors and destructors, Copy constructor and Deep
Copy, Dynamic constructors
Destructors, Constructors and destructors with static members,
Defining operator overloading, Rules for overloading operators,
Overloading of unary operators
Binary operators (+, -, /, *), binary operators using friend functions,
manipulation of strings using operators Overloading, (>, <, = =)
Sessional Test -1
2 Type conversion: Basic type to class type, Class type to basic type, Class 48 60%
to class type. Understanding pointers, Accessing address of a variable,
Declaring & initializing pointers, Accessing a variable through its
pointer, Pointer arithmetic, Pointer to a pointer, Pointer to a function,
Dynamic memory management - new and delete Operators, Pointers
and classes, Pointer to an object, Pointer to a member
this Pointer, Possible problems with the use of pointers - Dangling/wild
pointers, Null pointer assignment, Memory leak and allocation failures,
Introduction- concept of reuse, Defining derived classes, Forms of
inheritance (single, multilevel, multiple, hybrid & hierarchical)
Ambiguity in multiple and multipath inheritance (Diamond Problem)
Inheritance with constructor, Function Overriding Vs Function
Overloading ,Concept of Binding, Early binding and late binding, Virtual
functions, Pure virtual functions.
Sessional Test -2
3 Abstract classes, Virtual destructors & polymorphism, Order of 64 80%
execution of Virtual functions. Overriding member functions,
Accessing base class functions, Order of execution of constructors and
destructors, Problems on strings, Review of traditional error handling,
Basics of exception handling
Exception handling mechanism, Throwing mechanism, Catching
mechanism, Re-throwing an exception, Specifying exceptions,
Sessional Test -3
4 Error handling during file operations. 80 100%
Reading/Writing of files accessing records randomly
Standard Template Library: Containers Standard Template Library:
Iterators and Algorithms. Standard Template Library: Vectors,
Standard Template Library: list and map