Introduction »: »pourquoi »apprendre »à »programmer »?
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Dans »notre »société »de »plus »en »plus »numérisée, »la »programmation »informatique »est »devenue »une »compétence »fondamentale, »au »même »titre »que »la »lecture, »l'écriture »et »les »mathématiques. »Comprendre »les »bases »du »code, »ce »n'est »pas »seulement »se »préparer »à »un »métier »de »développeur »: »c'est »acquàrir »une »capacité »de »raisonnement »logique, »de »résolution »de »problèmes »et »de »créativité »qui »sera »utile »dans »tous »les »domaines »professionnels »de »demain. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »En »classe »de »technologie, »l'initiation »à »la »programmation »permet »aux »élèves »de »passer »du »statut »de »simples »utilisateurs »de »la »technologie »à »celui »de »créateurs. »Ils »comprennent »enfin »ce »qui »se »cache »derrière »les »applications »qu'ils »utilisent »quotidiennement »et »découvrent »qu'ils »sont »capables »de »créer »leurs »propres »programmes, »jeux »et »animations. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »Qu'est-ce »qu'un »algorithme »?
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Avant »de »parler »de »programmation, »il »est »essentiel »de »comprendre »ce »qu'est »un »algorithme. »Un »algorithme »est »tout »simplement »une »suite »d'instructions »ordonnées »permettant »de »résoudre »un »problème »ou »d'accomplir »une »tâche. »Les »algorithmes »font »partie »de »notre »vie »quotidienne »sans »même »que »nous »en »ayons »conscience. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Prenons »un »exemple »simple »: »une »recette »de »cuisine »est »un »algorithme. »Elle »décrit »une »série »d'étapes »précises »(ingrédients, »quantités, »ordre »des »opérations, »temps »de »cuisson) »qui, »si »elles »sont »suivies »correctement, »mènent »toujours »au »même »résultat. »De »la »même »manière, »un »algorithme »informatique »décrit »les »étapes »que »doit »suivre »un »ordinateur »pour »accomplir »une »tâche »spécifique. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »En »classe, »nous »commençons »par »faire »écrire »aux »élèves »des »algorithmes »de »la »vie »quotidienne »: »comment »faire »un »sandwich, »comment »se »brosser »les »dents, »comment »traverser »la »route »en »sécurité. »Cet »exercice »leur »permet »de »comprendre »l'importance »de »la »précision, »de »l'ordre »des »instructions »et »des »conditions »(si »le »feu »est »rouge, »alors »s'arrêter, »sinon »traverser). » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »La »programmation »par »blocs »: »Scratch »et »mBlock
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »La »programmation »par »blocs »est »la »méthode »idéale »pour »initier »les »jeunes »élèves »au »code »informatique. »Au »lieu »d'écrire »du »texte »dans »un »langage »de »programmation »complexe, »les »élèves »assemblent »des »blocs »visuels »colorés, »comme »des »pièces »de »puzzle, »pour »créer »des »programmes. »Cette »approche »élimine »les »erreurs »de »syntaxe »(fautes »de »frappe, »oubli »de »points-virgules) »et »permet »aux »élèves »de »se »concentrer »sur »la »logique »du »programme. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »Scratch »: »la »référence »pour »débuter
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Développé »par »le »MIT »(Massachusetts »Institute »of »Technology), »Scratch »est »la »plateforme »de »programmation »par »blocs »la »plus »utilisée »dans »le »monde »éducatif. »Gratuite »et »disponible »en »français, »elle »permet »aux »élèves »de »créer »des »histoires »interactives, »des »jeux, »des »animations »et »des »simulations. »L'interface »est »intuitive »: »les »blocs »sont »classés »par »catégories »(mouvement, »apparence, »son, »événements, »contrôle, »capteurs, »opàrateurs, »variables) »et »se »connectent »les »uns »aux »autres »par »simple »glisser-déposer. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »mBlock »: »Scratch »+ »Robotique
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »mBlock »est »une »extension »de »Scratch »qui »ajoute »la »possibilité »de »programmer »des »robots »et »des »cartes »électroniques »(comme »Arduino »ou »micro:bit). »C'est »l'outil »que »je »privilégie »dans »mes »classes »car »il »permet »de »faire »le »lien »entre »la »programmation »virtuelle »et »le »monde »physique. »Les »élèves »peuvent »programmer »un »robot »pour »qu'il »suive »une »ligne, »évite »des »obstacles »ou »réagisse »à »son »environnement »grâce »à »des »capteurs. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » » » » » »Conseil »pédagogique »: »Commencez »toujours »par »un »projet »simple »qui »donne »un »résultat »visible »immédiatement »(faire »bouger »un »personnage, »changer »la »couleur »d'un »objet). »Le »sentiment »de »réussite »rapide »est »crucial »pour »maintenir »la »motivation »des »élèves »débutants. » » » » » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »Les »concepts »fondamentaux »de »la »programmation
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Quel »que »soit »le »langage »ou »l'outil »utilisé, »la »programmation »repose »sur »quelques »concepts »fondamentaux »que »tout »débutant »doit »maîtriser »: » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »-
» » » » » » » » » » » » » » » » » » » »
- Les »séquences »: »une »suite »d'instructions »exécutées »les »unes »après »les »autres, »dans »l'ordre. »C'est »le »concept »le »plus »simple »: »à »avancer »de »10 »pas, »tourner »à »droite »de »90 »degrés, »avancer »de »5 »pas »à. » » » » » » » » » » » » » » » » » » » »
- Les »boucles »(répétitions) »: »permettent »de »répéter »une »instruction »ou »un »groupe »d'instructions »un »certain »nombre »de »fois, »ou »tant »qu'une »condition »est »remplie. »Par »exemple, »à »répéter »4 »fois »: »avancer »de »100 »pas, »tourner »de »90 »degrés »à »dessine »un »carré. » » » » » » » » » » » » » » » » » » » »
- Les »conditions »(si... »alors... »sinon) »: »permettent »au »programme »de »prendre »des »décisions »en »fonction »d'une »situation. »Par »exemple, »à »si »le »capteur »détecte »un »obstacle, »alors »s'arrêter, »sinon »continuer »à »avancer »à. » » » » » » » » » » » » » » » » » » » »
- Les »variables »: »ce »sont »des »à »boîtes »à »dans »lesquelles »on »stocke »des »informations »(un »nombre, »un »texte, »un »score). »Par »exemple, »une »variable »à »score »à »qui »augmente »de »1 »à »chaque »fois »que »le »joueur »attrape »un »objet. » » » » » » » » » » » » » » » » » » » »
- Les »événements »: »des »déclencheurs »qui »lancent »une »action. »Par »exemple, »à »quand »le »drapeau »vert »est »cliqué, »démarrer »le »programme »à »ou »à »quand »la »touche »espace »est »pressée, »faire »sauter »le »personnage »à. » » » » » » » » » » » » » » » »
Progression »pédagogique »recommandée
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »En »tant »qu'enseignante, »j'ai »dàveloppà »une »progression »pédagogique »en »plusieurs »étapes »qui »permet »aux »élèves »de »monter »en »compétence »graduellement »: » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »-
» » » » » » » » » » » » » » » » » » » »
- Découverte »(2 »séances) »: »manipulation »libre »de »Scratch, »exploration »de »l'interface, »exécution »et »modification »de »programmes »existants. » » » » » » » » » » » » » » » » » » » »
- Séquences »et »mouvements »(2 »séances) »: »créer »des »programmes »simples »avec »des »déplacements, »des »changements »de »costume »et »des »sons. » » » » » » » » » » » » » » » » » » » »
- Boucles »(2 »séances) »: »dessiner »des »formes »géométriques »(carré, »triangle, »étoile) »en »utilisant »les »boucles »à »répéter »à. » » » » » » » » » » » » » » » » » » » »
- Conditions »(2 »séances) »: »créer »un »programme »interactif »qui »réagit »aux »actions »de »l'utilisateur »(clavier, »souris). » » » » » » » » » » » » » » » » » » » »
- Variables »et »score »(2 »séances) »: »créer »un »mini-jeu »avec »un »système »de »comptage »de »points. » » » » » » » » » » » » » » » » » » » »
- Projet »final »(4 »séances) »: »réalisation »d'un »projet »complet »(jeu, »animation, »quiz) »en »groupe »de »2-3 »élèves. » » » » » » » » » » » » » » » »
Applications »concrètes »et »projets »pratiques
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »La »programmation »prend »tout »son »sens »quand »elle »est »reliée »à »des »applications »concrètes »que »les »élèves »peuvent »voir »et »toucher. »Voici »quelques »projets »que »nous »réalisons »en »classe »: » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »-
» » » » » » » » » » » » » » » » » » » »
- Programmation »d'un »robot »mobile »: »les »élèves »programment »un »petit »robot »pour »qu'il »suive »un »parcours, »évite »des »obstacles »ou »se »dirige »vers »une »source »lumineuse. » » » » » » » » » » » » » » » » » » » »
- Création »d'un »quiz »interactif »: »un »programme »Scratch »qui »pose »des »questions, »vérifie »les »réponses »et »calcule »un »score »final. » » » » » » » » » » » » » » » » » » » »
- Animation »scientifique »: »illustrer »un »phénomène »physique »ou »technologique »(le »cycle »de »l'eau, »le »fonctionnement »d'un »moteur) »sous »forme »d'animation »interactive. » » » » » » » » » » » » » » » » » » » »
- Jeu »de »labyrinthe »: »concevoir »un »jeu »oà »un »personnage »doit »trouver »la »sortie »d'un »labyrinthe »en »évitant »des »pièges. » » » » » » » » » » » » » » » »
Ressources »et »outils »gratuits »recommandés
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Pour »les »élèves »qui »souhaitent »continuer »à »pratiquer »en »dehors »de »la »classe, »voici »les »ressources »gratuites »que »je »recommande »: » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »-
» » » » » » » » » » » » » » » » » » » »
- Scratch »(scratch.mit.edu) »: »plateforme »en »ligne »gratuite, »communauté »active »avec »des »millions »de »projets »à »explorer »et »à »remixer. » » » » » » » » » » » » » » » » » » » »
- Code.org »: »parcours »d'apprentissage »progressifs »avec »des »exercices »guidés, »parfaits »pour »s'entraîner »à »la »maison. » » » » » » » » » » » » » » » » » » » »
- mBlock »(mblock.cc) »: »téléchargeable »gratuitement, »idéal »pour »ceux »qui »veulent »combiner »programmation »et »robotique. » » » » » » » » » » » » » » » » » » » »
- Vittascience »(fr.vittascience.com) »: »plateforme »française »de »programmation »par »blocs »pour »Arduino »et »micro:bit. » » » » » » » » » » » » » » » »
Conclusion
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »L'apprentissage »de »la »programmation »est »un »voyage »passionnant »qui »développe »des »compétences »essentielles »pour »le »XXIe »siècle »: »la »pensée »logique, »la »créativité, »la »persévérance »et »la »capacité »à »décomposer »un »problème »complexe »en »étapes »simples. »En »commençant »par »la »programmation »par »blocs, »les »élèves »construisent »des »fondations »solides »qui »leur »permettront, »s'ils »le »souhaitent, »de »progresser »vers »des »langages »textuels »comme »Python »ou »JavaScript. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »» » » » » » » » » » » » » » » » » » » »Le »plus »important »dans »l'apprentissage »de »la »programmation »n'est »pas »de »former »de »futurs »développeurs, »mais »de »donner »à »chaque »élève »les »clés »pour »comprendre »le »monde »numérique »qui »l'entoure »et »la »confiance »nécessaire »pour »devenir »un »acteur, »plutôt »qu'un »simple »consommateur, »de »la »technologie. » » » » » » » » » » » » » » » »
» » » » » » » » » » » » » » » »