Article faisant suite à l'animation pédagogique du 13 mars 2024

Accès au parcours M@gistère associé (permettant les inscriptions aux ateliers et aux visios)

Ces dernières années, l'apprentissage de l'informatique s'est focalisé sur l’utilisation d'outils tels que l'ordinateur, la tablette et quelques logiciels courants comme le traitement de texte, le navigateur Web, etc.

Cette approche centrée sur les technologies de l'information et de la communication a permis d'acquérir de nombreuses compétences à l'école.
Au delà d'une simple utilisation il s'agit maintenant aussi de comprendre l'informatique et de devenir acteur du monde numérique plutôt que d'être un simple utilisateur.


La maitrise des notions propres à l'algorithmique, à la programmation ou à la robotique donne du sens à l'usage de l'outil informatique. Après cet apprentissage, les élèves ne regarderont plus du même œil le logiciel de traitement d'images ou le robot ménager de la cuisine.

Il est donc essentiel de viser les objectifs suivants :

  • Comprendre ce qu'est un langage de programmation ;
  • Comprendre que les objets informatiques traitent des données de manière symbolique (textes, images ou sons ...) ;
  • Comprendre que les machines qui traitent l'information (ordinateurs, tablettes, téléphones, robots...) exécutent toutes des algorithmes, exprimés sous forme de programmes écrits dans un langage de programmation ;
  • Prendre conscience qu’on engage en programmation des processus de réflexion similaires dans diverses situations d’apprentissage (tâches complexes, résolution de problèmes, démarche scientifique). 


Extrait d’une conférence de Mitch Resnick  "Apprenons aux enfants à programmer"
Mitch RESNICK professeur de recherche sur l'apprentissage. Son groupe de recherche Lifelong Kindergarten a développé le logiciel de programmation Scratch au MIT Media Lab.

Des repères pour enseigner la programmation

Comprendre les enjeux de la programmation vis-à-vis :

  • des compétences des élèves ;
  • des démarches pédagogiques ;
  • des programmes.

« L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes. » disaient Michael R. Fellows et Ian Parberry (Fellows and Parberry, 1993). En effet, si pour s’incarner, l’informatique a besoin de la machine, les principes qui sous-tendent cette science peuvent se penser sans elle.
Enseigner la programmation débranchée engage des processus de réflexion similaires chez les élèves, à ceux invoqués dans la résolution de problèmes, dans la réalisation de tâches complexes ou dans la démarche scientifique. Résoudre un problème complexe consiste donc à le décomposer en tâches simples, puis de les assembler dans un ordre précis. Si l'on fait le parallèle avec la machine, un programme informatique est bien un ensemble d’instructions et d’opérations destinées à être exécutées par un ordinateur, écrit dans un langage informatique.

Alors, c'est quoi un algorithme, au juste ?« Un algorithme énonce une solution à un problème sous la forme d'un enchaînement d'opérations à effectuer » (Wikipédia)
C'est donc le moyen de passer du langage naturel au langage informatique

Bonne nouvelle, l'algorithme est déjà travaillé en classe dès le cycle 1 et dans toutes les disciplines !

  • Trier des objets
  • Créer un collier de perles
  • Poursuivre une suite de nombres
  • Ordonner logiquement (par taille, par poids…)
  • Chercher dans le dictionnaire
  • Effectuer un pavage
  • Enchaînements de gestes en EPS ou motricité
  • Se déplacer sur quadrillage
  • Reproduire une frise géométrique
  • Dessiner un carré (boucle)
  • Dessiner une figure complexe
  • Reproduire par symétrie
  • Suivre de rythmes musicaux
  • Utiliser des Images séquentielles
  • Créer une clé de détermination

Du hasard à la « méthode » : notion de stratégie
Pour résoudre un problème ou une tâche complexe, l'élève peut procéder par essai / erreur, se fier au hasard (qui va lui permettre ou non de trouver une solution) ou mettre en œuvre une "méthode".
Cette méthode comporte des étapes (tâche simples) et un ordre dans les étapes.
Pour résoudre un problème, les élèves ne vont pas tous utiliser la même méthode, c'est là qu'intervient la notion de "stratégie".

Optimiser la stratégie ou pas ?
Tous les élèves ne vont pas mettre en œuvre les mêmes stratégies.
Lorsqu'un informaticien écrit un programme, il va faire en sorte de l'optimiser.
En programmation informatique, l'optimisation consiste à améliorer l'efficacité du code d'un programme. Ces améliorations permettent généralement au programme de s'exécuter plus rapidement, de prendre moins de place en mémoire, de limiter sa consommation de ressources (par exemple les fichiers), ou de consommer moins d'énergie électrique.
Qu'en est-il dans l'enseignement de la programmation avec les élèves ?
Il est important de prendre en compte TOUTES les stratégies des élèves. Même celles qui ne mènent pas à la solution. D'une part, car l'un des objectifs de l'enseignant est d'amener ses élèves à une posture réflexive. D’autre part, l'idée n'est pas de les décourager en pointant une stratégie non efficace ou erronée. Comprendre collectivement pourquoi une stratégie n'a pas atteint son objectif est souvent tout aussi formateur.
La recherche de l'optimisation peut être intéressante pour introduire l'utilité de certaines fonctions (ex. la boucle) ou si c'est l'objectif du problème à résoudre (ex. Aller le plus vite possible d'un point A à un point B). On peut aussi le proposer sous forme de challenge.

Manipuler / verbaliser / abstraire
L'enseignement de la programmation permet la manipulation, la verbalisation et l'abstraction, au travers des 6 compétences mathématiques :
chercher, raisonner, calculer, modéliser, représenter et communiquer
De nombreuses activités débranchées et branchées permettent aux élèves de manipuler "activement", en anticipant pour atteindre l'objectif (déplacer un robot en évitant un obstacle), en trouvant une stratégie gagnante (jeu de Nim), en optimisant une stratégie (trouver le chemin le plus court)… Ils doivent être en effet capables de se détacher de leurs actions sur le matériel (manipulation passive) pour anticiper l'impact de leurs actions (manipulation active). Ils s'engagent alors un processus d'apprentissage reposant sur la manipulation active, la formulation d'hypothèses et la validation de ces hypothèses.
Ce passage de la manipulation passive à à la manipulation active est un premier niveau d'abstraction.

Programmation algorithmes et algorigrammes

Développer ses compétences sur le codage et l’algorithmique dans le but de mettre en œuvre ces concepts avec les élèves
Parce qu’il est impossible de comprendre un programme sans en écrire un soi-même, et pour avoir une démarche d’apprentissage active, il est indispensable de transmettre aux élèves des rudiments de programmation très tôt.
C'est pourquoi nous vous proposons d'actualiser vos connaissances sur les notions d'algorithmes et d'algorigrammes, puis d'aborder divers exemples de mise en œuvre en classe pour les 3 cycles.

 1-    Les définitions : algorithme VS algorigramme

Algorithme : « Un algorithme est une méthode générale pour résoudre un type de problèmes. Il est dit correct lorsque, pour chaque instance du problème, il se termine en produisant la bonne sortie, c'est-à-dire qu'il résout le problème posé. » source Wikipédia


Exemple : la recette du gâteau au chocolat découpée en suite d'instructions

Un algorithme est une suite d'instructions séquentielles, éventuellement structurées par des conditionnelles (SI... ALORS) ou des boucles.

Notez qu’un algorithme ne peut être écrit que si le problème  à résoudre est maîtrisé. De plus, une erreur dans un algorithme se  traduira par une erreur dans l’exécution ou le déroulement final. Exemple : oubli de préciser qu'il faut ouvrir la porte du four ou de casser les œufs !

Algorigramme : c’est une représentation graphique de l’algorithme. Pour le construire, on utilise des symboles normalisés.

Faire un algorigramme est important car la programmation est un processus itératif. Le programme est parfois modifié par d'autres personnes que ceux qui l'ont conçu. Le schéma pourra expliquer la conception du programme aux autres.

Les modes de programmation visuelle, qui se développent de plus en plus ressemblent plus à des algorigrammes qu'à des programmes. Il est donc important de prendre connaissance dès que possible de cette représentation graphique.


L'algorithme a une structure linéaire comme un programme alors que l'algorigramme permet de bien mieux visualiser les différents blocs du programme, les boucles, les tests.

Et un programme alors ?

Un programme est l’expression d’un ensemble d’algorithmes avec un certain codage (un langage de programmation) pour être compris par l’ordinateur.

2-    Les différentes phases

  • Préparation du traitement : Cette  phase  consiste  à  repérer les éléments nécessaires à  la résolution, les ressources utilisées et manipulées : ce sont les entrées.
  • Traitement des données : Cela consiste  à  spécifier toutes  les  étapes  des  instructions à donner pour une exécution automatique.
  • Sortie des résultats : Ils peuvent être affichés à l’écran, imprimés, enregistrés, perdus, ou exécutés par un robot !

Quelques activités autocorrectives vous sont proposées pour construire des algorithmes et des algorigrammes :

La machine à calculer l'aire d'un carré :

H5P

Construisez l'algorigramme pour calculer l'aire d'un rectangle :

H5P

La machine à calculer l'aire d'un rectangle :

H5P

Construire l'algorigramme pour comparer 2 nombres :

H5P

Règle d'accord du participe passé dans les temps composés :

H5P

Déplacement absolu ou relatif ?

ABSOLU ou ALLOcentré

L'effet des instructions ne dépend pas de l'orientation initiale du mobile.

"Je regarde le mobile comme spectateur et je le déplace en suivant les ordres (je le fait avancer par rapport à son orientation, je le fais tourner sur sa droite...)"

Voir le document ressource Eduscol

RELATIF ou AUTOcentré

L'effet des instruction dépend de l'orientation initiale du mobile.

"Je me positionne dans la voiture (le mobile) comme conducteur et j'effectue les ordres donnés par rapport à ma position (j'avance, je tourne sur ma droite...)"

Voir le document ressource Eduscol

Dès les premières activités, les élèves sont confrontés aux différentes façons de préciser les déplacements.

On parle de déplacement absolu, lorsque l’effet des instructions ne dépend pas de l’orientation initiale du « mobile » qui les reçoit. Par exemple : « tourne-toi vers le tableau », « avance de deux pas vers la fenêtre », « avance de trois pas vers l’est »;

On parle de déplacement relatif, lorsque l’effet des instructions dépend de l’orientation initiale du « mobile » qui les reçoit. Par exemple : « effectue un quart de tour vers la droite », «avance de trois pas ».

La notion de déplacement relatif peut poser problème, en particulier pour les élèves non latéralisés. Les difficultés rencontrées au quotidien pour lire des cartes papier et suivre les instructions d’un GPS l’illustrent assez bien.

Eduscol

S'entrainer pour comprendre la différence entre les déplacements absolus et relatifs grâce au jeu de "Clic ma Classe"

Ressources (faisant suite à l'animation pédagogique du 13 mars 2024)

Télécharger le mini-livre récapitulatif des ressources [dé]branchées.

Ressource A : Robot idiot


Installation facile et pratique à ranger avec des feuilles blanches/colorées.

Ressource B : Machine à trier

Ressource C : Tuxbot

Ressource D : Projet " Libérons les poules : programmer avec des capteurs / actionneurs"

Projet réalisé dans le cadre de la construction d’un poulailler au sein
d’une école avec la problématique à résoudre d’ouverture et de
fermeture de la porte pendant les vacances et le week-end.

Programmer à l’aide d’outils accessibles en termes de contenus et de
budget pour des élèves de cycle 3

Découvrir le site Vitta science


Ressource E : Scratch Junior

Scratch Junior est disponible en 2 versions :


Présentation / prise en main rapide du logiciel en vidéo :


Ressources

Le réseau CANOPE met à votre disposition 34 fiches d'activités prêtes à l'emploi pour découvrir et utiliser ScratchJr de la maternelle au CM2.

  • Dictionnaire des blocs,
  • Progressions des missions
  • Apports didactiques et pédagogiques
  • Référentiel Scratch (description des blocs)

Une séquence de 7 séances cycle 2 proposée par LAMAP (Fondation la Main à la Pâte).

Voir aussi le livre 1, 2, 3 codez



Scratch (version plus complexe) est disponible en 2 versions :

Thymio

Thymio suite disponible à cette adresse :

https://www.thymio.org/fr/telecharger-thymio-suite/

Retrouvez les activités dans la partie ressources :
- les défis pour Thymio avec des indices et les solutions
- des activités pour transformer le robot Thymio en pingouin, on orque ou en ours.

Sur le site de la main à la pâte, vous découvrez une séquence détaillée pour le cycle 2 : Découvrir et programmer un robot Thymio.

En collaboration avec l’INRIA, l’Académie de Bordeaux propose une séquence de 8 séances pour le cycle 2.

Blue Bot - Bee bot

Une séquence pour apprendre à programmer les déplacements de la Blue-Bot (DRANE Aix-Marseille)
Une séquence cycle 2 (DSDEN 13)
Ressources de l'académie de Lille
Activités et défis de l'Académie de Nancy

Gravitrax

Planète Code