Descriptif
An algorithm is a sequence of instructions that allows us to solve a
problem using a finite number of steps; as such, algorithms formalize
the notion of what it means to "compute". We study algorithms to know
what can be computed, in both theory and practice, to find out how
efficiently it can be done, and to be able to show correctness
properties rigorously. This course is an initiation into the art and
science of algorithms. It will train students to think about
algorithms, how to rigorously compare different algorithms and predict
their performance, and how to apply this knowledge to solve
computational problems efficiently.