Files
cookiecode/docs/atelier-cartes.md

7.0 KiB

Atelier CookieCode avec cartes

Ce document explique comment utiliser CookieCode comme un atelier ludique avec des cartes physiques ou numeriques.

L'objectif n'est pas seulement d'ecrire du code : le participant doit ressentir qu'il construit quelque chose, qu'il progresse, et qu'il recoit un feedback positif a chaque etape.

Principe de l'atelier

Le parcours conseille est :

Cartes -> Recette orale -> Code CookieCode -> Feedback -> Badge ou defi bonus

Chaque carte correspond a une idee de cuisine et a une notion de programmation.

Carte Exemple Notion apprise
Structure RECETTE, SERVIR programme, resultat
Ingredient farine, sucre, chocolat variable
Quantite 200, g, minutes valeur
Materiel saladier, four, couteau constante / ressource
Action PRENDRE, AJOUTER, MELANGER, CUIRE fonction / instruction
Logique SI, SINON, REPETER condition / boucle
Objectif Utilise une boucle, Fais un cookie critere de reussite

Deroule d'une activite

1. Tirer une carte objectif

Exemple :

Defi : Cookie avec boucle
- utilise au moins 3 ingredients ;
- utilise melanger ;
- utilise cuire ;
- utilise repeter ;
- termine par servir.

L'animateur presente le defi comme une mission courte, pas comme un examen.

Phrase conseillee :

Ta mission : creer une recette-programme que Chef Cookie peut comprendre.

2. Construire la recette avec les cartes

Le participant pose les cartes dans l'ordre :

[RECETTE] [Cookie]
[PRENDRE] [farine] [200] [g]
[PRENDRE] [sucre] [100] [g]
[PRENDRE] [chocolat] [150] [g]
[AJOUTER] [farine]
[AJOUTER] [sucre]
[AJOUTER] [chocolat]
[MELANGER]
[REPETER] [2 fois] [MELANGER]
[CUIRE] [12] [minutes]
[SERVIR]

Le but est de manipuler l'algorithme avant de parler de syntaxe JavaScript.

3. Lire la recette a voix haute

Avant de coder, le participant lit son algorithme :

Je prends la farine, je prends le sucre, j'ajoute les ingredients, je melange, je repete, je cuis, je sers.

Ce moment est important : il transforme le code en histoire comprehensible.

4. Traduire en CookieCode

const recette = CookieCode.recette("Cookie")
  .prendre("farine", 200, "g")
  .prendre("sucre", 100, "g")
  .prendre("chocolat", 150, "g")
  .ajouter("farine")
  .ajouter("sucre")
  .ajouter("chocolat")
  .melanger()
  .repeter(2, function (recette) {
    recette.melanger();
  })
  .cuire(12, "minutes")
  .servir();

5. Verifier le defi

const defi = CookieCode.defi("Cookie avec boucle", {
  ingredientsMinimum: 3,
  actionsObligatoires: ["melanger", "cuire", "servir"],
  boucleObligatoire: true,
  terminerParServir: true,
  interdireErreurs: true
});

const verification = CookieCode.verifier(recette, defi);
console.log(verification.toText());

Sortie attendue :

Defi : Cookie avec boucle
Resultat : reussi
✅ Tu as utilise 3 ingredient(s).
✅ Action trouvee : melanger.
✅ Action trouvee : cuire.
✅ Action trouvee : servir.
✅ Tu as utilise une boucle avec repeter.
✅ Ta recette se termine par servir.
✅ Aucune erreur logique detectee.

Feedback de satisfaction

Le feedback doit donner envie de continuer. Il doit valoriser ce qui est reussi avant de proposer une amelioration.

Regle simple

Toujours utiliser ce format :

1. Bravo pour ce qui fonctionne.
2. Explique ce qui manque simplement.
3. Propose une action concrete.

Exemple :

Bravo, ta recette a deja une bonne sequence d'actions.
Il manque une boucle pour reussir le defi.
Essaie d'ajouter .repeter(2, function (recette) { recette.melanger(); }).

Messages positifs conseilles

🍪 Bravo, ton programme-recette est lisible.
🥣 Tu as cree tes premieres variables avec les ingredients.
🔧 Tu as utilise du materiel comme une constante.
🔁 Super, tu as simplifie une repetition avec une boucle.
🧠 Bien joue, tu as utilise une condition pour prendre une decision.
🎉 Defi reussi : Chef Cookie peut suivre ta recette.

Messages d'aide conseilles

Il manque juste un ingredient pour completer le defi.
Ta recette est presque prete : ajoute une etape servir a la fin.
Tu repetes plusieurs fois la meme action : une carte REPETER peut t'aider.
Tu as servi trop tot : garde SERVIR comme derniere carte.
Ton algorithme est comprehensible, on va maintenant l'ameliorer.

Le ton doit rester encourageant : on ne dit pas que le participant a echoue, on dit que la recette est "a ameliorer".

Badges de progression

Les badges donnent une satisfaction immediate, meme quand le defi principal n'est pas encore complet.

Badge Condition
🍪 Premier cookie Premiere recette creee
🥣 Chef des variables Au moins 3 ingredients
🔧 Chef du materiel Au moins 1 materiel utilise
🔁 Chef des boucles Utilisation de repeter
🧠 Chef des conditions Utilisation de si
🎯 Defi reussi Tous les criteres du defi sont valides
🛠 Debug cuisinier Une recette incomplete a ete corrigee

Ces badges peuvent etre donnes oralement, imprimes sur papier, ou affiches dans l'interface plus tard.

Rythme conseille pour un atelier de 45 minutes

Temps Activite
5 min Presentation : recette = programme
10 min Manipulation libre des cartes
10 min Premier defi simple sans boucle
10 min Defi avec carte REPETER
5 min Feedback collectif et badges
5 min Defi bonus ou correction d'une recette cassee

Exemple de defis progressifs

Defi 1 : Recette simple

Objectif : creer une recette qui se termine par servir.
Contraintes :
- au moins 2 ingredients ;
- au moins 3 actions ;
- finir par SERVIR.

Defi 2 : Trouve la boucle

Objectif : ameliorer une recette repetee.
Contraintes :
- utiliser REPETER ;
- utiliser MELANGER dans la boucle ;
- finir par SERVIR.

Defi 3 : Recette avec decision

Objectif : utiliser une condition.
Situation : la pate est trop seche.
Contrainte : utiliser SI pour ajouter du lait.

Interaction cartes -> feedback CookieCode

Une carte objectif devient un objet CookieCode.defi.

Carte objectif :
- 3 ingredients minimum
- utiliser melanger
- utiliser cuire
- utiliser repeter
- finir par servir

Devient :

CookieCode.defi("Cookie avec boucle", {
  ingredientsMinimum: 3,
  actionsObligatoires: ["melanger", "cuire", "servir"],
  boucleObligatoire: true,
  terminerParServir: true,
  interdireErreurs: true
});

Une suite de cartes recette devient un enchainement CookieCode.

[PRENDRE] [farine] [200] [g]

Devient :

.prendre("farine", 200, "g")
[REPETER] [2 fois] [MELANGER]

Devient :

.repeter(2, function (recette) {
  recette.melanger();
})

A retenir pour l'animateur

  • Le participant doit manipuler avant de coder.
  • Le feedback doit etre rapide, visible et positif.
  • Une erreur est une occasion de debug, pas un echec.
  • Les cartes doivent aider a comprendre l'ordre des instructions.
  • Le badge recompense une notion apprise, pas seulement un resultat parfait.