Projet Vacances - Mission 3 — L'algorithme du glacier
- il y a 6 jours
- 5 min de lecture
Dernière mise à jour : il y a 3 jours

Défi de l'été · Vendredi 14 août · 15 minutes en famille
Devant le glacier, il y a vingt-quatre parfums et un enfant qui hésite. Derrière vous, la file s'allonge.
Cette semaine, on transforme cette scène en jeu : comment retrouver un parfum choisi en secret, en posant le moins de questions possible ? La réponse tient en une idée — une bonne question élimine la moitié des réponses — et c'est celle qui permet à un ordinateur de reconnaître une photo de chat.
C'est la mission la plus légère de la série. Ni écran obligatoire, ni matériel : elle se joue en voiture, dans la file d'attente, ou justement devant le glacier. Bon week-end du 15 août à ceux qui prennent la route.
🐣 Petits Explorateurs · 5-6 ans
Devine mon parfum
Ce qu'il vous faut : rien du tout.
Mettez-vous d'accord sur les parfums qui existent dans ce jeu. Six ou huit suffisent : fraise, chocolat, vanille, citron, pistache, caramel. Nommez-les à voix haute, tous ensemble.
Vous en choisissez un dans votre tête. Votre enfant doit le trouver en posant des questions — mais uniquement des questions auxquelles on répond par oui ou par non.
Comptez les questions à voix haute. Une, deux, trois…
Inversez les rôles. Et rejouez : c'est en rejouant que ça devient intéressant.
Le moment qui compte. Au début, votre enfant va deviner : « C'est fraise ? » Non. « C'est chocolat ? » Non. Six questions pour six parfums, c'est long.
Alors soufflez-lui une autre sorte de question : « Est-ce que c'est un fruit ? » Une seule question, et la moitié des parfums disparaissent d'un coup. Refaites le jeu. Comptez à nouveau. Trois questions suffisent là où il en fallait six.
Ne lui expliquez pas pourquoi — laissez-le le sentir. La comparaison des deux parties fait tout le travail.
Ce que ça travaille : classer, regrouper, et découvrir qu'une question bien choisie vaut mieux qu'une bonne intuition.
🚀 Parcours Juniors · 7-10 ans
Construire la machine à deviner
Ce qu'il vous faut : une grande feuille, un crayon.
On ne joue plus : on fabrique la machine qui joue à notre place.
Écrivez en haut de la feuille la liste des parfums du glacier. Prenez-en huit.
Sous la liste, écrivez une première question qui coupe la liste en deux parts à peu près égales. « Est-ce que c'est un fruit ? » fonctionne bien.
Tirez deux flèches : OUI à gauche, NON à droite. Sous chaque flèche, recopiez les parfums restants dans cette branche.
Recommencez pour chaque branche : une nouvelle question, deux nouvelles flèches. Continuez jusqu'à ce que chaque branche se termine sur un seul parfum.
Vous venez de dessiner un arbre de décision. Il tient sur une feuille, et il devine n'importe quel parfum de la liste.
Le test. Donnez la feuille à quelqu'un qui n'a pas participé — un frère, un grand-parent. Il doit pouvoir deviner votre parfum en suivant les flèches, sans rien connaître au jeu. S'il y arrive, l'arbre fonctionne.
Le bug. Maintenant, choisissez un parfum qui n'était pas dans la liste de départ. Menthe, par exemple. Suivez les flèches : l'arbre se trompe, forcément. Il n'a jamais vu la menthe.
C'est le moment le plus utile de la mission. Réparez l'arbre : trouvez l'endroit où la menthe atterrit, et ajoutez-y une question qui la distingue du parfum déjà présent. « Est-ce que c'est vert ? » L'arbre grandit, et il sait une chose de plus.
Le défi. Combien de questions au maximum pour trouver un parfum parmi 8 ? Parmi 16 ? Dessinez-le si besoin. La réponse surprend : chaque fois que le nombre de parfums double, il ne faut qu'une seule question de plus.
Ce que ça travaille : la structure en arbre, la logique oui/non, le test d'un programme, et la correction d'une erreur — ce que les développeurs appellent le débogage.
🛠️ Bâtisseurs du Numérique · 10-15 ans
La machine qui apprend
Ce qu'il vous faut : Python dans le navigateur — Google Colab ou Trinket. Fonctionne sur tablette.
Étape 1 — L'arbre codé en dur
L'arbre de la section précédente s'écrit directement en Python. Un dictionnaire pour une question, une simple chaîne de caractères pour une réponse finale.
arbre = {
"question": "Est-ce que c'est un fruit ?",
"oui": {
"question": "Est-ce que c'est rouge ?",
"oui": "fraise",
"non": "citron"
},
"non": {
"question": "Est-ce que c'est marron ?",
"oui": "chocolat",
"non": "vanille"
}
}
def demander(texte):
return input(texte + " (oui/non) ").strip().lower().startswith("o")
def deviner(noeud):
while isinstance(noeud, dict):
noeud = noeud["oui"] if demander(noeud["question"]) else noeud["non"]
print("C'est " + noeud + " !")
deviner(arbre)
Quatre parfums, deux questions. Testez, puis ajoutez une branche à la main pour en gérer huit.
Étape 2 — L'arbre qui apprend tout seul
C'est ici que ça devient intéressant. Au lieu d'ajouter les branches vous-même, laissez le programme les ajouter quand il se trompe.
arbre = "vanille" # au départ, il ne connaît qu'un seul parfum
def demander(texte):
return input(texte + " (oui/non) ").strip().lower().startswith("o")
def jouer(noeud):
# Une question : on descend dans la bonne branche
if isinstance(noeud, dict):
cle = "oui" if demander(noeud["question"]) else "non"
noeud[cle] = jouer(noeud[cle])
return noeud
# Une proposition : on tente sa chance
if demander("Je pense à : " + noeud + ". C'est ça ?"):
print("Gagné 🎉")
return noeud
# Perdu : on apprend
vrai = input("C'était quoi ? ").strip()
q = input("Quelle question distingue " + vrai + " de " + noeud + " ? ").strip()
if demander("Pour " + vrai + ", la réponse à cette question est oui ?"):
return {"question": q, "oui": vrai, "non": noeud}
else:
return {"question": q, "oui": noeud, "non": vrai}
while True:
arbre = jouer(arbre)
if not demander("On rejoue ?"):
break
print(arbre)
Jouez cinq ou six parties d'affilée. Le programme part totalement ignorant et devient progressivement redoutable. À la fin, la dernière ligne affiche l'arbre qu'il s'est construit — regardez-le : vous n'avez écrit aucune de ces questions dans le code. Elles sont toutes venues des parties perdues.
C'est une version miniature, mais honnête, de ce qu'on appelle l'apprentissage automatique : un programme qui améliore ses résultats à partir des exemples qu'on lui donne, sans qu'on lui dicte les règles.
Trois défis
Sauvegarder ce qu'il a appris. Pour l'instant, tout disparaît à la fermeture. Utilisez le module json pour écrire l'arbre dans un fichier et le relire au lancement. Le programme retrouvera sa mémoire.
Compter avant de jouer. Écrivez une fonction qui parcourt l'arbre et renvoie sa profondeur maximale, c'est-à-dire le pire cas en nombre de questions. Puis sa profondeur moyenne. Un bon arbre est équilibré : les deux valeurs restent proches.
La question qui déséquilibre. Comparez deux arbres pour les mêmes huit parfums : l'un commençant par « Est-ce que c'est un fruit ? », l'autre par « Est-ce que c'est de la pistache ? ». Mesurez la profondeur moyenne des deux. L'écart que vous obtenez est exactement ce qu'un vrai algorithme d'apprentissage cherche à optimiser quand il choisit ses questions.
Ce que ça travaille : les dictionnaires imbriqués, la récursivité, les structures arborescentes — et une première intuition juste de ce que veut dire « une machine qui apprend ».
Pour les parents, en deux lignes
Quand on dit qu'une IA « reconnaît » une photo ou « recommande » une vidéo, elle ne comprend rien à l'image ni au film. Elle pose, très vite, une longue série de questions à réponse binaire. Votre enfant vient d'en construire une à la main, sur une feuille de papier. C'est le même principe — la différence est une affaire d'échelle, pas de nature.
Montrez-nous le résultat
Photographiez votre arbre de décision et envoyez-le dans le groupe WhatsApp Grandir avec le Numérique, ou à amroy@codeacademy123.com. Nous sommes curieux de voir les questions que vos enfants ont inventées — ce sont rarement celles qu'on attend.
Prochaine mission vendredi prochain : pixel art et motifs. Comment une image se cache derrière une grille de nombres, et comment une boucle de trois lignes dessine un motif qu'on mettrait une heure à colorier.
Anne-Marie Roy — Fondatrice · Code Academy 123
Code Academy 123 • www.codeacademy123.com



Commentaires