Algorithms and Complexity


Ecole Centrale Paris, Sep.-Dec. 2019

Home

Schedule

Exam

Lecture Slides

Exercises

Welcome to the Algorithms and Complexity lecture web page!

Algorithms, or formal, repeatable instructions about how to solve a given problem, are applied in many areas of our technical lives. Data science is no exception here. Whereas the availability of an algorithm makes a problem solvable in the first place, efficient algorithms are what we are searching for in practice.


This introductory course on algorithms and complexity aims at teaching the basic knowledge about the design and (theoretical) analysis of algorithms. One goal is to provide the necessary background about fundamental algorithmic concepts such as greedy algorithms or dynamic programming that will allow the participants to practically address the various algorithmic problems they might encounter in the future. The other aspect of the lecture is to understand the basics behind algorithm complexity theory and to learn how to prove that a certain problem is (likely) hard to solve and no efficient algorithm can be expected to exist.


The lecture consists of both theoretical and practical parts, with lectures and exercises intertwined. Additional (graded) home exercises provide an additional opportunity to consolidate the learned ideas.


The main topics of the lecture are:

  • Data structures
  • Sorting
  • Recursive algorithms
  • Greedy algorithms
  • Dynamic programming
  • randomized algorithms and blackbox optimization
  • complexity theory


The lecture is given by Dimo Brockhoff from September till November 2019 in a total of 8x3hrs.



In case you are interested in pursuing the topic during a Master's thesis project, please see this list of thesis projects.



Dimo Brockhoff
E-Mail: dimo.brockhoff@inria.fr
Address: Randopt team
Inria Saclay - Ile-de-France
CMAP UMR 7641 École Polytechnique CNRS
Route de Saclay

91128 Palaiseau
France
Last updated: Tue, 10 Sep 2019 15:06