M1 - Semestre 1 · Avancé

Structures de données avancées

Code UE
SMINF1E5
ECTS
3 ECTS
Volume horaire
10h CM - 8h TD - 12h TP
Responsable(s)
Parcours
Algorithmiques et Systèmes Intelligents
Type de carte
UE de la carte informatique
Prérequis
Non renseigné

Description du cours

Vous vous êtes déjà demandé.e comment fonctionnent les listes en python, les tableaux associatifs en php ? Dans ce cours, nous allons étudier les mécanismes à l’oeuvre dans les structures apparaissant dans vos langages de programmation préférés. Plus précisément, vous allez étudier et coder, en commençant de zéro,

  • les tableaux dynamiques,
  • les tables de hachages,
  • les files de priorité,
  • et d’autres structures un peu moins connues, comme l’Union Find ! En comprenant le fonctionnement de ces structures de données, vous serez en mesure de sélectionner la plus appropriée selon la situation, devenant ainsi une codeuse ou un codeur plus aguerri. Notamment, nous allons voir que des problèmes algorithmiques se résolvent de manière plus ou moins efficaces selon la structure choisie. En TD, nous essaierons de comprendre d’un point de vue théorique pourquoi les structures vues en cours sont efficaces. (La notion clé derrière s’appelle la complexité amortie.) De plus, nous nous demanderons comment choisir la structure de données la plus approprié selon un problème algorithmique donné. En TP, nous allons coder, en C, chacune des structures du cours.

Modalités d'évaluation

Session 1 :

  • Contrôle terminal (CT1) : documents non autorisées. La moitié du CT portera sur les problèmes vus en TD (comprendre les notions du cours, trouver la bonne structure pour un problème algorithmique donnée). L’autre moitié consistera à réécrire ce que vous avez fait en TP.
  • Note finale : celle du CT1.

Session 2 :

  • Contrôle terminal (CT2) : pareil que CT1.
  • Note finale : celle du CT2.