Algorithmic and advanced programming

Ects : 5

Enseignant responsable :

Volume horaire : 36

Description du contenu de l'enseignement :

Explore advanced algorithmic design in the intensive course, Algorithms and Advanced Programming. Participants delve into cutting-edge concepts, optimization strategies, and intricate problem-solving methods, fostering a deep understanding of complex computational challenges. The program aims to equip individuals with the skills necessary to navigate the dynamic landscape of algorithmic innovation, making it a valuable experience for those seeking mastery in advanced computer science. Here is a possible list of contents, which might change according to the current trends or the lecturer's inclinations.

  • Greedy Algorithms and Matroids
  • Dynamic Programming
  • Graph Algorithms I: Efficient Problem Solving
  • Graph Algorithms II: Complex Problem Challenges
  • Computational Geometry
  • Stable Marriage
  • Introduction to Integer Programming

Pré-requis recommandés :

  • knowledge of Python
  • knowledge of basic algorithms (sorting, shortest paths algorithms, minimum spanning tree algorithms...)

Compétence à acquérir :

Develop proficiency in designing and implementing advanced algorithms

Mode de contrôle des connaissances :

  • A programming project during the semester
  • A final exam on paper

Bibliographie, lectures recommandées

  • Introduction to Algorithms, third edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. MIT Press.
  • Combinatorial Optimization, William Cook, William Cunningham, William Pulleyblank, Alexander Schrijver. Wiley.