This is an online textbook for the course Programming, Data Structures and Algorithms using Python (PDSA).
Note to students: This book is meant to be used as a reference. You may find content that has not been covered in the video lectures. Likewise, there may be some content that is present in the lectures which is not covered here. In summary, please refer to chapters that you feel are relevant for the course. But you are under no obligation to read the entire book cover to cover. Interested students are always welcome to read the entire thing!
Week | Content | Summary and Implementations |
---|---|---|
1 | Python recap, Why efficiency matters? | Open |
2 | Algorithm analysis: Complexity and Notations, Searching algorithms:- Linear and Binary Search, Sorting algorithms:- Selection, Insertion and Merge Sort | Open |
3 | Quick Sort, Data structures: Python List vs NumPy Array, Linked List, Hashing, Stack, Queue | Open |
4 | Graph algorithms:- Introduction, Graph representation, BFS, DFS, Topological Sorting, Longest Path in DAG | Open |
5 | Graph algorithms:- Shortest Path:- Dijkstra's, Bellman Ford and Floyd-Warshall Algorithm, Minimum Spanning Tree:- Prim's and Kruskal's Algorithm | Open |
6 | Union-Find Data Structure, Data structures: Tree, Heap, Binary Search Tree | Open |
7 | AVL Tree, Greedy Algorithm | Open |
8 | Divide and Conquer Algorithm | Open |
9 | Dynamic programming | Open |
11 | Complexity classes, Flow network and Linear programming | Will Update Soon |
12 | String or Pattern Matching Algorithm and Regular Expressions(Extra Content) | Open |