A Level: Data Structure Through Object Oriented Programming Language (A5-R5, NIELIT / DOEACC, Live Classes)
Good knowledge of data structures and algorithms is the foundation of writing good code. Having good knowledge of essential Data structures like an array, string, linked list, stack, queue, tree, graph, etc makes one understand when to use which Data Structure and accordingly reduce the space and time complexity of the algorithm.
Using the right data structure can drastically improve the performance of an algorithm. An in-depth understanding of Data Structures enables one to understand how a computer gets things done. Everything from memory allocation in the depths of the operating system, to the inner workings of an RDBMS, to how networking stack manages to send data from one place to another, all computers rely on fundamental data structures and algorithms, so understanding them better makes one understand the computer better.
In this course, the Data Structures and algorithms have been implemented using the Object-Oriented Approach with C++. Object-oriented programming (OOP) is a programming language model in which programs are organized around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior. OOP approach enables a programmer to deal with real-world entities. This opposes the historical approach to programming where the emphasis was placed on how the logic was written rather than how to define the data within the logic.
The course is designed to impart knowledge and develop skills required to solve real-world problems using Object-Oriented Approach, Python constructs. The focus will also be on the fundamentals of Data Structures, Abstract concepts, and how these are useful in problem-solving.
After completing the module, the student will be able to understand:
- Basics of Object-oriented Programming
- Understand the OOP concepts- Abstraction, Objects, Classes, Polymorphism, Inheritance
- Implementation of Object-Oriented concepts using C++ classes
- Analyze step by step and develop algorithms to solve real-world problems
- Implementation of Data Structures like Linked List, Stack, Queue, Trees, Graphs
- Sorting and Searching Techniques with focus on space and time complexity of algorithms
120 Hours – (Theory: 48hrs + Practical: 72 hrs)
(i) Object-Oriented Concepts
Object-Oriented Programming- a new paradigm, Abstraction, forms of Abstraction, OOP concepts- Classes, Objects, Polymorphism, Data Encapsulation, Data Hiding, Inheritance,
(ii)Basics of C++, Classes, and Objects
Features of C++, Tokens, keywords, Data types, Operators, Manipulators, Console input, output, Control statements (conditional and loops), Functions, Classes, Instantiation, Destructor, constructor, Polymorphism – Operator Overloading, Function Overloading, Inheritance-Single, Multiple, Multilevel, Pointers
(iii) Analysis of Algorithm
Introduction to algorithm design and Data structures, Comparison of Algorithms, Complexity in terms of space and time, Calculation of O- notation. Abstract Data type and its implementation with a Rational number example
(iv) Searching and Sorting
Searching- Linear and Binary Search, Sorting- Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Merge Sort, Comparison of various searching and sorting techniques in terms of time complexity
(v) Elementary Data Structures: Arrays, Linked Lists
Representation of arrays-single and multidimensional, Address calculation using row-major ordering, Various operations on arrays, Linked Lists-Singly Linked List, Double linked List, Circular Linked List- traversing, deleting, inserting, searching, counting, reversing, the printing of nodes.
(vi) Stacks and Queues
Stack ADT, Implementation of stack using array and linked list, Application of Stack- Evaluation of postfix/prefix expression, Queue ADT, Implementation of the queue using Array and Linked List
Definition and notations, Binary Search Trees Implementation. Traversals using stacks and recursion – In-order, post-order, pre-order techniques, Threaded binary tree, B-trees with the implementation of 2-3 trees.
Definition and notations, Components of Graphs, Types of Graphs, Graph Implementation using Adjacency Matrix and Adjacency List algorithms and programs, Graph Traversal Methods: Depth First Search and Breadth-First Search.
No Reviews found for this course.