Study of algorithms for a variety of combinatorial problems from several points of view, including existence, algorithm design, data structures, performance analysis and complexity status.
Main themes
The course is an introduction to algorithms and their complexity from a non-numerical point of view. The principal topic is the mathematical analysis of the existence of algorithms and their complexity on the classical problems of the field.
Content and teaching methods
Introduction to the basic algorithms for sorting and the efficient implementation of different data structures including an analysis of worst case and average case complexity.
Treatment of important algorithm classes including greedy and dynamic programming algorithms. Aspects of complexity theory including NP-completeness, complexity classes and decidability.
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
Introduction to Algorithms, T.H. Cormen, C.E. Leierson and R.L. Rivest, MIT Press 1986.
Algorithmics: Theory and Practice, G. Brassard and P. Bratley, Prentice Hall 1988.