Prerequistes: MA 511 Computer Programming.
Asymptotic notation; Sorting - merge sort, heap sort, priortiy queue, quick sort, sorting in linear time, order statistics; Data structures - heap, hash tables, binary search tree, balanced trees (red-black tree, AVL tree); Algorithm design techniques - divide and conquer, dynamic programming, greedy algorithm, amortized analysis; Elementary graph algorithms, minimum spanning tree, shortest path algorithms.
Programming laboratory will be set in consonance with the material covered in lectures. This will include assignments in a programming language like C and C++ in GNU Linux environment.
Texts:
References: