Niveau d'étude
BAC +2
ECTS
4,5 crédits
Composante
Sciences économiques, gestion, mathématiques et informatique
Volume horaire
49,5h
Période de l'année
Enseignement troisième semestre
Description
Ce cours prolonge les enseignements d’algorithmique et de programmation en étudiant la manière dont les données peuvent être organisées pour être traitées efficacement. Il introduit les structures de données comme des choix de conception permettant de représenter un problème, de faciliter certaines opérations et d’améliorer les performances d’un programme.
Les structures étudiées peuvent inclure, selon les besoins du cours, des structures séquentielles comme les vecteurs, les listes, les piles ou les files, ainsi que des structures arborescentes comme les arbres binaires de recherche ou les tas. D’autres structures pourront également être abordées afin d’illustrer les liens entre représentation des données, opérations disponibles et complexité algorithmique.
Le cours met l’accent sur la distinction entre type abstrait, interface et implémentation. Les étudiants apprendront à comparer plusieurs représentations possibles d’un même problème, à justifier leurs choix et à produire des programmes corrects, lisibles et testés. Des outils fondés sur les LLM et les agents pourront également être utilisés pour assister la recherche d’information, l’écriture de code, la génération de tests ou la réalisation de projets, avec une attention particulière portée à la vérification des résultats obtenus.
Objectifs
À l’issue du cours, les étudiants devront être capables de :
- Comprendre le rôle des structures de données dans la conception d’un programme.
- Distinguer un type abstrait de données de ses implémentations possibles.
- Manipuler différentes familles de structures, séquentielles, chaînées ou arborescentes.
- Implémenter des opérations fondamentales comme l’insertion, la suppression, le parcours et la recherche.
- Comparer plusieurs structures selon leurs coûts en temps, en mémoire et leur adéquation au problème.
- Choisir une représentation adaptée à une situation donnée.
- Analyser la correction et l’efficacité d’un algorithme utilisant une structure de données.
- Utiliser des LLM et des agents comme outils d’assistance à la compréhension, au codage et au test.
Évaluation
Modalités : Mixte : CC + CT
SESSION 1 :
Contrôle Continu
• Type : Écrit
• Durée : --
• Précisions : Le contrôle continu représente les 50 % de la note finale, et comprend :
► un devoir écrit ou sur machine comptant pour 25 %,
► un projet comptant pour 15 %,
► ainsi qu’une évaluation du présentiel, de l’implication et des activités réalisées en TD ou en TP comptant pour 10 %.
Contrôle Terminal
• Type : Écrit
• Durée : 1h30
• Précisions : L’examen final représente 50 % de la note finale.
Régime Dérogatoire
• Type : Écrit
• Durée : 1h30
SESSION 2 :
• Type : Écrit
• Durée : 1h30
► Les différentes épreuves écrites, qu’il s’agisse de l’examen final, du devoir, de l’examen terminal en régime dérogatoire ou de la seconde session, ont une durée indicative de 1h30, susceptible d’être ajustée en fonction des contraintes pédagogiques, matérielles ou logistiques, dans le respect des M3C applicables. Les absences, les aménagements éventuels et les autres situations particulières sont traités conformément aux M3C en vigueur.
Utilisation de l'intelligence artificielle :
Pour cet EC, l’usage de l’intelligence artificielle (IA) générative pour aider à la réalisation des travaux soumis à évaluation est interdite, sauf éventuelles exceptions dûment spécifiées par l’enseignant responsable du cours. Dans le cadre de ces éventuelles exceptions, les principes suivants doivent être respectés.
Les résultats fournis par l’IA doivent constituer un matériau pour votre réflexion, et toujours faire l’objet d’une réappropriation et d’une reprise critique.
Tous les usages doivent être documentés dans une section dédiée à la fin de votre travail, à l’exception des usages de recherche web augmentée, de correction orthographique et syntaxique. Cette section doit permettre à votre lecteur d’évaluer la manière dont vous avez travaillé avec l’IA et mobilisé cette ressource au service d’un travail personnel.
L’intégration directe de contenus engendrés par l’IA doit être faite sous le régime de la citation.
Toute utilisation non déclarée ou non autorisée d’un outil d’IA pourra être considérée comme un manquement aux règles d’intégrité académique.
Il est également demandé aux étudiants de ne pas transmettre à des outils d’IA des données confidentielles ou personnelles concernant l’université, les enseignants, les entreprises partenaires ou d’autres étudiants.
Heures d'enseignement
- CMCM16,5h
- TDTD33h
Pré-requis obligatoires
MI-Informatique S2
Compétences visées
- Concevoir des programmes reposant sur une organisation pertinente des données.
- Comprendre les notions de type abstrait, d’interface et d’implémentation.
- Mettre en œuvre plusieurs structures de données classiques ou spécialisées.
- Programmer et tester les opérations associées à ces structures.
- Utiliser la récursivité lorsque la structure du problème s’y prête.
- Évaluer les compromis entre simplicité, lisibilité, temps d’exécution et occupation mémoire.
- Justifier le choix d’une structure de données en fonction du contexte.
- Mobiliser des outils d’IA générative pour assister le développement, sans déléguer la compréhension ni la validation du code.
