Instructor: Subhra Mazumdar (subhra.mazumdar@iiti.ac.in), Department of Computer Science and Engineering, IIT Indore
Teaching Assistants: Aditya Chandle (mt2302101004@iiti.ac.in), Anukriti Bhatnagar (mt2302101007@iiti.ac.in) , Vikas Chauhan (mt2302101014@iiti.ac.in), S Deepak Raam (mt2302101012@iiti.ac.in), Anukarsh Pratap (mt2302101006@iiti.ac.in)
Venue: Sandipani Seminar Hall
Announcement: Mid-Term Assignment Due date submission (Upload in Google Classroom) - 1st September, 2024 by 10 AM.
Lab test on 12th September 2024 (2:30 PM - 5:30 PM) and Mid-term quiz on 14th September 2024 (11 AM-12 Noon) .
Course Delivery: 2 Lectures and 1 Tutorial (may be used for lectures) per week. Tutorials will involve problem-solving on the topics discussed during the lectures.
Lecture Timings:
Wednesday (Lecture) : 1:30 PM - 2:25 PM
Thursday (Lecture) : 1:30 PM - 2:25 PM
Friday (Tutorial/May be used for lecture) : 1:30 PM - 2:25 PM
Evaluation:
Mid Term Quiz (Before mid sem exam): 10
Mid Semester Exam: 30
End Term Quiz (Before end sem exam): 10
End Semester Exam: 50
Reference Material List/ Practice Problems: For all the topics taught
Link for the textbooks mentioned corresponding to each lecture is given below under Textbooks
Course Outline:
Introduction to Data Structure and Algorithms
Basic Data types
Overview of Data Structures
Abstract Data type
Algorithm and Analysis
Run time and Space Complexity
Compare algorithms
Asymptotic Notations and Analysis
Divide and Conquer: Substitution, Recurrence and Masters Theorem
Basic Data Structure
Array
Searching (linear, binary),
Sorting (Insertion, Selection, Bubble, Quick, Merge, Linear time sorting: Bucket, Radix, Count),
Comparative Analysis
Order Statistics
Linked List
Single linked list,
Difference- Array and Linked List
Doubly linked list, Circular linked list
Stacks
Introduction, Implementation and Applications
Use in expression evaluation and Recursion
Queues
Introduction, Implementation and Applications, Difference with stack
Circular Queue
Doubly-ended Queue
Priority Queue (PQ) and Heap
PQ introduction and implementation
Introduction to heap (max, min) and binary heap
Heapsort
Hashing
Introduction
Components of Hashing, Hash Table
Hash functions
Collision Resolution techniques
Comparison of Collision Resolution techniques
Tree
Introduction
Binary Tree, Binary Search Tree (BST)
Traversals in BST: Inorder, Preorder, Postorder
Height Balanced Tree: AVL, Red-Black
B-Tree: Introduction
Special Data Structures
Disjoint Sets
Union Find
Graph Algorithms
Graph representation,
Graph traversal – breadth-first search, depth-first search
Topological ordering (sorting)
Shortest Path algorithms
Minimum Spanning Tree (brief introduction)
Some Advanced Topics (If time permits)
Tries
Skip Lists
Advanced Algorithms: Dynamic Programming (May be taught as part of Lab)
Textbooks:
Reference Materials: