Subjects Taught

Back to Subjects

CS313 | Design and Analysis of Algorithms

Introduction to Design and Analysis of Algorithms Introduction to Course Download
Algorithmic Warm Up Maximum Pairwise Product, Fibonacci Series Download
Asymptotic Notations: Big O Computing Run-time, Growth Rate Download
Main Ingredients of Greedy Algorithms Greedy Algorithm Download
Grouping Children Greedy Algorithm Download
Fractional Knapsack Greedy Algorithm Download
Divide and Conquer Main Idea Download
Linear Search Divide and Conquer Download
Binary Search Divide and Conquer Download
Polynomial Multiplication Divide and Conquer Download
Master Theorem Divide and Conquer Download
Selection Sort Divide and Conquer Download
Merge Sort Divide and Conquer Download
Quick Sort Divide and Conquer Download
Change Problem Dynamic Programming Download
String Comparison Dynamic Programming Download
Knapsack Dynamic Programming Download
Placing Paranthesis Dynamic Programming Download
Representing Graphs Decomposition of Graphs Download
Exploring Graphs Decomposition of Graphs Download
Connectivity in Graphs Decomposition of Graphs Download
Topological Sorting Directed Acyclic Graph Download
Strongly Connected Components Directed Graph Download
Most Direct Route - BFS Paths in Graph Download
Fastest Route - Dijkstra Algorithm Paths in Graph Download
Currency Exchange - Bellman-Ford Algorithm Paths in Graph Download
Kruskal Algorithm and Prim Algorithms Minimum Spanning Tree Download
Stable Matching Gale–Shapley Algorithm Download
Gale–Shapley Demo Representative Problems Download
Algorithm Analysis Asymptotic Order of Growth Download
Binary Search Demo Algorithm Analysis Download
Graph Connectivity, Bipartite Graph, DAG, Topological Sort Download
Greedy Algorithms I Coin Change, Interval Scheduling and Partitioning, Optimal Caching Download
Earliest-Finish-Time-First Algorithm Interval Scheduling Download
Earliest-Start-Time-First Algorithm Interval Partitioning Download
Greedy Algorithms II Shortest Path, MST, Clustering, Min-Cost Arborescences Download
Dijkstra Algorithm Shortest Path - Efficient Implementation Download
Minimum Spanning Tree Red-Blue, Prim, Kruskal, Reverse Delete, Boruvka Algorithms Download
Edmonds Branching Min-Cost Arborescences Download
Divide and Conquer Merge Sort, Quick Sort, Median and Selection Download
Merge Sort Sorting Algorithm Download
Merge Invert Merge and Count Download
Quick Select 3-Way Partition Download
Design and Analysis of Algorithms

Algorithm Design
By: Jon Kleinberg, Eva Tardos

Course Info

Design and Analysis of Algorithms introduces algorithms by looking at the real-world problems that motivate students. The course teaches students a range of design and analysis techniques for problems that arise in computing applications. The course encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.

To study the fundamental techniques to design efficient algorithms & analyze their running time | Learn efficient algorithms for basic graph problems and solving various problems through divide and conquer algorithms, dynamic programming and greedy algorithms


Course Aim
  • To study the fundamental techniques to design efficient algorithms & analyze their running time
  • Learn efficient algorithms for basic graph problems and solving various problems through divide and conquer algorithms, dynamic programming and greedy algorithms

Learning Outcomes
  • Describe the major modern algorithms and selected techniques that are essential to todays computers.
  • Decide on the suitability of a specific algorithm design technique for a given problem.
  • Apply the algorithms and design techniques to solve problems, and mathematically evaluate the quality of the solutions.