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.