Pre-requisites : CS204 Algorithms

Syllabus :
Performance of algorithms: space and time complexity, asymptotics Design techniques: the greedy method, divide-and-conquer, dynamic programming Sorting and searchingGraph Algorithms Priority Queues: lists, heaps, binomial heaps, Fibonacci heaps Hashing Search Trees: binary search trees, red-black trees, AVL trees, splay trees, B-trees The disjoint set union problem String matching Strings: suffix arrays, tries Randomized data structures: skip lists A selection of advanced topics.

Texts :
1. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, MIT Press, 2001.
2. J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2005.

References :
1. A. Aho, J. E. Hopcroft and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
2. S. Sahni, Data Structures, Algorithms and Applications in C++, McGraw-Hill, 2001.
3. M. T. Goodrich and R. Tamassia, Algorithm Design: Foundations, Analysis and Internet Examples, John Wiley & Sons, 2001.