Academics Course

Course Details

1 Title of the course
(L-T-P-C)
Design and analysis of algorithms
(3-0-0-6)
2 Pre-requisite courses(s) Computer Programming and Utilization, Discrete Structures, Data Structures and Algorithms , Data Structures and Algorithms Laboratory
3 Course content Syllabus is divided roughly 8 modules; each module roughly takes two weeks.
Module 1: Introduction Examples and motivation. Asymptotic complexity: informal concepts, formal notation, examples
Module 2: Searching in list: binary search, Sorting: insertion sort, selection sort, merge sort, quicksort, stability and other issues.
Module 3: Divide and conquer: binary search, recurrence relations. nearest pair of points, merge sort, integer multiplication, matrix multiplication.
Module 4: Graphs: Motivation, BFS, DFS, DFS numbering and applications, directed acyclic graphs, directed acyclic graphs, Shortest paths: unweighted and weighted, Single source shortest paths: Dijkstra, Minimum cost spanning trees: Prim’s algorithm, Kruskal’s Algorithm.
Module 5: Union-Find data structure, Priority queues, heaps. Heap sort. Dijstra/Prims revisited using heaps, Search Trees: Introduction Traversals, insertions, deletions Balancing.
Module 6: Greedy algorithms: Greedy: Interval scheduling, Proof strategies, Huffman coding.
Module 7: Dynamic Programming: weighted interval scheduling, memoization, edit distance, longest ascending subsequence. matrix multiplication, shortest paths: Bellman Ford, shortest paths: Floyd Warshall.
Module 8: Intractability: NP completeness, reductions, examples, Misc topics.
4 Texts/References
  1. Algorithms, by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani, McGraw Hill Education, 2006.
  2. Introduction to Algorithms, 3rd edition, by Cormen, Leiserson, Rivest and Stein, PHI Learning Pvt. Ltd., 2010.
  3. Algorithm Design, 1st edition, by Kleniberg and Tardos, Pearson, 2014.

Copyright 2024 @IITDH. All rights are reserved