Compare commits
2
Commits
aefde0b4f4
...
cad5cbedcf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cad5cbedcf | ||
|
|
33e683fd76 |
@@ -1,6 +1,6 @@
|
|||||||
# NSI Terminale - Lycée Charlotte Perriand
|
# NSI Terminale - Lycée Charlotte Perriand
|
||||||
|
|
||||||
[](LICENSE)
|
[](LICENCE.md)
|
||||||
[](https://jupyter.org/)
|
[](https://jupyter.org/)
|
||||||
|
|
||||||
Cours de **Numérique et Sciences Informatiques** pour les élèves de Terminale.
|
Cours de **Numérique et Sciences Informatiques** pour les élèves de Terminale.
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
# Révisions de rentrée : PERRIAND-7
|
||||||
|
|
||||||
|
Activités de reprise pour la rentrée de Terminale, après la coupure estivale.
|
||||||
|
Fil rouge unique : le réveil d'une station orbitale après deux mois d'hibernation.
|
||||||
|
|
||||||
|
| Fichier | Pour qui | Publié sur hub-docs |
|
||||||
|
|---|---|---|
|
||||||
|
| `README.md` | Élèves | oui (page d'index de la section) |
|
||||||
|
| `PERRIAND-7_Reveil_des_systemes.ipynb` | Élèves | oui (`NOTEBOOK_ALLOWLIST`) |
|
||||||
|
| `PERRIAND-7_CORRIGE.ipynb` | Professeur | non (aucun notebook Terminale hors allowlist) |
|
||||||
|
| `NOTES_PROF.md` | Professeur | non (`EXCLUDE_FILES`) |
|
||||||
|
| `_generateur.py` | Professeur | non (`EXCLUDE_FILES`, il contient le corrigé) |
|
||||||
|
|
||||||
|
Notebooks ouvrables sur [Basthon](https://basthon.fr), Jupyter ou VS Code.
|
||||||
|
Aucune bibliothèque externe, aucun fichier annexe.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Intention
|
||||||
|
|
||||||
|
Ces activités ne révisent **pas** le programme de Première pour lui-même : chaque notion
|
||||||
|
est choisie et cadrée pour ce qui arrive derrière en Terminale.
|
||||||
|
|
||||||
|
| Module | Notion révisée | Prépare |
|
||||||
|
|---|---|---|
|
||||||
|
| 1, Le réacteur | affectation, mutabilité, aliasing de listes | POO (attributs), listes chaînées |
|
||||||
|
| 2, Les protocoles | `return` vs `print`, paramètres, portée | **Récursivité**, Modularité |
|
||||||
|
| 3, Le balayage | `for` / `while`, accumulateur, `range(len(...))` | parcours d'arbres et de graphes |
|
||||||
|
| 4, La soute | indices, tranches, listes de listes, compréhensions | structures linéaires, tri fusion |
|
||||||
|
| 5, L'équipage | dictionnaires, `.get()`, dict de listes | **graphes** (liste d'adjacence), mémoïsation |
|
||||||
|
| 6, Sortie d'orbite | synthèse : parcours avec une pile, pile d'appels | Pile/File, **Récursivité** |
|
||||||
|
|
||||||
|
Le module 6 se termine sur un compte à rebours récursif à tracer à la main : c'est le
|
||||||
|
raccord direct avec le chapitre en cours.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Parti pris pédagogique
|
||||||
|
|
||||||
|
**Lire et réparer avant d'écrire.** Après deux mois d'arrêt, la page blanche bloque. Chaque
|
||||||
|
module suit donc la même montée : *diagnostic* (prédire la sortie sans exécuter), puis
|
||||||
|
*réparation* (code cassé à corriger), puis *production* (écrire), puis *bonus*.
|
||||||
|
Les diagnostics donnent aussi un repérage rapide de qui a réellement décroché.
|
||||||
|
|
||||||
|
**La difficulté monte, comme au bac.** Les derniers exercices de chaque module, et le
|
||||||
|
module 6 dans son ensemble, sont volontairement plus exigeants. C'est annoncé aux élèves
|
||||||
|
dès l'introduction du notebook : les dernières questions servent à voir jusqu'où vont les
|
||||||
|
meilleurs, ne pas les terminer n'est pas un échec.
|
||||||
|
|
||||||
|
**Auto-correction par `assert`.** Chaque production est suivie d'une cellule de tests qui
|
||||||
|
affiche `OK`. Les élèves avancent sans file d'attente devant le bureau, et ça amorce le
|
||||||
|
chapitre Modularité (jeux de tests). Tous les `assert` du corrigé ont été exécutés et
|
||||||
|
passent.
|
||||||
|
|
||||||
|
**Modules indépendants.** Chaque module s'ouvre sur une cellule **SECOURS** qui redéfinit
|
||||||
|
ses données. Un élève bloqué au module 2 peut sauter au module 5 sans rien casser : le fil
|
||||||
|
rouge est narratif, pas technique.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Conduite de séance
|
||||||
|
|
||||||
|
Compter **2 h** pour le parcours complet bonus inclus. Sur **1 h**, le noyau utile est :
|
||||||
|
|
||||||
|
- Module 1 : diagnostics 1.1 et **1.2** (l'aliasing, celui qui rapporte le plus)
|
||||||
|
- Module 2 : diagnostic 2.1 et réparation 2.2 (`print` vs `return`)
|
||||||
|
- Module 3 : production 3.4 (maximum à la main)
|
||||||
|
- Module 5 : production 5.3 (dictionnaire de comptage)
|
||||||
|
|
||||||
|
Les bonus (1.5, 2.5, 3.6, 4.5, 5.5) sont là pour occuper les rapides. 4.5 (fusion de deux
|
||||||
|
listes triées) et 6.1 (parcours en profondeur) sont les deux vrais morceaux.
|
||||||
|
|
||||||
|
**À faire au tableau plutôt qu'en autonomie :**
|
||||||
|
|
||||||
|
- **1.2 (aliasing)** : un schéma mémoire de deux flèches vers la même liste vaut mieux
|
||||||
|
qu'une explication écrite.
|
||||||
|
- **6.2 (compte à rebours)** : à tracer collectivement, c'est le pont vers la pile d'appels.
|
||||||
|
|
||||||
|
**Points de vigilance :**
|
||||||
|
|
||||||
|
- Le diagnostic **3.2** contient une boucle infinie. Elle est en bloc Markdown non
|
||||||
|
exécutable et signalée comme telle, mais prévenir à l'oral évite un Basthon figé.
|
||||||
|
- Le diagnostic **2.3** provoque volontairement une `UnboundLocalError`. Insister sur le
|
||||||
|
fait que la bonne réponse est le passage en paramètre, **pas** `global`.
|
||||||
|
- La réparation **4.2** (suppression pendant l'itération) est le plus difficile des
|
||||||
|
exercices non-bonus : leur faire d'abord exécuter le code cassé pour constater.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Régénérer les notebooks
|
||||||
|
|
||||||
|
Les deux notebooks sont produits par un script unique (énoncé et corrigé partagent la
|
||||||
|
même source, ce qui évite qu'ils divergent) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 _generateur.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Modifier un exercice dans `_generateur.py` puis relancer met à jour les deux notebooks.
|
||||||
|
|
||||||
|
Attention : `_generateur.py` contient le corrigé en clair, et `build_docs.py` publie les
|
||||||
|
fichiers `.py` comme ressources téléchargeables. Il est explicitement exclu du build
|
||||||
|
(`EXCLUDE_FILES`), tout comme le présent fichier. Ne pas le renommer sans mettre à jour
|
||||||
|
cette exclusion côté serveur.
|
||||||
|
|
||||||
|
---
|
||||||
|
*Lycée Charlotte Perriand, NSI Terminale, Licence CC BY-SA 4.0*
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,34 @@
|
|||||||
|
# Révisions de rentrée : PERRIAND-7
|
||||||
|
|
||||||
|
Activité de reprise, à faire en début d'année de Terminale.
|
||||||
|
|
||||||
|
La station orbitale PERRIAND-7 sort de deux mois d'hibernation et ses programmes de bord
|
||||||
|
ne répondent plus correctement. À vous de les réveiller, un module à la fois.
|
||||||
|
|
||||||
|
## Ce qu'on révise
|
||||||
|
|
||||||
|
| Module | Notion |
|
||||||
|
|---|---|
|
||||||
|
| 1. Le réacteur | variables, affectation, mutabilité |
|
||||||
|
| 2. Les protocoles | fonctions, paramètres, `return` |
|
||||||
|
| 3. Le balayage | boucles `for` et `while` |
|
||||||
|
| 4. La soute | listes, listes de listes |
|
||||||
|
| 5. L'équipage | dictionnaires |
|
||||||
|
| 6. Sortie d'orbite | synthèse |
|
||||||
|
|
||||||
|
Rien de nouveau : tout a été vu en Première. Mais chaque notion révisée ici resservira
|
||||||
|
directement cette année, en récursivité, en POO, sur les arbres et sur les graphes.
|
||||||
|
|
||||||
|
## Le notebook
|
||||||
|
|
||||||
|
[PERRIAND-7_Reveil_des_systemes.ipynb](PERRIAND-7_Reveil_des_systemes.ipynb)
|
||||||
|
|
||||||
|
Ouvrable sur [Basthon](https://basthon.fr), Jupyter ou VS Code. Aucune installation,
|
||||||
|
aucun fichier annexe. Chaque exercice est accompagné de ses tests : si `OK` s'affiche,
|
||||||
|
c'est gagné.
|
||||||
|
|
||||||
|
Les modules sont indépendants. Chaque module commence par une cellule SECOURS qui remet
|
||||||
|
en place ses données : vous pouvez passer au suivant sans avoir fini le précédent.
|
||||||
|
|
||||||
|
---
|
||||||
|
*Lycée Charlotte Perriand, NSI Terminale, Licence CC BY-SA 4.0*
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user