--- title : TP - Structure de données linéaire - Pile et File author : TODARO Cédric et BERTRAND Benjamin date : 06 juin 2021 --- # Résumé du projet Cette activité a pour objectif de vous faire travailler avec les structures de données de type **pile** et **file**. Les élèves sont par groupe de deux et réaliseront le projet en **pair programming**. Elle se déroule en 2 temps : - Élaboration des classes ```Pile``` et ```File``` sous forme d'un module à importer - Choix et réalisation d'un projet choisi parmi deux avec la contrainte d'utiliser une pile ou une file. Ce TP se déroulera sur 3 semaines à raison de 1h par semaine et devra être complété par un travail personnel de la part des élèves si le besoin s'en fait sentir. En parallèle de ce projet, on pourra par exemple travailler sur les autres structures de données. # Étapes ## Étape 1: Compléter le module implémentant une pile et une file Dans le dossier ```Pile_file```, on retrouve les squelettes des classes Pile et File à compléter en respéctant les exemples donnés dans les docstrings. Les élèves pourront testé leur code avec ``` pytest --doctest-modules ... ``` ## Étape 2: Projet ### Blackjack Les consignes et le squelette du programme se trouve dans le dossier ```blackjack```. Pour allez plus loin, on pourra pousser les élèves à faire une sous classe de Player pour coder la stratégie d'une joueur. ### Maze Les consignes et le squelette du programme se trouve dans le dossier ```maze```. # Déroulement de la séquence L'enseignant commence à présenter les concepts de **pile** et de **file**. Les élèves ont ensuite 15 minutes sans avoir le droit de toucher un clavier pour choisir une projet et reflechir sur papier ou à l'oral à la façon de compléter le code pour les classes Pile et File. A la suite de ce temps de prise en main, les élèves réalise les deux étapes en paire-programming. Toutes les 10minutes, ils échangent celui qui a le clavier. Celui qui a le clavier peut coder tandis que l'autre commente, accompagne ou refléchit à la suite. # Pré-requis - Avoir au préalable travaillé sur les classes et avec tkinter pour le projet Maze. - Avoir installé ```pytest``` et ```NSI_Bertrand``` sur les postes informatiques.