- apprendre/index.md : présentation du site de jeux et de cours, et du parcours - apprendre/semaine-college-lycee.md : cinq journées (Linux, terminal, Bash, Python, Git/Forgejo) avec une enquête en fil rouge — brouillon à valider - apprendre/terminal-se-reperer.md : fiche de référence du terminal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019V4mhmHoJD3b8YfQy249dC
11 KiB
| description |
|---|
| Programme d'une semaine d'initiation (5 jours de 6 h) pour des élèves de 3e et de Terminale — Linux, terminal, Bash, Python, Git et Forgejo, avec une enquête en fil rouge. |
Une semaine pour découvrir Linux — 3e et Terminale
Cinq journées de six heures pour faire découvrir à des élèves ce qui se cache derrière les serveurs, les sites web et le code : Linux, le terminal, Bash, Python, Git et la forge Forgejo. Le même déroulé sert pour les deux niveaux ; ce qui change, c'est la profondeur.
!!! warning "Brouillon à valider" Ce programme est une première proposition. Les points encore ouverts sont listés en fin de page, dans À décider avant la semaine.
Les principes
Alterner toutes les 45 minutes. Une journée de 6 h devant un écran ne tient pas sans changer de forme. Chaque demi-journée enchaîne un cours court (sur le site), un jeu, de la pratique sur un vrai terminal, et si possible une activité débranchée.
Un fil rouge : l'enquête. Lundi matin, le site du club informatique d'un lycée imaginaire a été modifié pendant la nuit. Chaque après-midi, les élèves avancent dans l'enquête sur les vrais postes Linux de la salle, avec les commandes apprises le matin. Vendredi, une épreuve finale en équipes désigne le coupable et remet le site en état.
Les outils :
| Outil | Rôle |
|---|---|
| dynamic.alpinux.org | Cours avec terminal d'essai intégré, jeux, quiz. Rien à installer. |
| Les postes Linux de la salle | La pratique pour de vrai, et l'enquête. |
| Ce wiki | Les fiches de référence, et ce programme. |
| La forge d'Alpinux | Vendredi : publier son travail et collaborer. |
| Un carnet de bord papier | Une page par jour : ce que j'ai appris, une commande à retenir, une question. |
Le déroulé type d'une journée
| Horaire | Durée | Activité |
|---|---|---|
| 9 h 00 | 15 min | Rappel de la veille : quiz éclair au tableau, ou une commande « mystère » à deviner |
| 9 h 15 | 45 min | Cours sur le site, avec le terminal d'essai |
| 10 h 00 | 30 min | Jeu sur le site |
| 10 h 30 | 15 min | Pause |
| 10 h 45 | 75 min | Pratique sur le vrai terminal, en binômes |
| 12 h 00 | Repas | |
| 13 h 30 | 15 min | Activité débranchée, pour se remettre en route |
| 13 h 45 | 90 min | Enquête : le chapitre du jour |
| 15 h 15 | 15 min | Pause |
| 15 h 30 | 45 min | Approfondissement, différent selon le niveau |
| 16 h 15 | 15 min | Bilan et carnet de bord |
Lundi — Linux et le terminal
Objectif du jour : savoir ce qu'est Linux, se repérer dans l'arborescence et s'y déplacer au clavier.
- Accueil (30 min) : qui est Alpinux, ce qu'est un logiciel libre, où se trouve Linux sans qu'on le voie (téléphones Android, box Internet, serveurs, voitures, la Station spatiale…).
- Débranché — l'arbre humain : chaque élève porte une étiquette de dossier (
/,home,alex,etc…) et tient l'épaule de son « parent ». Un élève-curseur se déplace selon les commandescdlancées par la classe. Chemins absolus et relatifs se comprennent dans l'espace avant de se comprendre à l'écran. - Site : jeu Où range-t-on quoi ?, puis cours Le terminal : se repérer et se déplacer et jeu Premier jour sur le serveur.
- Vrai terminal : ouvrir un terminal (Ctrl + Alt + T), les trois défis de fin de cours, explorer son dossier personnel. Fiche : Le terminal.
- Enquête, chapitre 1 — L'alerte : le dossier de l'enquête apparaît sur les postes. Le
premier message est caché quelque part :
ls -a,cd,cat.
| 3e | Terminale | |
|---|---|---|
| Approfondissement | Course d'orientation dans l'arborescence : trouver des fichiers à partir d'indices (« je suis un réglage du réseau… ») | Comment Linux démarre : noyau, /boot, /proc, PID 1 ; explorer /proc/cpuinfo et /proc/meminfo |
Mardi — Fichiers, droits et recherche
Objectif du jour : créer, déplacer et supprimer des fichiers, comprendre les droits, et retrouver une information dans une montagne de texte.
- Site : jeu Préparer un déploiement, puis rwx : le jeu des permissions.
- Vrai terminal :
mkdir,cp,mv,rm, les redirections>et>>, et un premier éditeur de texte dans le terminal, nano. - Débranché — le pipe humain : une file d'élèves se passe un paquet de cartes. Le premier
ne garde que les cartes rouges (
grep), le suivant les trie (sort), le dernier les compte (wc -l). C'est exactement ce que fait|. - Enquête, chapitre 2 — Les morceaux : le message du pirate est découpé en plusieurs
fichiers à rassembler (
cat,>), l'un d'eux est verrouillé (chmod), et un indice se cache dans un long journal (grep).
| 3e | Terminale | |
|---|---|---|
| Approfondissement | Défi « ménage » : ranger un dossier en désordre dans des sous-dossiers par type de fichier | find, et les enchaînements grep … | sort | uniq -c | sort -n sur un vrai journal |
Mercredi — Bash : faire travailler l'ordinateur à sa place
Objectif du jour : écrire un script, c'est-à-dire une suite de commandes que l'on peut relancer à volonté.
- Cours : la ligne
#!/bin/bash,chmod +x, les variables,echo,read,if,for. - Site : jeux Sous le capot et, pour les Terminale, Incident à 3 h du matin.
- Débranché — le robot idiot : un élève joue le robot qui exécute à la lettre un « script » écrit par un autre groupe pour, par exemple, faire un sandwich. Les bugs apparaissent tout seuls, et l'on comprend pourquoi un programme doit être précis.
- Enquête, chapitre 3 — Le script du pirate : un script laissé sur le serveur. Il faut le lire sans le lancer, comprendre ce qu'il fait, puis écrire son propre script pour décoder le message qu'il a chiffré.
| 3e | Terminale | |
|---|---|---|
| Script du jour | Un quiz interactif en Bash avec read et if, à faire passer au voisin |
Un script de sauvegarde qui prend des arguments ($1), vérifie les erreurs ($?) et date ses archives |
| Approfondissement | Commandes « pour le plaisir » si elles sont installées : figlet, cowsay, sl |
Processus et signaux : ps, kill, top ; lien avec le thème « processus » de NSI |
Jeudi — Python
Objectif du jour : écrire et lancer un programme Python depuis le terminal, puis s'en servir comme outil.
Le wiki contient déjà un cours complet de Python pour débutants : la journée s'appuie sur ses chapitres plutôt que de tout réécrire.
- Lancer Python : l'interpréteur interactif
python3, puis un fichier.pyécrit avec nano et lancé avecpython3 mon_programme.py. - Enquête, chapitre 4 — Les traces : un journal de connexions de plusieurs milliers de lignes. Écrire un programme Python qui compte les connexions par adresse et par heure, pour trouver quand le pirate est entré.
| 3e | Terminale | |
|---|---|---|
| Notions | Variables, input, conditions, boucles : chapitres 01, 02 et 03 |
Fichiers, dictionnaires, CSV : chapitres 04 et 07 |
| Projet | Le jeu « devine le nombre », puis des dessins avec turtle |
Le même comptage qu'en Bash mardi, réécrit en Python : comparer les deux approches |
!!! tip "Pour les Terminale NSI"
Python est déjà le langage de NSI. L'intérêt de la journée n'est pas d'apprendre la
syntaxe, mais de l'utiliser hors de l'éditeur de l'école : depuis le terminal, sur
de vraies données, avec la bibliothèque standard (pathlib, csv, collections).
Vendredi — Git, Forgejo, et le dénouement
Objectif du jour : garder l'historique de son travail avec Git, le publier sur une forge, et travailler à plusieurs sur le même code.
- Débranché — la machine à remonter le temps : un texte écrit à plusieurs sur une feuille,
avec une photo prise à chaque étape. Revenir à la photo d'hier, c'est un
git checkout; la pile de photos, c'estgit log. - Git en local :
git init,git add,git commit,git log,git diff. Chacun versionne les scripts et programmes écrits pendant la semaine. - Forgejo : déposer ce travail sur la forge d'Alpinux, en explorer l'interface web, et proposer une modification sur le dépôt d'un camarade.
- Enquête, chapitre 5 — Le dénouement : épreuve en équipes, chronométrée. Le site du club est versionné avec Git : l'historique des commits révèle qui l'a modifié et quand. Il faut identifier le coupable, croiser avec les indices des jours précédents, puis remettre le site en état en revenant à une version saine.
- Clôture (45 min) : remise des diplômes, ce qu'on retient de la semaine, et la suite (réunions Alpinux, install parties, spécialité NSI).
| 3e | Terminale | |
|---|---|---|
| Forgejo | Modifier un fichier depuis l'interface web et ouvrir une pull request | Branches, pull request depuis le terminal, résolution d'un conflit provoqué exprès |
Ce qu'il faut préparer
Sur les postes, à vérifier en amont :
- un terminal accessible aux élèves, et les commandes
git,python3,nano,tree; - facultatif, pour le plaisir :
figlet,cowsay,sl; - l'accès à
dynamic.alpinux.orget àgitea.alpinux.orgdepuis le réseau de l'établissement (certains filtres bloquent les forges) ; - le dossier de l'enquête, installé par un script à lancer sur chaque poste.
Pour la salle : un vidéoprojecteur, des étiquettes et des cartes pour les activités débranchées, un carnet de bord par élève, des diplômes à imprimer.
À décider avant la semaine
| Question | Pourquoi c'est important |
|---|---|
Les comptes Forgejo des élèves. Comptes AlpID nominatifs, comptes anonymes de classe (eleve01, eleve02…), ou forge installée localement pour la semaine ? |
Les élèves sont mineurs : la solution la plus simple côté données personnelles est celle des comptes anonymes, créés à l'avance et supprimés après la semaine. |
| Le nombre d'élèves et de postes. | Le travail en binômes demande un poste pour deux au minimum. |
La distribution installée et les droits. Peut-on installer des paquets ? Les élèves ont-ils sudo ? |
Sans droits d'installation, il faut vérifier toute la liste ci-dessus avant le lundi. |
| Les horaires exacts de l'établissement. | Le déroulé type se décale facilement, mais les pauses et le repas sont imposés. |
| Les scores sur le site. | Ils ne s'enregistrent qu'avec un compte AlpID. Sans compte, on peut faire un classement par équipe à la main, à partir des écrans de fin de partie. |