IIT Madras PDSA Lectures: Programming, Data Structures and Algorithms using Python
BSCS200284 lectures12 weeks
Weeks
- Week 112 lecturesIntroduction to Jupyter Notebooks and Google Colab · Implementation of Python Codes - Part 01 · Python Recap - I · Python Recap - II · Python Recap - III · Exception handling · Classes and Objects · Implementation of Python Codes - Part 02 · Timing Our Code · Implementation of Python Codes - Part 03 · Why Efficiency Matters? · Implementation of Python Codes - Part 04
- Week 29 lecturesAnalysis of Algorithms · Comparing Orders of Magnitude · Calculating Complexity - Examples · Searching in a List · Selection Sort · Inserting Sort · Merge Sort · Analysis of Merge Sort · Implementation of Searching and Sorting Algorithms
- Week 39 lecturesQuicksort · Analysis of Quicksort · Implementation of Quicksort Algorithm · Concluding Remarks on Sorting Algorithms · Difference Between Lists and Arrays (Theory) · Designing a Flexible List and Operations on the Same · Implementation of Lists in Python · Implementation of Dictionaries in Python · Difference Between Lists and Arrays (Implementation)
- Week 48 lecturesIntroduction to Graphs · Representing Graphs · Breadth First Search (BFS) · Depth First Search (DFS) · Applications of BFS and DFS · Introduction to Directed Acyclic Graph (DAG) · Topological Sorting · Longest Path in DAGs
- Week 57 lecturesShortest Paths in Weighted Graphs · Single Sourse Shortest Paths (Dijkstra's Algorithm) · Single Sourse Shortest Paths with Negative Weights (Bellman-Ford Algorithm) · All Pairs Shortest Paths (Floyd-Warshall Algorithm) · Minimum Cost Spanning Trees · Minimum Cost Spanning Trees (Prim's Algorithm) · Minimum Cost Spanning Trees (Kruskal's Algorithm)
- Week 65 lecturesUnion-Find Data Structure · Priority Queues · Heaps · Using Heaps in Algorithms · Search Trees
- Week 74 lecturesBalanced Search Trees · Greedy Algorithms-Interval Scheduling · Greedy Algorithms-Minimizing Lateness · Greedy Algorithms-Huffman Coding
- Week 86 lecturesDivide and Conquer-Counting Inversions · Divide and Conquer-Closest Pair of Points · Divide and Conquer-Integer Multiplication · Divide and Conquer-Recursion Trees · Divide and Conquer-Quick Select · Implementation of Quick Select and Fast Select Algorithms
- Week 96 lecturesDynamic Programming · Memoization · Grid Paths · Common Subwords and Subsequences · Edit Distance · Matrix Multiplication
- Week 107 lecturesString Matching · String Matching: Boyer-Moore Algorithm · String Matching: Rabin-Karp Algorithm · String Matching Using Automata · String Matching: Knuth-Morris-Pratt Algorithm · String Matching-Tries · String Matching-Regular Expresssions
- Week 117 lecturesLinear Programming · Linear Programming-Production Planning · Linear Programming-Bandwidth Allocation · Network Flows · Reductions · Intractability-Checking Algorithms · Intractability-P and NP
- Week 124 lecturesSummary of Weeks 1 to 3 · Summary of Weeks 4 to 6 · Summary of Weeks 7 to 9 · Summary of Weeks 10 to 11