18 - Projets en binômes⚓︎
Consignes⚓︎
Par groupes de deux élèves, vous réaliserez un projet en Python. Ce projet sera rendu dans sa totalité au plus tard le samedi 28 mars 2025 à 23h59.
Vous devrez produire :
-
un cahier des charges simple, à rendre à la fin de la séance du Mercredi 4 mars (exemple simple ici)
-
un fichier expliquant les choix de variables pertinents, et le découpage en fonctions, à rendre la fin de la séance du Mercredi 11 mars (exemple simple ici)
-
le code source enregistré dans un ou plusieurs fichiers (dont au moins un fichier .py ). Tous ces fichiers seront partagés sur GitHub. Une première version du code-source devra être rendue avant le samedi 21 mars.
-
une présentation de type Google Slides présentant les différentes phases du projet, la répartition de la charge de travail, les difficultés rencontrées, les supports collaboratifs utilisés, les prolongements éventuels, etc. ; des copies d'écrans lisibles de parties essentielles du code y seront intégrées ;
Chaque groupe exposera son projet au reste de la classe pendant dix minutes (en s'appuyant sur le diaporama rendu, et en faisant une courte démonstration du projet). Suite à cela, quelques questions relatives au programme ou à la façon dont le mini-projet a été mené pourront être posées. La production écrite comme l’exposé oral seront évalués et pris en compte dans la moyenne.
Vous veillerez à bien gérer le temps, et à bien répartir le travail dans le groupe.
Lors des présentations des projets, les autres élèves prendront des notes.
Exemples de thèmes proposés à titre indicatif :⚓︎
- Jeu du pendu
- Morpion
- Cryptographie
- Calculatrice
- Générateurs d’anagrammes d’un mot
- Aide au SCRABBLE
- Jeu de dés (type 421, ...)
- Jeu d’aventures (textuel)
- Pierre, feuille, ciseaux
- Bataille navale
- Quel est ce nombre ? ("c'est plus, c'est moins")
- Écritures binaire, héxadécimale, décimale, etc.
- Solveur / générateur de Sudoku
- Vérification d’un mot de passe
- Générateur de mots de passe
- Générateur de figures sur Turtle
- Poésie combinatoire
- Générateur d’exercices de calcul mental
- Jeu des multiples et diviseurs
- Générateur de QCM
- Générateur de fiches d’exercices ou de révision
- Convertisseur d’unités et de monnaies
Votre choix peut se porter sur un thème totalement différent de ceux proposés ci-dessus. Il devra, en revanche, réinvestir une grande partie des éléments du langage Python vus en cours (types de base, tests conditionnels, boucles, fonctions, listes, tuples, dictionnaires).
Il est possible d'intégrer une interface graphique, mais il faut avoir conscience que cela prend du temps à assimiler et à mettre en place, et que cela ne doit pas vous empêcher de mener à bien le projet avec un rendu fonctionnel. Il n'est pas nécessaire d'intégrer une interface graphique pour développer un projet de qualité.
Vous devez valider votre idée avec le professeur avant de démarrer le projet.
Conseils⚓︎
- Vous prendrez le temps de planifier les différentes étapes de votre travail, d’identifier et de répartir le rôle de chacun tout au long du projet.
- Vous utiliserez Github comme outil collaboratif. Les étapes devront être marquées par des "commits", ainsi la progression du travail devra apparaître dans les différentes versions du document (pas de travail sur un autre éditeur pour ensuite tout copier-coller sous GitHub).
- Si vous en avez le temps, vous pourrez utiliser une interface graphique pour rendre votre programme plus agréable à utiliser mais cela ne doit cependant pas nuire à la qualité et à la cohérence de votre programme principal.
- Chacun des membres du groupe devra être capable d’expliquer chaque partie du programme et de justifier le choix de chaque type ou structure de données par exemple.
- Chaque projet devra faire preuve d’originalité et de personnalisation dans son contenu et sa présentation.
- La récupération de projets existants, ou l'utilisation d'une IA, seront sanctionnés.
Fiche d'évaluation de la présentation
Pour utiliser GitHub :⚓︎
Guide d'utilisation de GitHub Codespaces pour la collaboration
-
ouvrir Chrome
-
cliquer sur le lien suivant :
https://classroom.github.com/a/Ce5GP7qz
-> ouvrir votre compte github, en utilisant votre adresse email csilyon.fr. -
Au besoin, recliquer sur le lien pour arriver sur la bonne page
cliquez sur votre nom
Suivant si vous êtes le premier de votre binôme à arriver à cette étape ou non :
Créer un nom de groupe : sur le modèle Groupe01-prenom1-prenom2
Ou rejoindre le groupe créé par votre camarade -
Vous arrivez sur le dépôt commun du projet
Cliquer sur "Open with github codespaces"
L'éditeur s'ouvre (et peut mettre un peu de temps à ouvrir le projet) -
Dans codespace, si ce n'est pas déjà le cas, ajouter le port 6080. Si vous travaillez avec une interface graphique, vous pourrez la faire apparaître dans une autre page du navigateur, ou dans une partie de l'éditeur, en allant sur l'onglet "Ports" de la console, et en cliquant sur l'une des icônes associées en port 6060 ...

-
Parcourez les fichiers, il y a un exemple de programme .py. Pour pouvoir l'exécuter, importer l'extension python (soit directement en bas à droite, le navigateur affiche le message "Voulez-vous insatller l'extensions Python ?", soit en allant la chercher dans extensions)
-
Notez bien que toute modification que vous souhaitez conserver doit être validée (= commit) et synchronisée (= push)
Notez également que, lorsque votre camarade a effectué des modifications sur le projet, vous devez commencer par un "pull" pour récupérer la dernière version (dans "contrôle de code source" + "... autres actions") -
Attention à l'arborescence des fichiers du projet GitHub fourni :
- Ne pas toucher à .devcontainer et .vscode
- A la racine du projet, vous avez :
- le fichier README.md avec le planning
- un fichier requirements.txt dans lequel vous pouvez ajouter des bibliothèques python à installer (pygame, pillow, etc).
- le fichier Cahier_des_charges.md à compléter
- le fichier Variables_et_fonctions.md à compléter
- Dans le répertoire doc, vous avez :
- un document de rappel de l'utilisation de GitHub et CodeSpaces
- les exemples de cahier des charges et document sur le choix des variables et des fonctions
- le code source doit être saisi dans le fichier main.py, dans le répertoire src. Éventuellement, il est possible d'ajouter d'autres fichiers dans ce même répertoire.
Planning de rendu par étapes :⚓︎
-
rendu n°1 : cahier des charges à la fin de la séance du Mercredi 4 mars
-
rendu n°2 : choix des variables et découpage en fonctions à la fin de la séance du Mercredi 11 mars
-
rendu n°3 : première version du code source avant le samedi 21 mars 23h59
-
rendu n°4 : tout le projet (code + diaporama) avant le samedi 28 mars 23h59
-
passage à l'oral semaine du 30 mars au 3 avril
Planning du travail :⚓︎
-
semaine du 23 au 27 février :
- choisir un binôme
- rejoindre le "devoir" GitHubClassroom.
- créer un document Google Slides (par un des élèves), le partager avec l'autre élève du binôme, et le partager avec le prof (anne-aymone.bourguin@csilyon.fr)
- ajouter un lien vers le diaporama Google Slides (actuellement vide) dans le fichier Cahier_des_charges.md
Puis se mettre au travail :
- définir le projet
- choisir l'apparence (interface graphique ou mode texte en console...)
- choisir une version "de base" du projet sur laquelle se concentrer au départ, puis les améliorations qui pourront être ajoutées.
- répartir le travail entre les élèves
-
semaine du 2 au 6 mars : 4h
- avancer le projet
-
à la fin de la séance du Mercredi 4 mars : rendu n°1 : Cahier_des_charges.md
Remarque : au fur et à mesure de sa réalisation, le projet pourra évoluer de manière différente de la description du cahier des charges, mais il faut quand même essayer de le décrire précisément.
-
semaine du 9 au 13 mars : 4h
- avancer le projet
- à la fin de la séance du Mercredi 11 mars : rendu n°2 : choix des variables et découpage en fonctions
- une répartition du travail entre élève peut correspondre, par exemple, à travailler séparément sur des fonctions dont le rôle a été bien défini ensemble à l'avance
-
semaine du 16 au 20 mars : 4h
- finir au maximum le code
- avant le samedi 21 mars 23h59 : rendu du code-source
-
semaine du 23 au 27 mars : 4h
- préparer le diaporama, préparer la présentation à 2 en équilibrant le temps de parole
- possibilité de corriger le code-source ou d'apporter encore des améliorations, sans en changer toute la structure
- avant le samedi 28 mars 23h59 : rendu du code-source
-
semaine du 30 mars au 3 avril :
-
présentation orale des projets, par binôme
Temps de parole : 10 minutes,
démonstration maximum 2 minutes
temps de questions maximum 10 minutes
-