Design and Analysis of Algorithms
Lessons
Module 01 : Introduction, Analysis of Algorithms
What is the course all about?
Module 02 : Example: Air Travel
What is Air travel problem?
Module 03 : Example: Xerox shop
What is the Xerox shop problem?
Module 04 : Example: Document similarity
What is the document similarity problem?
Module 05 : Introduction and motivation
How analysis of algorithm is done and what is efficiency and time measurement?
What is a sorting and video game example?
What is the order of Magnitude and typical functions?
Module 06 : Input size, worst case, average case
What is the input size and orders of magnitude?
How basic operations are chosen and what is worst case and average case complexity?
Module 07 : Quantifying efficiency: O( ), Omega( ), Theta( )
What are Upper bounds and Big O?
What are Lower bounds, omega, tight bound and theta?
Module 08 : Examples: Analysis of iterative and recursive algorithms
What are the different examples of iterative algorithms?
What are the different examples of recursive algorithms?
Module 09 : Arrays and lists
How values are stored and Arrays and Lists?
Module 10 : Searching in an array
How a value is searched in an array and what is Binary Search?
Module 11 : Selection Sort
What is Selection Sort algorithm and how it works?
How is Selection Sort algorithm analyzed?
Module 12 : Insertion sort
What is Insertion Sort algorithm and how it works?
How is Insertion Sort algorithm analyzed?
Module 13 : Merge sort
What is Merge Sort Algorithm and How it works?
How Merge Sort Algorithm is implemented in a program?
Module 14 : Merge sort - analysis
How Merge Sort Algorithm is analyzed?
What are the variations on Merge and shortcomings of Merge Sort?
Module 15 : Quicksort
What is Quick Sort Argorithm and how it works?
How Quick Sort Algorithm is implemented in program?
Module 16 : Quicksort - analysis
How Quick Sort Algorithm is analyzed?
What is Iterative QuickSort?
Module 17 : Sorting - Concluding remarks
Which sorting algorithm is the best?
Module 18 : Introduction to graphs
How Map and Graph coloring is done?
How airline routing is represented using Graph?
Module 19 : Representing graphs
What is a Graph and what is a adjacency matrix?
How to find the path in adjacency matrix?
What is Adjacency list?
Module 20 : Breadth first search (BFS)
What is Breadth First Search (BFS) algorithm and how it works?
How to analyze the complexity of BFS and what more can be done in BFS?
Module 21 : Depth first search (DFS)
What is Depth First Search (DFS) algorithm and how it works?
What is the complexity of DFS and what is DFS numbering?
Module 22 : Applications of BFS and DFS
What are BFS and DFS trees?
What are directed cycles?
What are directed Acyclic Graphs and how directed graphs are connected?
Module 23 : Directed acyclic graphs: topological sort
How a problem is modeled using graphs and what is Directed Acyclic Graph (DAG)?
How Topological sorting algorithm works?
What is the pseudo code for topological sorting algorithm?
Module 24 : Directed acyclic graphs: longest paths
What is the longest path in DAG?
What is the psuedo code for Longest Path?
Module 25 : Single source shortest paths: Dijkstras algorithm
How to find the shortest path?
What is the single source shortest path problem?
How this problem is represented algorithmically and what is Dijkstra's algorithm?
Module 26 : Dijkstras algorithm: analysis
Why Dijkstra's algorithm is a greedy algorithm and how much correctness is there in this algorithm?
What is the complexity of Dijkstra's algorithm?
What are the limitations of Dijkstra's algorithm?
Module 27 : Negative edge weights: Bellman-Ford algorithm
What are the shortest paths in graphs where negative weights are allowed?
What is Bellman-Ford algorithm, its examples and complexity?
Module 28 : All pairs shortest paths
How shortest paths are explored inductively?
What is Floyd-Warshall algorithm, its examples and complexity?
What are the historical perspectives of Floyd-Warshall algorithm and how paths are computed?
Module 29 : Minimum Cost Spanning Trees
What is a Spanning tree and what are the various facts about trees?
How to build a minimum cost spanning tree?
Module 30 : Prims Algorithm
What is a Prim's algorithm and its correctness?
What is the Prim's algorithm for minimum cost spanning tree and its complexity?
Module 31 : Kruskals algorithm
What is Kruskal's algorithm and its correctness?
What is the Kruskal's algorithm for minimum cost spanning tree and its complexity?
Module 32 : Union-Find using arrays
What is Union-find data structure, its naive implementation and complexity?
What is the improved implementation of Union-find data structure and why does this help?
How to use Union-find data structure in Kruskal's algorithm?
Module 33 : Union-Find using pointers
How Union-find data structure is implemented using pointers?
How path compression can be done?
Module 34 : Priority queues
What is a Priority Queue and what are its various operations?
Module 35 : Heaps
What is a heap and its examples?
What is insert() operation in heap and its complexity?
What is delete_max() operation in heap?
How heap is implemented using arrays and what is heapify()?
Module 36 : Heaps: Updating values, sorting
How to update values in Heap?
What is the complexity of Dijkstra's algorithm?
Module 37 : Counting inversions
What is divide and conquer principle, what are recommendation systems and how rankings are compared?
How inversions are counted?
How to implement inversions using divide and conquer principle?
Module 38 : Closest pair of points
How to find the closest pair of points in a video game example?
Module 39 : Binary Search Trees
How heaps are implemented in air traffic control problem?
What is a Binary Search Tree (BST) and its operations?
How a successor and a predecessor work?
How to insert and delete a value in BST?
Module 40 : Balanced search trees
What are the different notions and situations of balance?
What are the various functions in balancing a tree and how slope is computed?
Module 41 : Interval scheduling
What are Greedy Algorithms and what is the problem of interval scheduling and what are the different greedy strategies?
How the algorithm is implemented for Greedy strategies?
Module 42 : Scheduling with deadlines: minimizing lateness
what are the greedy strategies for minimizing maximum lateness?
What are the different aspects of optimal scheduling?
Module 43 : Huffman codes
What is the concept of variable length coding and what are optimal prefix codes?
How to view the codes as Binary tree?
What is Huffman's Algorithm and its optimality?
What is the implementation, complexity and historical perpective of Huffman's algorithm?
Module 44 : Introduction to dynamic programming
What is inductive definition, optimal substructure property?
What is the problem weighted interval scheduling and computational challenge?
Module 45 : Memoization
What is a subproblem and how to evaluate it?
What is memoization and how memoized fibonacci is implemented?
What is dynamic programming?
Module 46 : Grid Paths
What is the problem of computing grid paths and its combinational solution?
What is the inductive formulation of a grid problem?
How to use dynamic programming on Grid and how is memoization different from dynamic programming?
Module 47 : Common subwords and subsequences
What is the Longest Common Subword (LCW) problem and how it is addressed?
What is the Longest Common Subsequence (LCS) problem and how it is addressed?
Module 48 : Edit distance
What is the problem of edit diatance and how it is related to LCS?
How the problem of edit distance is addressed?
Module 49 : Matrix multiplication
What is the problem of matrix multiplication?
How the problem of martix multiplication is addressed?
Module 50 : Linear Programming
What is Linear Programming and its example?
What is Simplex algorithm and what it does?
How to solve a problem using Simplex algorithm?
Module 51 : LP modelling: Production Planning
What is the problem of production planning?
How the problem is modelled using linear programming?
Module 52 : LP modelling: Bandwidth allocation
What is the problem of Network Bandwidth and how it is modelled using linear programming?
Module 53 : Network Flows
What is the oil network problem and how oil flow is formulated using Linear programming?
What is Ford-Fulkerson Algorithm and how it is implemented?
Module 54 : Reductions
What is the problem of course allocation in a school?
Module 55 : Checking Algorithms
What are efficient algorithms and checking algorithm?
What is Boolean Satisfiability problem?
What is Travelling Salesman problem?
What is the Independent Set problem?
Module 56 : P and NP
What is P and NP?
How SAT and 3-SAT are reduced within NP?
What is Cook-Levin Theorem and how completeness of NP is achieved?







