Advanced Data Structures and Algorithms(R1UC503B) by Dr. GC Jana

Course Information

Course Name Advanced Data Structures and Algorithms (R1UC503B)
Instructor Gopal Chandra Jana, Email: gopal [dot] jana [at] galgotiasuniversity [dot] edu [dot] in
Odd Sem 2024 Aug to Jan
Location Offline: Sec-17 [Lec-GU_C-416][Lab-GU_C-207,GU_C-505], Sec-36 [Lec-GU_C-315][Lab-GU_C-304,GU_C-341]

Course Materials

Lecture Topic to be discussed Coding Notes-Reference Written Notes/PPTs/Book Chapters Take Home Assignments/HomeWork Coding Problem for practice Topics discussed in the Lab Lab Assignments Assinment Submission Link
Lecture 1: Review of Algorithmic Complexity Definition and significance of algorithmic complexity Time and space complexity, Big O notation, Omega, and Theta notations, analyzing basic algorithms, solve problems on basic time complexity analysis. Practice Questions on Time Complexity Analysis 1. PPT,
2. Session Handouts-Written Notes,
3. Chapter-1_Cormen_The Role of Algorithms in Computing,
4. Chapter-3_Cormen_Characterizing Running Times
Assignemnt Practice Coding Assignments Maximum Subarray Sum (Kadane’s Algorithm),
Sample code-Python Notebook
Lab Exercises-LeetCode,
Lab Exercises-GfG
1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 2: Arrays Static vs. dynamic arrays. Find the Maximum and Minimum Elements in an Array, Reverse an Array, Find the Kth Smallest/Largest Element in an Array. Static vs. dynamic arrays PPT-Array,
Written Notes-Array,
Written Notes-Multidimensional Arrays
Array-Practice Coding Assignments 1. Top 50 Array Coding Problems for Interviews-GFG,
2. Top Arrary Coding Problems-Leetcode
Array-Lab Assignmnet, Dutch National Flag Algorithm Array Lab Assignments need to be solved in GFG, Exercises 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 3: Linked lists Implementation of Singly Linked Lists, doubly linked list, and circular linked list. Operations on Linked List. Insertion, Deletion, Traversal. Types of Linked lists and Implementation 1. PPT-Linked Lists,
2. Linked List-Problem Discussed in the class
1. Linked lists-Operations on Linked List. Insertion, Deletion, Traversal,
2. Leetcode-Exercises (Need to complete by 02/09/2024)
Linked lists-Practice Coding Assignments Reverse a Linked List, Detect a Cycle in a Linked List, Find the Middle of a Linked List, Merge Two Sorted Linked Lists,Remove Nth Node from End of List Linked List Programming Assignment Need to be done in GFG, Exercises 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 4: Stacks Implementation of Stack using linked list, Application of stack: infix, Prefix and Postfix Expressions, infix to postfix expression, Evaluation of postfix expression. 1. Stack-prerequisite
2. Stack Class in Java-prerequisite
3. Stack in C++ STL-prerequisite
4. Stack in Python-prerequisite
1. Stack Class PPT
2. Stack related problems discussed in the class
3. Top-50-problems-on-stack-data-structure-asked-in-interviews
Stay tuned ... Stay tuned ... Stay tuned ... 1. Stack- Lab Programming Assignments need to be done in LeetCode and GFG
2. Stack-Lab Manual (for Reference only)
1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 5: Recursion Principles of recursion, Tail recursion, problem solving using recursion, Fibonacci numbers, a^n (a raised to the power n), reverse of a string. 1. Recursion-prerequisite. 1.Recursion-Class Note
2. Take Home Assignments on Recursion (Need to submit in the next Lec-class)
Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 6: Queues Implementation and operations on Queue using linked list. Priority queue (heap). 1. Queues Data-structure-prerequisite.
1. Queues Data-structure-and-algorithms-prerequisite.
1. PPT-Queues
2. Heap-Class Notes
Stay tuned ... Stay tuned ... Stay tuned ... 1. Queues - Lab Programming Assignments need to be done in LeetCode and GFG
2. Queues-Lab Manual (for Reference only)
1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 7: Hashing Concept of Hashing & Collision resolution Techniques used in Hashing. Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 8: Tree Linked List Representation, Binary Search Tree, Tree Traversal algorithms: In-order, Pre- order, and Post-order, Constructing Binary Tree from given Tree Traversal, Operation of Insertion, Deletion, Searching Modification of data in Binary Search. Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Tree-Lab Assignments 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 9: Graph Representations: Adjacency Matrices, Adjacency List, Graph Traversal: Depth First Search & Breadth First Search. Detect Cycle in an Undirected Graph, Connected components in an Undirected Graph. Prerequisite-Graph Data Structure And Algorithms 1. PPT
2. BFS-DFS
3. Connected Components in an Undirected Graph
4. Detect Cycle in a Directed Graph
5. Detect cycle in an undirected graph
6. Dijkstra’s Algorithm
7. Floyd Warshall Algorithm
THA-BFS and DFS -Algo and Implementation GFG-Top 50 Graph Coding Problems for Interviews Topic related to Graph Discussed in the LAB LAB Assignments related to Graph 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 10: Minimum Cost Spanning Trees Prims and Kruskal algorithm. Shortest Path algorithm: Warshal Algorithm. Prerequisite-Spanning Tree PPT Home task-Prim’s Algorithm and Kruskal Algorithm Implementation Top MCQs on Minimum Spanning Tree (MST) in Graphs with Answers Topic related to MST Discussed in the LAB ADSA Lab Assignments on MST 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 11: Dynamic Programming Elements of dynamic programming, longest common subsequence, Coin change problem, 0/1 Knapsack. Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 12: Greedy Algorithms Elements of the greedy strategy, Fractional knapsack, Activity Selection, Huffman coding, job sequencing Problem. Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 13: Back Tracking Sum of subset, N queens’ problem. Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Lecture 14: Probabilistic Data Structures Introduction to Probabilistic Algorithms, Advantages and Trade- offs of Probabilistic Data Structures, Applications and Use Cases, Structure and Function of Bloom Filters, Hash Functions and Their Role, False Positives and Space Efficiency, Variants of Bloom Filters (e.g., Counting Bloom Filter). Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... Stay tuned ... 1. Sec-17-Lab Assignments-Code Submission link
2. Sec-36-Lab Assignments-Code Submission link
Course Resources
Text Book Introduction to Algorithms, by Corman
Reference Books • Data Structures and Algorithms in Java, Roberto Tamassia and Michael T Goodrich, John Wiley
• R. Kruse et al., “Data Structures and Program Design in C”, Pearson Education
Webliography https://www.geeksforgeeks.org/advanced-data-structures/
https://github.com/topics/advanced-data-structures
SWAYAM/NPTEL/MOOCs Certification https://nptel.ac.in/courses/106102064
https://www.coursera.org/specializations/data-structures-algorithms
https://www.codespaces.com/best-data-structures-and-algorithms-courses-classes.html#3-data-structures-and-algorithms-nanodegree-certification-udacity
Disclaimer The content (Algo, code, text, image, and graphics) used in this slide are adopted from many sources (such as GeekforGeek, Book-Introduction to Algorithms, Cormen.MIT-Press, etc.) for Academic purposes. Broadly, the sources have been given due credit appropriately. However, there is a chance of missing out some original primary sources. The authors of this material do not claim any copyright of such material.