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.
|