Algorithms & Data Structures 2
This course covers a variety of topics on algorithms and data structures, building upon the material of the first year course “Algorithms and Data Structures”. Algorithms and data structures are fundamental to computer science and constitute the essence of computer programs. The performance of any software system depends on the efficiency of the underlying algorithms and data structures that lie in its core. This course extends the students' knowledge on fundamental algorithms by focusing on several important topics such as data structures for disjoint sets and union-find, interval trees, graph algorithms such as shortest paths, dynamic programming, max-flow/min-cut, intractability and NP completeness.
- Introduction to Algorithms, 3rd edition, by T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, MIT Press, 2009.
- Other useful books (not required): Algorithm Design, by J. Kleinberg, E. Tardos, Addison Wesley, 2005.