1) Recurrences, induction and generating functions
2) Average-case analysis of simple algorithms
3) Introduction to graph theory
4) Algorithms over graphs
5) Data structures and trees
6) Combinatorial search: backtracking and dynamic programming
7) Probabilistic Algorithms and Randomized Search
8) Complexity theory I: basics
9) Complexity theory II: NP-completeness
10) Coping with NP-completeness: heuristics (Approximation algorithms,
branch-and-bound and backtracking, local search and simulated annealing).
11) Information theory I: Source and channel coding
12) Information theory II: elements of cryptography
13) Random structures: families of random graphs or networks (including
the scale-free structures) and percolation theory
14) Optimization over random structures: typical-case complexity and
phase transitions
Text books:
1) "Introduction to Algorithms", T.H. Cormen, C.E. Leiserson, R.L.
Rivest, MIT Press, (2000)
2) Concrete Mathematics, R.L. Graham, D. E. Knuth, and O. Patashnik,
Addison-Wesley, 1994
3) Computational Complexity, C.H. Papadimitriou, Addison Wesley (1994)or
Combinatorial optimization: algorithms and complexity (Prentice-Hall 1982,
C.H. Papadimitriou, K. Steiglitz; second edition by Dover, 1998)
4) M. R. Garey and D. S. Johnson. Computer and Intractability. A Guide
to NP-Completeness. W. H. Freeman, 1979.
5) Randomized Algorithms, R. Motwani, P.Raghavan,Cambridge University
Press (1995)
6) Information Theory, Inference, and Learning Algorithms, D.J.C. MacKay,
Cambridge University Press, 2003
Lecture Notes:
1) Random graphs, J. Spencer (Courant)
2) Introduction to Monte Carlo Algorithms, W. Krauth (ENS-Paris)
3) A theoretician's Guide to the Experimental Analysis of Algorithms,
D.S. Johnson (AT\&T Labs)
Handouts on scale-free graphs, cryptography, typical-case complexity