2022-2023/1NSI/00_Projets/index.rst

186 lines
7.1 KiB
ReStructuredText
Raw Normal View History

Projets
#######
:date: 2022-12-06
2023-04-06 07:54:26 +00:00
:modified: 2023-04-06
:authors: Benjamin Bertrand
:tags: Divers
:category: 1NSI
:summary: Projets avec les 1NSI
:slug: divers_1NSI
Le programme
============
- Une part de lhoraire de lenseignement dau moins un quart du total en classe de première doit être réservée à la conception et à lélaboration de projets conduits par des groupes de deux à quatre élèves.
- La gestion dun projet inclut des points détape pour faire un bilan avec le professeur, valider des éléments, contrôler lavancement du projet ou adapter ses objectifs, voire le redéfinir partiellement, afin de maintenir la motivation des élèves.
Du coup, on part sur une heure par semaine dédié au projet.
Organisation
============
Je m'inspire de la gestion de projet proposée par Jean-Luc Richter (je n'arrive pas à remettre la main sur l'article où il détaillait ça...).
Trimestre 1: présentation/vente du projet
-----------------------------------------
Les deux premières semaines sont consacrés à découvrir/chercher des projets déjà réalisé par d'autres élèves de première et à choisir un projet qui motive l'élève. Une banque à projets sourcées est constitué. Les groupes sont ensuite constitués en fonction des intérêts de chacun.
Les élèves ensuite se lancent dans la réalisation d'un site internet vantant/vendant leur projet. Ils peuvent promettre ceux qu'ils veulent tant pis s'il ne le réalise pas. Ils doivent faire un site qui claque le plus et qui donne envie de voir le projet réalisé.
Pour l'organisation, on a choisi d'utiliser un Kanban. Les séances projets commencent avec la lecture des taches déjà réalisées, en cours ou à faire. Ils peuvent ajouter d'autres. Puis ils sélectionnent les taches qu'ils vont réalisé pendant l'heure. Ces taches sont disposés sur le tableau dans les colonnes appropriés. Les élèves partent ensuite faire leur projet, en avançant les taches. A la fin, un bilan est réalisé et les taches mises à jour. Mon role ici est d'accompagner les élèves à écrire et sélectionner les taches puis de les garder le plus concentré possible sur ce qu'ils ont décidé de faire.
A la fin du trimestre, le site est déposé sur le serveur pour notation.
Barème:
- Présentation:
- Clareté /3
- Fait envie /2
- Technique
- Validité du code /2
- Mobilisation des outils étudiées en html et css /6
- Nouveau outils découverts /2
- Organisation
- autonomie dans le travail /2
- Collaboration dans l'équipe /2
- Précision des taches à réaliser /1
Trimestre 2: Première ébauche du projet
---------------------------------------
Le deuxième trimestre a pour but de réaliser une première version rustique du projet. Les élèves devront être capable de faire une démonstration.
On commence par une introduction à Pygame sur deux semaines. On verra plus tard pour une introduction à flask et javascript.
Introduction à Pygame: snake
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Les élèves travaillent sur `le programme draw.py <./draw.py>`_.
Ils doivent l'exécuter, commenter chaque ligne en expliquant ce qu'il s'y passe et se construire un mémo des fonctions de Pygame.
Ils sont très fortement invités à modifier le programme pour se l'approprier.
On coupera régulièrement la séance pour faire des petits bilans sur les questions intéressantes que se posent les élèves. Voici quelques sujets qui seront sans aucuns doutes traités :
- La couleur et le code RGB
- Le repère et les coordonnées dans Pygame
- Les coordonnées dans les fonctions pour tracer les éléments
- la gestion des évènements
.. image:: ./doc_pygame.pdf
:height: 200px
:alt: Documentation maison sur pygame
Le but est de refaire le `jeu snake <./snake.pdf>`_.
Ce projet est décomposer en étapes. Les premières sont à faire dans l'ordre mais on peut laisser à partir de l'étape 4 la liberté aux élèves d'ajouter des étapes ou de faire les étapes dans l'ordre qui leur convient le mieux.
.. image:: ./snake.pdf
:height: 200px
:alt: Propositions d'étapes pour réaliser snake
Pour les accompagner, on peut leur donner `ce modèle <./pygame_base.py>`_ pour commencer un projet Pygame.
Notation du projet Snake
.. list-table:: Notation
:header-rows: 1
* - Description
- Points
* - Qualité du code (lisibilité, nom explicite des variables, organisation...)
- 2
* - Utilisation de fonctions
- 1
* - Grille et éléments graphiques
- 2
* - Déplacement du serpent et respect des bordures
- 2
* - Nourriture et points
- 2
* - Serpent avec plus d'une case
- 1
Une "correction" et quelques éléments sur la géométrie de la fenêtre :
.. - `snake version avancé <./snake_corr.py>`_ (Il y a potentiellement encore des milliers de choses à ajouter !)
- `Explication sur la géométrie de la fenêtre <./snake_expl.pdf>`_
Introduction à Bottle
~~~~~~~~~~~~~~~~~~~~~
L'exercice 5 du `plan de travail sur l'interaction client/serveur <../05_Interaction_client-serveur/plan_de_travail.pdf>`_ est à faire par équipe de deux en mode pair programming (changement toutes les 10min). Le rendu est ensuite noté suivant les critères ci-dessous
.. list-table:: Notation
:header-rows: 1
* - Description
- Points
* - Qualité du code (lisibilité, nom explicite des variables, organisation, documentation...)
- 2
* - Découpage en fonctions élémentaires
- 2
* - Validité des chemins et requêtes adaptées
- 2
* - Bissextile et nombre de jours fonctionnent correctement
- 2
* - Ajout du CSS
- 1
* - Validité du code HTML
- 1
Trimestre 3: Version la plus aboutie possible du projet
-------------------------------------------------------
2023-02-24 14:03:33 +00:00
2023-04-06 07:54:26 +00:00
Cahier de bord
~~~~~~~~~~~~~~
Suivi du projet avec `un cahier de bord <./cahier_bord.md>`_ à compléter au fur et à mesure. Chaque séance sera conclue par un archivage sur le réseau de l'état du projet.
README
~~~~~~
Pendant les vacances de Pâques, les élèves sont invités à avancer leur projet. Ils devront en particulier rédiger un fichier README qui détaillera les points suivants
- Une courte description du projet avec un détail des librairies utilisées
- Une explication sur comment lancer le projet
- Une explication de trois points techniques résolus lors de la construction du projet.
Notation
~~~~~~~~
.. list-table:: Notation
:header-rows: 1
* - Catégorie
- Détails
* - Qualité du code (lisibilité, nom explicite des variables, organisation, documentation...)
- Lisibilité globale
* -
- Utilisation de fonctions, noms des variables
* -
- Organisation
* -
- Documentation interne des fonctions et commentaires
* - Explication (le README)
- Description du projet
* -
- Comment faire marcher le programme
* -
- Explication des points techniques
* - Organisation du travail
- Autonomie du groupe
* -
- Suivi des taches et dépôt du code
* -
- Situations particulières de travail
* - Le projet en lui-même (par des non-experts)
- Avancement global
* -
- Plaisir d'utilisation