Course page for CS6010 - Advanced Data Structures and Algorithms (Aug-Nov 2015)

Back to my homepage


Basic algorithms: Asymptotic notation, recursion, divide-and-conquer paradigm, basic data structures; possibly fast Fourier Transform.
Sorting: Merge sort, bucket and radix sort; medians and order statistics.
Data structures: Priority queues and heaps, dictionaries, hash tables, bloom filters, binary search trees, interval trees.
Additional possible topics: union-find, range trees, fractional cascading etc.
More algorithms: Dynamic programming, graph algorithms: DFS, BFS, topological sorting, shortest path algorithms, network flow problems.
Additional topics: String algorithms, suffix trees, geometric algorithms.


1. Introduction to algorithms: Cormen, Leiserson, Rivest and Stein (Main textbook)
2. Online lecture notes by Jeff Erickson
3. The Algorithm Design Manual: Steven Skiena
4. Algorithm Design: Kleinberg and Tardos
5. Data structures and algorithm analysis in C++(Java): Mark Weiss
6. Data structures and algorithms in C++(Java): Adam Drozdek
7. Data structures and algorithms: Aho, Hopcroft and Ullman

Division of credit:

Quizzes: 15%, Assignments: 20%, Midsem: 25%, Endsem: 40%
Note: CS6011 (Programming Lab) consists of four-five assignments, with varying credit.

Academic Honesty Policy