Meenakshi Sundararajan Engineering College
(An Autonomous Institution, Affiliated to Anna University, Chennai)
Department: Artificial Intelligence and Data Science, R2024, CBCS
L T P C
U24AD302 OOPS AND DATA STRUCTURES DESIGN
3 0 2 4
Course Objectives: To apply data structures and OOP principles to solve real-world problems
in AI and Data Science contexts.
1 To learn the fundamental concepts of Object-Oriented Programming (OOP) paradigms.
2 To familiarize oneself with the concept of Polymorphism and Inheritance.
3 To design and implement linear data structures.
4 To design and implement various tree structures.
5 Comprehend various graph representations and construct solutions for problems.
UNIT 1 INTRODUCTION TO OOP 9+6
Procedural vs. Object-Oriented Programming, Core OOP Concepts, Overview of C++, data types,
operators, Objects and Classes: Definition, creating objects, instance variables, methods.
Constructors and Destructors: Default, parameterized, copy constructors; destructor concepts. Static
Members: Static variables and methods. this or self-Keyword, control flow statements (if-else, loops),
Functions.
Practical:
1. Implementation of Constructors & Destructors, Copy Constructor
2. Implementation of Friend Function & Friend Class.
Experiential Learning: Refactor a small existing procedural C program (e.g., a simple student
record system) into an object-oriented design.
Content Beyond Syllabus: functional programming concepts (immutability, pure functions)
Industrial Application: AI/ML Frameworks (Core Development): The underlying C++ code of
libraries like TensorFlow, PyTorch, and OpenCV uses these concepts extensively for efficient
memory management of large tensors, neural network layers
UNIT 2 POLYMORPHISM AND INHERITANCE 9+6
Overloading: Function overloading and Operator Overloading, Types of Inheritance, Base Classes
and Derived Classes – Protected Members, Access Specifiers, Constructors and Destructors in
Inheritance, method overriding, Virtual Functions, This Pointer – Abstract Base Classes and Concrete
Classes – Virtual Destructors – Dynamic Binding, Exception Handling: Try-catch blocks, throwing and
handling exceptions.
Practical:
3. Implement Polymorphism Concept- Function and Operator overloading.
4. Implement the concept of inheritance.
Experiential Learning : Design a hierarchy: Vehicle -> Car -> ElectricCar. Implement constructors,
destructors, and a common method (e.g., startEngine()) at each level. Observe
constructor/destructor call order.
Content Beyond Syllabus : Custom Exception Classes
Industrial Application: In AI research, simulated environments (e.g., for robotics, game AI) often use
inheritance to model different types of agents, sensors, and actuators that share common base
behaviors.
UNIT 3 LINEAR DATA STRUCTURE 9+6
Linked list implementation - Singly Linked List, Doubly Linked List, Circular Linked List. Queue ADT
– Queue Implementation -Circular Queue – Priority Queue, Application of Queues. Stack ADT –
Implementation of Stack using list- Applications: Evaluate expressions, Convert infix to postfix.
Practical:
5. Implementation of Single Linked List (Insertion, Deletion and Display).
6. Implementation of Doubly Linked List (Insertion, Deletion and Display) .
Meenakshi Sundararajan Engineering College
(An Autonomous Institution, Affiliated to Anna University, Chennai)
Department: Artificial Intelligence and Data Science, R2024, CBCS
7. Implementation of Stack using Linked List.
8. Implementation of Queue using Linked List
Experiential Learning: Create a physical stack to demonstrate operations: Use cards, books, or
blocks. Label each item with data (e.g., numbers or names).
Content Beyond Syllabus: Case Study: Asymptotic notation, time and space complexity
Industrial Application: Ticket Booking System Using a Queue.
UNIT 4 TREES 9+6
Tree ADT – Binary Tree ADT– Operations – Tree Traversals – Binary Search Tree-Red Black
Trees – Operations – Expression tree-AVL Tree: Single and double rotations – Trie Data Structure,
Properties and Basic Operations on Trie Data Structure, Applications of Trie data structure.
Practical:
9. Implementation of a Binary Search Tree.
10. Implement the operations of Trie data structures
Experiential Learning: Implement and simulate the basic operations on a binary search tree,
including insertion, deletion, and search.
Content Beyond Syllabus : Binary Heap implementations
Industrial Application : Case Study: Using Binary Search Trees (BST) for Efficient Inventory
Management in Retail
UNIT 5 GRAPHS 9+6
Representation of Graphs, Topological Sort, Depth First Search and Breadth-First Search,
Minimum Spanning Tree – Prim's Algorithm, Shortest path algorithm – Dijikstra’s Algorithm-
Bellman-Ford-Graph connectivity – Applications of Graph
Practical:
11. Implement Minimum Spanning Trees
12. Implement Shortest Path Algorithms
Experiential Learning: Implement BFS and DFS algorithms and apply them to real-world graph
structures, like social networks or transportation systems
Content Beyond Syllabus : Floyd-Warshall (for all pairs shortest paths) and Johnson’s Algorithm
Industrial Application :Case Study:Optimizing Network Design Using Prim’s Algorithm
Total Periods: 45+30
COURSE OUTCOMES:
At the end of the course, the student will be able to
CO1 Implement fundamental C++ programming constructs.
CO2 Apply core Object-Oriented Programming (OOP) principles.
CO3 Implement and analyze various linear data structures.
CO4 Implement and traverse various Tree data structures.
CO5 Apply graph algorithms for connectivity and optimization.
TEXT BOOKS
Data Structures and Algorithms in C++" by Michael T. Goodrich, Roberto Tamassia, David M.
1.
Mount,3rd Edition (2024)
2. Data Structures and Algorithm Analysis in C++" by Mark Allen Weiss,4th Edition (2014)
REFERENCES
1. "C++ Primer" by Stanley B. Lippman, Josée Lajoie, Barbara E. Moo,5th Edition (2012)
2. "Programming -- Principles and Practice Using C++" by Bjarne Stroustrup, 2nd Edition (2014)
Meenakshi Sundararajan Engineering College
(An Autonomous Institution, Affiliated to Anna University, Chennai)
Department: Artificial Intelligence and Data Science, R2024, CBCS
CO/PO, PSO Mapping
(3/2/1 indicates the strength of correlation) 3-Strong 2-Medium, 1-Weak
Programme Outcomes (POs) and Programme Specific Outcomes PSOs'
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 2 2 - 3 - - - 2 1 - 2 2 1 -
CO2 3 3 3 1 3 1 - 1 2 1 1 2 3 2 1
CO3 3 3 3 2 3 - - - 2 1 1 2 2 3 -
CO4 3 3 3 2 3 - - - 2 1 1 2 3 3 -
CO5 3 3 3 2 3 1 - - 2 1 1 2 3 3 -
AVG 3 2.8 2.8 1.8 3 1 0 1 2 1 1 2 2.6 2.4 1
Product based Projects (in Team)
1 Smart Contact Management System with Trie Search
2 Route Optimization for Delivery Services (Dijkstra/BFS)
3 Basic Recommendation System using Graph Algorithms
4 Expression Evaluator & Converter (Infix-to-Postfix) with Stack Visualization
5 Online Quiz System with Dynamic Question Bank (Tree)
6 "Who Wants to Be a Millionaire" Game (Tree-based Question Flow)
7 Dynamic Memory Allocator Simulator (Linked List)
8 Patient Appointment Scheduling System (Priority Queue/Circular Queue)
9 Simple Version Control System (Linked List/Stack for commits)
10 File Compression/Decompression using Huffman Coding (Binary Tree/Priority Queue)
11 Text Editor with Undo/Redo Functionality (Stack-based)
12 Family Tree / Genealogy Explorer (Tree Structure)
13 Plagiarism Checker (Trie/Hashing for efficient text comparison)
14 Zombie Apocalypse Simulator (BFS/DFS on Grid Map)
15 Event Management System with Time-based Scheduling (Min-Heap/Priority Queue)
16 Phone Directory with Predictive Text (Trie Data Structure)
17 University Course Prerequisite System (Topological Sort)
18 Basic Image Processing Filters (Matrix/Array Operations)
19 Stock Price Tracker with Moving Average (Circular Queue/Dynamic Array)
20 Sudoku Solver using Backtracking (Stack/Array)