Algorithmique et Structures de données

Algorithmique et Structures de données
Licence MathématiquesParcours Mathématiques et physique approfondies - Magistère

Description

L'objectif final de cet enseignement est de d'apprendre à construire, à partir d'un algorithme, les structures de données qui permettront de mettre en œuvre cet algorithme. Il s'agit également d'évaluer et de comprendre l'effet de l'utilisation d'une structure de données spécifique sur l'efficacité de l'algorithme.

Compétences visées

Les compétences sont celles qu'il faut développer pour la construction d'un programme informatique

- l'élaboration de l'algorithme (déjà abordé au semestre précédent) ;

- le choix de la représentation des données ;

- l'énumération des interactions qu'on doit pouvoir exercer sur la structure de données ;

- en déduire les entêtes de fonctions nécessaires pour réaliser ces interactions ;

- le choix de la structure de données abstraite la mieux adaptée à l'algorithme ;

- le choix de la structure de données concrète adéquate ;

- l'évaluation de l'impact de cette structure de données sur la complexité de l'algorithme ;

- la mise en oeuvre de ces étapes en langage Python

Syllabus

Définition des qualités d'un programme : modularité, lisibilité, robustesse et fiabilité. Définition de structures de données linéaires abstraites comme les piles, les files et les listes. Résolution de problèmes concrets et choix d'une structure de données.