
Python Programming




Lecture 1: Introduction to Python Programming and Variables in Python




Annotated Notes Lecture 1 Introduction to Python




Lecture 2: Operators and Conditional Statements in Python




Annotated Notes Lecture 2 Operators and Conditional Statements in Python




Lecture 3: Strings in Python




Annotated Notes Lecture 3 Strings in Python




Lecture 4: Lists in Python




Annotated Notes Lecture 4 Lists in Python




Lecture 5: Loops and List Comprehension in Python




Annotated Notes Lecture 5 Loops and List Comprehension in Python




Lecture 6: References, Objects, and List aliasing in Python




Annotated Notes Lecture 6 References and Objects in Python




Lecture 7: Functions in Python




Annotated Notes Lecture 7 Functions in Python




Lecture 8: More on Functions in Python




Annotated Notes Lecture 8 More on Functions in Python




Lecture 9: Default, Keyword, and Variable Number of Arguments  Tuples in Python




Annotated Notes Lecture 9 Default, Keyword, and Variable Number of Arguments  Tuples in Python




Lecture 10: Zip Function, and Lambda Functions




Annotated Notes Lecture 10 Zip and Lambda Functions




Lecture 11: Dictionary and Sets in Python




Annotated Notes Lecture 11 Dictionary



Linked List




1a. Introduction to Data Structures




1b. Introduction to Linked list




1c. Why we need Linked list  Array vs Linked list




1d. Printing and Finding Length of Linked List




Lecture 1 Annotated notes




2a. Insertions in linked list




2b.Deletion in Linked list




OPTIONAL : Linked list C code




linkedList




2c. Recursion in Linked list: Printing the linked list




2d. Recursion in Linkedlist Sum and length of linked list




Lecture 2 Annotated Notes




3a. Recursion in Linkedlist insert at the end




3b. Recursion in Linkedlist Question 2 based on recursion




3c. Recursion in Linkedlist Question 3 based on recursion




3d. Recursion in Linkedlist Question based on recursion




3e. Recursion in Linkedlist Swap pairwise Leetcode question




Lecture 3 Annotated Notes




Lecture 4a. GATE 2022 Reverse a Linked List




Lecture 4b. Reverse a Linked List using Recursion  Four Variations on recursion




4c. Circular Linked List




4d. Doubly Linked List




Lecture 4 Annotated Notes




Practice Set Linked List




LIVE: Linked List Practice Set Discussion




LIVE Session Annotated Notes




Weekly Quiz 20  Linked List



Asymptotic Analysis and Loop Complexities




5a. Introduction to Asymptotic Analysis




5b. Big oh and Big omega Asymptotic Notations




5c. Theta Asymptotic notation




5d. What is Asymptotic comparison  how LOG works  rice grain story




5e. Comparing Different Functions Asymptotically




5f. Little Oh Little Omega  Properties of asymptotic notation  Stirling approximation




6a.Formal set notation of Asymptote symbols




6b. Asymptotic Notations GATE CSE PYQs 1994, 96, 2000,1,3,4,8,11,17




6c. Analysing the loops time complexity




6d. Time Complexity of loops 2




Annotated Notes: Lecture 5, 6  Asymptotic Analysis




Practice Set Loop Complexities




LIVE: Loop Time Complexity Practice Set Discussion




LIVE Session Loop Time Complexity Annotated Notes




7a. Brief about Best Case, Worst Case




7b. More about Best Case, Worst Case




7c. Questions on Algorithmic notations




Annotated Notes Lecture 7




Practice Set Asymptotic Notations




LIVE: Asymptotic Notations Practice Set Discussion 1




LIVE: Asymptotic Notations Practice Set Discussion2




LIVE Session Asymptotic Notations Annotated Notes



Stack and Queue




8a. Introduction to Stack and Stack Permutations




8b. Implementation of Stack using Array and Linked list




9a. Introduction to Queue




9b. Implementation of Queue using Array




9c. Queue another Implementation using Array with F=R=0  GATE 2012




9d. Implementing Queue using Linked List




9e. Queue using two stacks




10a. Stack using two queues




10b. Balancing parentheses and Two Stacks in one array




10c. Infix, Prefix & Postfix and Conversion to each other




10d. Infix to Postfix using Stack and Postfix evaluation using Stack




Stack and Queue Anotated Notes




Practice Set Stack and Queue




LIVE: Stack and Queue Practice Set Discussion1




LIVE Stack and Queue Practice Set Discussion 2




LIVE Session Stack and Queue Annotated Notes



Binary Trees




11a. Introduction to Binary trees




11b. Some questions and representation of tree




11c. Questions on Binary trees




11d. Questions on Binary trees 2




12a. Binary Tree Traversals




12b. Binary tree construction using preorder postorder and inorder




12c. Binary tree construction using preorder postorder and inorder 2




13a. Introduction to Binary Search Tree




13b. Range Search in Binary Search Tree  GATE 2014  GATE 2020




PDF: Range Search Binary Search Tree Animations (Stanford Slides)




13c. BST Deletion




14a. GATE 1996 Possible probe sequences




14b. BST PYQs 1997, 2001, 06, 07, 16




14c. BST Time Complexities




Annotated Notes Binary Tree and BST




Practice Set Binary Trees and Binary Search Tree




LIVE Binary Tree and Binary Search Tree Practice Set Discussion  1




LIVE Binary Tree and Binary Search Tree Practice Set Discussion  2




LIVE SessionBinary Tree and Binary Search Tree Annotated Notes



Hashing




20a. Motivation to hashing and Direct address table




20b. Introduction to hashing




20c. Collision resolution techniques




20d. Avg case performance chaining




21a. Linear Probing




21 b. Quadratic probing and Double hashing




21c. Possible Number of probes




22a. [Optional but please watch ] UnSucessfull search time open addressing




22b. [Optional but please watch ] Successful search time open addressing




23 a. Probability Background (video from Probability course) Bernoulli and Binomial RVs




23b. Three popular expectation questions in hashing




Hashing Anotated Notes



Why Study Algorithms




1a. Why Study Algorithms




1b.An algorithm that changed history And Child's algorithm



Time Complexity of Recursive Programs




2a. Introduction to recurrence relations




2b. Solving recurrence using Iteration Method




2c. More Examples of Iteration Method




3a. Solving recurrence using Tree Method




3b. More Examples Tree Method




3c. Even More Examples Tree Method




3d. More Examples Tree Method




4a. Masters Theorem Idea and examples




4b. Examples On Master Theorem




4c. Proof of Master Theorem




5a. Generalised Master Theorem




5b. [Optional but watch] Extended Master Theorem




5c. Various Examples of Master Theorem




5d. Problems that master theorem can not solve




6a. Introduction to change to variable method




6b. Examples on Change of Variable




6c. Few more examples on change of variable method




6d. Some More variation




Annotated Notes Module 1 Solving Reccurance relation



Divide and Conquer Algorithms (Part1)




7a. Introduction to Divide and Conquer Algorithm




7b. Maximum of an array using D and C




7c. Example 2 Sum of an array




7d. Example 3 Search in an array




7e. Example 4  Dumb Sort




A Note: Viewing Recurrence as Induction




8a. Introduction to Merge Sort algorithm




8b.Heart of Merge Sort Merge Procedure




8c. Merge Procedure 2




8d. Merge Sort Recursive tree with example




8e. Merge Sort Analysis (Contd..)




9a. Merge Sort questions 1




9b. Merge Sort questions 2




9c. More Questions on Merge sort




10a. Iterative (or Bottomup) Merge sort




10b. GATE 1999 question on Bottom up Merge Sort




10c. Time Complexity of Iterative Merge sort




10d. [Optional and Skip] Implementation of Iterative Merge sort




11a. Merging k sorted arrays Part 1




11b. Merging k sorted arrays Part 2




11d. Definition of Stable and Inplace sorting




[DELETED] In Place and Space Complexity




Annotated Notes Divide and Conquer Algorithms (Part1)



Divide and Conquer Algorithms (Part2)




12a. Introduction to Quick Sort




12b. Working Example of Quick Sort




12c. Quick sort Analysis and Randomised quick sort




12d. GATE 2014 question




12e. Questions on quick sort




12f. [Optional and Skip] Average case analysis of quick sort




13a. The Select algorithm




13b. Binary Search




Annotated notes Divide and Conquer part 2



Breadth First and Depth First search (BFS and DFS)




14a. Introduction to Graphs  Adjacency List and Matrix




14b. intuition for graph search methods




14c. Introduction to DFS




14d. DFS Implementation (Recursive and explicit stack) and Time complexity




15a. DFS Parentheses Theorem  GATE 2006




15b. DFS Edge Classifications




15c. Questions on DFS Edge Classification




15d. [Optional] Backedge and cycle question




16a. DFS Application 1 Cycles in graph




16b. GATE 2007 question on DAG finish time




16c. DFS Application 2 Topological sort  GATE 2014




16d. DFS Application 3 Articulation Point  GATE 2021




17a. Introduction to BFS




17b. BFS few Observations(Properties) and BFS Edge Classification




17c. BFS Applications




Annotated Notes DFS BFS



Shortest Paths Algorithms (Greedy Algorithms)




18a. Introduction to Greedy Algorithms  Introduction and Intuitive proof of Dijkstra




18b. Dijkstra code and Working Example 1




18c. Dijkstra Working Example 2




18d. Dijkstra Working Example 3




19a. Dijkstra on negative weights




19b. Video From DS Course: Priority Queues




19c. Dijkstra Time Complexity




19d. Dijkstra Time Complexity on more variant data structures  Dijkstra Demo




20a. DAG Shortest Path  Shortest Path in Directed Acyclic Graph




20b. Intuition Behind Bellman Ford Algorithm




20c. Examples of Bellman Ford  Time complexity




20d. Bellman ford proof and Early termination




Annotated Notes Dijkstra, DAG Shortest Path Algo, and Bellman Ford



Sorting Algorithms (selection, insertion, bubble, counting sort)




21a .Bubble Sort




21b .Insertion Sort




21c .Bubble Sort and Insertion Sort




21d. Selection Sort and Heap Sort




21e. Decision Tree




21f. [Optional] Counting Sort and Radix Sort




Annotated Notes Sorting Algorithms



Student Notes




Algorithm GATE DA Student Written Notes




Data Structures GATE DA Student Written Notes

