ENSAE Paris - École d'ingénieurs pour l'économie, la data science, la finance et l'actuariat

Algorithms and programming

Objective

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.

Planning

PYTHON LANGUAGE test work

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

ALGORITHMS

  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

References

- 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