Table of Contents

CS514: Design and Analysis of Algorithms

This course will provide a basic understanding of problem solving strategies using computers. The course will focus mostly on the theoretical side.

Class timings

TAs

Syllabus

This is a 3-0-0-6 (L-T-P-C) course.

Data structures: linked list, stack, queue, tree, balanced tree, graph; Complexity analysis: Big O, omega, theta notation, solving recurrence relation, master theorem

Sorting and searching: Quick sort, merge sort, heap sort; Sorting in linear time; Ordered statistics;

Problem solving strategies: recursion, dynamic programming, branch and bound, backtracking, greedy, divide conquer,

Graph algorithms: BFS, DFS, Shortest path, MST, Network flow;

NP-completeness Advanced topics: string matching, FFT-DFT, basics of approximation and randomized algorithms;

Books

Slides

Topics Slides Annotated Slides
Introduction pdf NA
Tutorial-1 pdf NA
Tutorial-2 pdf NA