Design and Analysis of Algorithms
Design and Analysis of Algorithms
Course Content:
Introduction; role of algorithms in computing, Analysis on nature of input and size of input
Asymptotic notations; Big-O, Big Ω, Big Θ, little-o, little-ω, Sorting Algorithm analysis, loop
invariants, Recursion and recurrence relations; Algorithm Design Techniques, Brute Force Approach,
Divide-and-conquer approach; Merge, Quick Sort, Greedy approach; Dynamic programming;
Elements of Dynamic Programming, Search trees; Heaps; Hashing; Graph algorithms, shortest paths,
sparse graphs, String matching; Introduction to complexity classes;
Teaching Methodology:
Lectures, Written Assignments, Semester Project.
Course Assessment:
Sessional Exam, Home Assignments, Quizzes, Project, Final Exam
Reference Materials:
1. Introduction to Algorithms (3rd edition) by Thomas H. Corman, Charles E. Leiserson,
Ronald L. Rivest and Clifford Stein
2. Algorithm Design, (1st edition, 2013/2014), Jon Kleinberg, Eva Tardos,
3. Algorithms, (4th edition, 2011), Robert Sedgewick, Kevin Wayne