Session 1 : Notes du coach
Objectif de cette session
À la fin du checkpoint Basic, un ninja sait :
- Déplacer le panier horizontalement avec les flèches gauche et droite.
- Voir une étoile tomber du haut vers le bas de l’écran.
- Lire la fonction
update(), comprendre ce qu’elle contient et faire lui-même une petite modification (par ex. augmenter la vitesse).
Ce qui n’est pas attendu après la session 1 : tenir un score, la détection de collisions, des positions de départ aléatoires. Ça vient en session 2.
Le succès est modeste : le ninja fait tourner le jeu, comprend la structure du code et a envie de continuer la prochaine fois.
Préparation (30 min avant la session)
- Thonny portable sur USB : essentiel pour les portables sans droits admin. Prépare-le pour ne pas devoir chercher quand tu en as besoin.
- Tester le projecteur : vérifier la connexion, la résolution, le câble HDMI est là ? Teste ça avant que les ninjas arrivent.
- Le ZIP du starter prêt à deux endroits : une clé USB partagée et le site (
/sessions/python/01-catch-the-stars/starter.fr.zip). Le wifi peut être lent ; l’USB est la solution de secours la plus sûre. - Lancer toi-même le starter une fois sur le portable de la salle dojo : comme ça tu sais si pgzero y est correctement installé et il n’y a pas de surprises.
⚠️ Risque : c’est la session d’entrée
C’est la session avec le plus grand risque de problèmes techniques. Compte des problèmes d’installation sur environ 30 % des portables. C’est normal et ce n’est pas une raison de paniquer.
Comment limiter les dégâts :
- Pair programming quand l’installation échoue : laisse deux ninjas partager un portable. Ça marche étonnamment bien et ça favorise la coopération.
- Thonny portable sur USB comme solution de secours : pas besoin de droits admin.
- Limite de temps pour le dépannage d’installation : 15 minutes en tout. Ensuite, tu mets chaque ninja qui ne tourne pas encore en binôme avec quelqu’un qui tourne, et tu continues. Ne laisse pas les problèmes d’installation ralentir tout le groupe.
- Pgzero via Thonny : Tools → Manage packages → cherche
pygame-ce→ install, puispgzero. Ça prend 1 à 2 minutes, mais ça peut bloquer sur un wifi lent. Garde une version USB sous la main comme alternative. L’installation depgzerobloque sur Python 3.14 ou 3.15 ? Utilise alors le script d’installation en un clic ou mets Thonny sur Python 3.13 (voir Installer Thonny + Pgzero).
Répartition du temps (3 heures)
| Temps | Activité |
|---|---|
| 0:00 à 0:15 | Accueil, apprendre les prénoms, expliquer ce qu’est CoderDojo |
| 0:15 à 0:30 | Projecteur : explication de Pgzero et du code de départ |
| 0:30 à 2:00 | Travail en autonomie : checkpoints étape 1→2→3→4 |
| 2:00 à 2:30 | Buffer / stretch / expert + passer entre les tables |
| 2:30 à 2:45 | Showcase : chacun montre ce qu’il a fait |
| 2:45 à 3:00 | Cliffhanger + distribution des défis à emporter + rangement |
Le bloc buffer (2:00 à 2:30) est volontairement large. Utilise-le pour les ninjas bloqués, pour les défis stretch, ou pour aider en tête-à-tête. Pendant ce bloc, passe activement entre les tables. N’attends pas que quelqu’un lève le doigt.
Questions fréquentes
« Ma fenêtre s’ouvre et se ferme tout de suite »
WIDTH et HEIGHT ne sont pas en haut du fichier, ou ont été supprimés par accident. Fais regarder au ninja les premières lignes du code de départ et vérifie que les variables sont là.
« Le panier passe à travers le bord »
Bien vu ! Ce n’est pas un bug à corriger maintenant. C’est un défi. Demande : « Comment tu pourrais empêcher le panier de sortir de l’écran ? » Indice : regarde la valeur de basket.x et compare-la avec 0 et WIDTH. Exemple : if basket.x > 20.
« J’ai déjà tout fini, et maintenant ? » Renvoie le ninja vers les extensions « à emporter chez toi » de la page de la session, ou demande-lui d’aider un buddy. Les coaches peuvent aussi donner un défi stretch à l’oral.
« Pgzrun : command not found » Redémarrer Thonny après l’installation de pgzero règle ça la plupart du temps. Si ça ne marche pas, utilise Thonny portable de l’USB.
Indices pour Stretch et Expert
Donne des indices, pas du code complet. Le ninja doit réfléchir lui-même. Si quelqu’un est vraiment bloqué après plusieurs indices, tu peux le renvoyer vers solution/main.py pour la réponse complète.
Stretch : collision
star.colliderect(basket) renvoie True si les deux rectangles se chevauchent. Remets star.y = 0 aussi bien en cas de collision que quand star.y > HEIGHT, pour que l’étoile recommence à tomber.
Expert : score
Déclare global score en haut de update() avant de modifier score, sinon Python renvoie une UnboundLocalError. Mets screen.draw.text(f"Score: {score}", ...) dans draw(), pas dans update(). La fonction draw() est appelée à chaque frame et c’est le bon endroit pour tout ce qui apparaît à l’écran.
Script du cliffhanger
Lis ceci au groupe à la fin de la session :
« Aujourd’hui, tu as attrapé des étoiles. La prochaine fois, il y aura des choses qui RÉPLIQUENT. On les fait exploser, avec un VRAI SON. Et tu reçois ton propre vaisseau spatial. »
Pas de Dojo Defender aujourd’hui
La session 1 est volontairement centrée sur une seule chose : faire tourner et comprendre le premier jeu. Dojo Defender, le plus grand projet que les ninjas construisent au fil de l’année, ne démarre qu’en session 2. Ne l’introduis pas aujourd’hui.
Si un ninja demande pour Dojo Defender : « Le mois prochain. Aujourd’hui, on se concentre sur les bases. »
C’est un choix conscient : deux bases de code le premier jour, c’est trop. Le focus sur Catch the Stars donne aux ninjas une expérience de réussite sans les submerger.
Constats du pilote
(À remplir après le pilote (Task 20).)