• Niveau d'étude

    BAC +3

  • ECTS

    3 crédits

  • Composante

    Sciences économiques, gestion, mathématiques et informatique

  • Volume horaire

    33.0h

  • Période de l'année

    Enseignement cinquième semestre

Description

Le but de ce cours est d’appréhender des éléments d’algorithmiques plus avancés en abordant deux aspects : d’une part, les notions de complexité et d’autre part, des structures de données avancées.
Nous abordons les notions de complexité en comparant différentes vitesses d’exécution pour différents algorithmes de tris. Les notions de complexité sous linéaire, linéaire, log linéaire, quadratique sont abordée ainsi que les notions de complexité dans le pire cas et les notions de complexité moyenne.
Nous abordons aussi les notions de complexité exponentielle sur un certain nombre de problèmes classique (“subset sum” par exemple) et abordons aussi les techniques qui permettent de parcourir l’ensemble des solutions d’un tel problème.
Enfin dans un troisième temps, nous abordons des structures de données avancées telles que les tas, les tables de hachage, et enfin les structures d’arbres.

Lire plus

Objectifs

Programme :

  • Algorithme de tris comparaison de complexité
  • Problème avec complexité exponentielle
  • Manipulation de données avancées
Lire plus

Évaluation

Évaluation en session 1 pour les étudiants inscrits en formule standard de contrôle de connaissances : des épreuves de contrôle continu pendant le semestre (50% de la note) et un examen terminal écrit de 2h (50% de la note).

Évaluation en session 1 pour les étudiants inscrits en formule dérogatoire de contrôle de connaissances : un examen terminal écrit de 2h (100% de la note).

Évaluation en session 2 : un examen terminal écrit de 2h (100% de la note).

Lire plus

Heures d'enseignement

  • MI-Algorithmique et programmation S5CM16,5h
  • MI-Algorithmique et programmation S5TD16,5h

Compétences visées

  • Connaitre les concepts liés à la complexité.
  • Savoir ce que signifient une complexité linéaire, sous linéaire quadratique et plus généralement polynomiale.
  • Appréhender les problèmes avec un nombre exponentiel de solutions.
  • Connaitre des structures de données complexes.
Lire plus

Bibliographie

  • Initiation à l'algorithmique et à la programmation en C, Remi Malgouyres, Rita Zrour, Fabien Feschet. Edition Dunod
  • Algorithmique, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest Clifford Stein, Edition Dunod
Lire plus