Algorithms and programming


This course presents the fundamentals of programming and introduces algorithms in a variety of fields such as graphs, numerical optimisation methods, sorting methods and dynamic programming. Each method is illustrated with a computer program in the Python language, the concepts of which are also introduced during the course. Each session is divided into two parts. The first part presents the Python language, while the second is devoted to studying an algorithm.



  1. Data manipulation
  2. Loops, tests, functions
  3. Classes and object-oriented programming
  4. Exceptions
  5. Modules
  6. Graphical user interfaces


  1. Sorting algorithms
  2. Queues, computer simulation
  3. Shortest path in a graph
  4. Shortest path linking all the nodes in a graph, Kohonen maps
  5. Edit distance, the distance between two sequences
  6. Numerical optimisation, BFGS and DFP algorithms
  7. Clustering using the k nearest neighbours (k-NN), optimising the search for the nearest neighbour
  8. Hidden Markov models and the expectation-maximisation (EM) algorithm


Apprentissage de la programmation, Gérald Swinnen
Précis de recherche opérationnelle, Robert Faure, Bernard Lemaire, Christophe Picouleau
Problem Solving with Algorithms and Data Structures, Brad Miller, David Ranum