OOP (CSC-102) Theory & Practical Course Outline Spring 2025 03Mar25
OOP (CSC-102) Theory & Practical Course Outline Spring 2025 03Mar25
Course Introduction:
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.
Reference Materials:
1. Start Learning OOP Using C++ by Rangisetti, A.K. , Apress, Berkeley, CA, 2024.
2. Object-Oriented Programming in C++, Robert Lafore; 4th Edition.
3. C++ How to Program, 10th Edition, Deitel & Deitel, 2016.
4. Starting Out with C++ from Control Structures through Objects, 9th Edition, Tony
Gaddis, 2017.
Course Objectives:
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.
Topics Covered in the Course, with Number of Lectures on Each Topic
(assume 16-week instruction Three hours per week and sixty minutes lectures)
Week # Topics
Revision of Structures:
Defining Structures
Declaring Structure Variables
Initializing and Accessing Members of Structures Using Nested Structures
Revision Functions:
Declaration, Calling and Definition of Functions
Week 1 Passing Arguments (constants & variables) to Functions
Returning Values from Functions
Passing Structure as Argument to Functions
Returning structure from functions
Passing Pointers as Arguments to Function
Assignment-1
Introduction to Object Oriented Design:
Object oriented design
History and advantages of object oriented design:
Week 2 Object Oriented Approach
Characteristics/Advantages of OOP Languages (Encapsulation,
Abstraction, Inheritance, Polymorphism).
Introduction to Object Oriented Programming Concepts:
Classes and Objects:
Objects and Classes.
Data Encapsulation:
Data encapsulation
Week 3 Data Members and Member Function
Access Modifiers:
Public and private Access
Functions defining outside the class
Inline functions VS macros
Function Templates:
Template functions
Week 12 Class Templates:
Template Classes
Multi Template Classes
Exception handling:
Exceptions syntax
Simple Exceptions
Multiple exceptions with Arguments.
Week 13 Standard template library:
Introduction to STL
Stack as an STL example
Assignment-4
Standard template library:
Vector, List and Deque
Iterator
Function Objects
Object Streams:
Week 14 Object Filing
Read, Write functions in object filing.
Update and delete operations in object filing
File pointers for read and write
Quiz-4
Introduction to Java:
Object and Classes in Java
How to compile and execute java programs
Week 15 Data and Object serialization using object streams:
File handling using Java
Update and delete in File using Java
Project Demos:
Week 16 GroupWise Project Demos and Presentations
Final Course Revision
Final Term Exam
Course Introduction:
Object-Oriented Programming (OOP) is a fundamental paradigm in software development that focuses
on organizing code using objects and classes. This lab course provides hands-on experience in applying
OOP principles such as encapsulation, inheritance, polymorphism, and abstraction. Students will work
with real-world programming problems, designing and implementing efficient, modular, and reusable
code. Through structured lab exercises, they will gain practical knowledge of object-oriented design
patterns and best practices. The course aims to enhance problem-solving skills and prepare students for
building scalable and maintainable software applications.
Reference Materials:
Start Learning OOP Using C++ by Rangisetti, A.K. , Apress, Berkeley, CA, 2024.
Object-Oriented Programming in C++, Robert Lafore; 4th Edition.
C++ How to Program, 10th Edition, Deitel & Deitel, 2016.
Starting Out with C++ from Control Structures through Objects, 9th Edition, Tony
Gaddis, 2017.
Course Objectives:
Understand OOP Concepts – Develop a strong understanding of fundamental OOP
principles, including encapsulation, inheritance, polymorphism, and abstraction.
Hands-on Programming Experience – Implement object-oriented concepts in programming
languages like C++ or Java through structured lab exercises.
Design Modular and Reusable Code – Learn to create efficient, maintainable, and scalable
software using modular design principles.
Apply Design Patterns – Gain exposure to common object-oriented design patterns and best
practices in software development.
Enhance Problem-Solving Skills – Solve real-world programming problems using OOP
techniques to improve logical thinking and coding efficiency.
Develop Software Projects – Work on mini-projects to apply theoretical concepts in
practical scenarios, reinforcing knowledge and skills.
Week # Topics
Week 1 Revision of Programming concepts
Week 2 Lab1 of Lab Manual
Week 3 Lab2 of Lab Manual
Week 4 Lab3 of Lab Manual
Week 5 Lab4 of Lab Manual
Teaching Methodology:
Demonstrations, Practical labs (Class Task+ Home Task), Semester Project,
Presentations
Lab Assessment:
Labs Evaluation/ Quizzes, Project, Presentations, Final Exam
Practical Marks=20 out of 80
Labs=04 Marks, Project=06 Marks, Final Exam=10 Marks
Rounding is applied individually on practical final marks e.g. 07.50=8 and 07.49=7