Bonjour,

Avec un peu de décalage par rapport à la discussion, je vous fais un retour sur 
notre expérience sur le sujet.

Donc, lors de nos ateliers nous avons voulu également aborder ces notions. Nous 
l'avons fait avec des enfants qui avaient une expérience pratique (un dizaine 
d'ateliers Scratch). Voici ce que nous avons fait (et en rédigeant ce mail j'ai 
un peu complété le déroulé).

* On rappelle d'abord que cela fait pas mal de temps qu'on "code", qu'on fait 
de la "programmation", qu'on parle d'"algorithme", de "code", etc. Mais qui 
sait ce que tout ça veut dire exactement ? Et parmi ce qu'on fait à chaque 
séance qu'est ce qui correspond à chaque notion ?
* On demande aux enfants de donner leurs idées sur la question. Il y a eut une 
petite discussion.
* Ensuite, on indique qu'on va illustrer ces notions avec un exemple.
* On demande deux volontaires. On donne un feuille et un stylo au premier 
(appelons le Alan) et on demande au second (appelons la Ada) de donner les 
instructions à Alan pour qu'il dessine un carré. Cela a très bien fonctionné : 
on sentait de l'amusement et de la curiosité sur l'exercice. Il se trouve 
qu'Alan était très bien dans son rôle : il exécutait bêtement les instructions 
d'Ada qui étaient un peu approximatives et on a obtenu un rectangle pas très 
réussi... Son algorithme était bugué, on n'a pas eut le temps de lui faire 
corriger (dommage, pour une autre fois on prendra le temps), mais on le 
souligne.
* A ce stade on indique que l'ensemble des instructions données par Ada à Alan 
constitue un algorithme. C'est un algorithme pour dessiner un carré. Et on 
attire l'attention sur le fait qu'on n'a pas utilisé d'ordinateur dans tout 
cela.
* Pour insister sur le fait que la notion d'algorithme est indépendante de la 
machine, on précise que la racine de ce mot est une latinisation de "Al 
Kwarizmi" qui est le nom d'un grand mathématicien perse du IXe siècle, une 
époque où il n'y avait pas trop d'ordi...
* Mais ça n'empêche pas qu'on peut donner un tel algorithme à un ordinateur 
pour que lui aussi dessine un carré. On est tous d'accord pour dire que si Ada 
donnait oralement en Français ses instructions à l'ordinateur il ne va pas se 
passer grand chose. L'ordinateur ne comprend pas ce langage.
* Il faut trouver un autre moyen. Et, c'est toujours une évidence pour tous le 
monde, le moyen est tout trouvé : Scratch. On l'utilise depuis longtemps pour 
donner des instructions à l'ordinateur. C'est un langage que l'ordinateur 
comprend.
* On montre un projet Scratch avec les instructions pour dessiner un carré. Si 
on avait eu plus de temps on aurait pu faire coder cet algo par les enfants.
* On indique que l'ensemble des blocs Scratch du projet est une description de 
l'algorithme dans un langage ou un code compris par l'ordinateur. On indique 
que Scratch est une possibilité parmi tant d'autres pour coder un algorithme. 
En particulier on peut coder en mode texte et on montre quelques exemples. A 
chaque fois il s'agit du même algo mais qui est codé avec un langage différent 
que l'ordinateur peut comprendre d'une manière ou d'une autre.
* On montre une version du projet où il y a un bug de "codage", pas un bug 
d’algorithme (exemple : sans le bloc "quand le drapeau vert est pressé"). Et on 
attire l'attention sur la différence entre un bug d'algo (exemple : on oublie 
d'abaisser le stylo) et un bug de codage.
* A la fin, et pour reprendre la formulation de Samuel, on indique que ce 
projet Scratch constitue un programme et que tout ce qu'on a fait pour le 
construire constitue la programmation (d'ailleurs, du coup, je retirerais la 
phase algorithmique de cette notion de programmation, on programme un 
algorithme qui peut exister au préalable).
* En postface nous avons parlé d'Ada Lovelace et on a montré le code du premier 
programme jamais écrit et la machine à qui il était destiné.
* Et une ouverture pour revenir sur le sujet serait de leur demander de donner 
des exemples de cas où on utilise des algorithmes sans ordinateurs (recettes de 
cuisine, instruction de montage, résolution de casse-tête...).

a+

Nicolas
_______________________________________________
Discussion mailing list
[email protected]
http://listes.jecode.org/cgi-bin/mailman/listinfo/discussion

Répondre à