Design and Analysis of Algorithms, January - April 2022
Attention: Due to COVID-19 pandemic, the classes will be taken in Google Classroom.
Day → Branch ↓ |
Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
---|---|---|---|---|---|---|---|
CS | 10:00 am | 12:00 pm |
11:00 am | 09:00 am | |||
CE | 03:00 pm | 09:00 am | 09:00 am | 02:00 pm |
The main objective of this course is to discuss the techniques necessary to propose practical algorithmic solution for real world problems, which still permit strong theoretical bounds on time and space utilization. Students will study a wide collection of important and useful algorithms with necessary data structures in different areas of applications, focusing on fundamental concepts.
Upon successful completion of this course, the student should be able to:
You can find the syllabus [here].
Note: Following the uncertainty caused by COVID-19, this evaluation process may subject to change.
Sl No # | Date | Time | Duration | Contents Discussed | |
---|---|---|---|---|---|
1 | - | - | 1 hr | Chapter 1 of T1 |
Overview of the course; Motivation and introduction; RAM model of computation, concepts of worst case, best case and average case time. |
2 | - | - | 1 hr | Chapter 2 & 3 of T1 |
Necessity of the asymptotic notations; Different asymptotic notations: Definitions, interpretations and examples. |
3 | - | - | 1 hr | Chapter 4 of T1 |
Recurrence relation: Definition, solution of a recurrence relation, significance; Solving recurrence relation using substitution method. |
4 | - | - | 1 hr | Chapter 4 of T1 |
Recurrence relation: Soving recurrence relation by recurrence tree method; Analyzing code fragments. |
5 | - | - | 1 hr | Exercise 2.1.3 and 2.3.5 of T1 |
Divide and Conquer: Binary Search (Algorithm, example and worst case complexity analysis). |
6 | - | - | 1 hr | Class notes |
Divide and Conquer: Ternary Search (Algorithm, example and worst case complexity analysis). |
7 | - | - | 1 hr | Chapter 7 of T1 (Refer the class note) |
Divide and Conquer: Quick sort (Idea, Partition procedure, example of partition procedure). |
8 | - | - | 1 hr | Chapter 7 of T1 (Refer the class note) |
Divide and Conquer: Quick sort (Complexity of partition procedure, Worst case and best case complexity of quick sort). |
9 | - | - | 1 hr | Chapter 7 of T1 (Refer the class note) |
Divide and Conquer: Quick sort (Average case time complexity of quick sort). |
10 | - | - | 1 hr | Chapter 6 of T1 [ Class note ] |
Heap sort: Definition, Properties, Basic building blocks to develop the heap sort algorithm |
11 | - | - | 1hr | Chapter 6 of T1 [ Class note ] |
Heap sort: Heapify, Build heap, Heap sort, Examples |
12 | - | - | 1hr | Chapter 6 of T1 [ Class note ] |
Heap sort: Complexity analysis of Heapify, Build heap, Heap sort |
13 | - | - | 1hr | Chapter 4 of T1 [ Class note ] |
The Master Method: Basic and generalized master method, examples; Basic concept of lower bound for sorting |
14 | - | - | 1hr | Chapter 8 of T1 [ Class Note ] |
Lower bound for Sorting: Detailed analysis and derivation |
15 | - | - | 1hr | Chapter 15 of T1 [ Class Note ] |
Dynamic Programming: Elements of dynamic programming, Matrix chain multiplication - problem statement explanation through an example |
16 | - | - | 1hr | Chapter 15 of T1 [ Class Note ] |
Dynamic Programming: Matrix chain multiplication: Developing the recursive solution and idea behind memoization |
17 | - | - | 1hr | Chapter 15 of T1 [ Class Notes ] |
Dynamic Programming: Matrix chain multiplication: Developing Algorithm, Complexity Analysis, Example |
18 | - | - | 2hrs | Chapter 15 of T1 |
Dynamic Programming: Longest Common Subsequence: Problem statement, Solution approach, Developing algorithm, Complexity analysis, Example |
19 | - | - | 1hr | Chapter 16 of T1 |
Greedy Paradigm: Elements of Greedy paradigm, Fractional Kanpsack: Problem statement, Example, Building solution, algorithm, Complexity |
20 | - | - | 1hr | Chapter 16 of T1 |
Greedy Paradigm: Huffman Codes: Problem statement, Example, Building solution, algorithm, Complexity |
21 | - | - | 1hr | Chapter 16 of T1 |
Greedy Paradigm: Activity Selection: Problem statement, Example, Building solution, algorithm, Complexity |
22 | - | - | 1hr | Chapter 21 of T1 |
Data Structure for Disjoint Sets: Definition, Basic Operations, Representation, Application: connected component |
23 | - | - | 1hr | Graphs and their representation | |
24 | - | - | 1hr | Chapter 22 of T1 |
Graph Traversal: Breadth First Search (BFS) Problem statement, Algorithm, Complexity, Example |
25 | - | - | 1hr | Chapter 22 of T1 |
Graph Traversal: Depth First Search (DFS) Problem statement, Algorithm, Complexity, Example |
26 | - | - | 1hr | Chapter 23 of T1 |
MST: Prim’s algorithm, Example, Complexity |
27 | - | - | 1hr | Chapter 23 of T1 |
MST: Kruskal’s algorithm, Example, Complexity |
28 | - | - | 3hrs | Chapter 24 of T1 |
Single Source Shortest Path: Bellman-Ford Algorithm, Example, Complexity; Dijkstra’s Algorithm, Example, Complexity |
29 | - | - | 2hrs | Chapter 25 of T1 |
All pair Shortest Path: Floyd-Warshall’s Algorithm, Example, Complexity |
30 | - | - | 2hrs | Chapter 32 of T1 |
String Matching: Problem statement, Preliminary Idea, Naive algorithm, Example, complexity of naive algorithm; Rabin-Karp Method: Basic idea, Mathematical background, Horner’s rule, Polynomial evalution; Algorithm, Complexity, Example |
31 | - | - | 2hrs | Chapter 34 of T1 |
Complexity Classes: P, NP, NP Complete Definition reduction, NP complete problems |
32 | - | - | 1hr | Chapter 35 of T1 |
Handling NP complete problems: Approximation algorithms (Introduction, Definition, significance) |
33 | - | - | 1hr | Chapter 35 of T1 |
Handling NP complete problems: Vertex cover problem (2 - Approximation algorithm, Example, complexity) |
34 | - | - | 1hr | Chapter 35 of T1 |
Handling NP complete problems: TSP (2 - Approximation algorithm, Example, complexity analysis) |