Design and Analysis of Algorithms: Course Outline
Design and Analysis of Algorithms: Course Outline
Design and Analysis of Algorithms: Course Outline
ALGORITHMS
COURSE OUTLINE :
This course will cover basic concepts in the design and analysis of algorithms: Asymptotic complexity, O() notation |
Sorting and search | Algorithms on graphs: exploration, connectivity, shortest paths, directed acyclic graphs,
spanning trees | Design techniques: divide and conquer, greedy, dynamic programming | Data structures:
heaps, union of disjoint sets, search trees | Intractabiliy.
ABOUT INSTRUCTOR :
Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at
Chennai Mathematical Institute since 1992, where he is presently Professor and Dean of Studies. His main research
area is formal verification. In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS
Instructional Courses for college teachers. He is a member of ACM India's Education Committee. He has contributed
lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the QEEE
programme of MHRD.
COURSE PLAN :
Week 01 : Introduction, Examples and motivation, Asymptotic complexity: informal concepts, formal notation,
examples.
Week 02 : Searching in list: binary search, Sorting: insertion sort, selection sort, merge sort, quicksort, stability
and other issues.
Week 03 : Graphs: Motivation, Graph exploration: BFS, DFS; DFS numbering and applications, Directed acyclic
graphs.
Week 04 : Shortest paths: unweighted and weighted, Single source shortest paths:Dijkstra, Minimum cost
spanning trees: Prim’s algorithm, Kruskal’s Algorithm; Union-Find data structure.
Week 05 : Divide and conquer: counting inversions, nearest pair of points; Priority queues, heaps,Dijstra/Prims
revisited using heaps, Search Trees: Introduction.
Week 06 : Search Trees: Traversals, insertions, deletions, Balancing; Greedy : Interval scheduling, Proof strategies,
Huffman coding; Dynamic Programming: weighted interval scheduling.
Week 07 : Dynamic Programming: Memoization, Edit distance, Longest ascending subsequence, Matrix
multiplication; Shortest paths: Bellman Ford, shortest Floyd Warshall
Week 08 : Intractability: NP completeness, Reductions, Examples; Misc topics.
126