Jobineries

Blogue de Gilles G. Jobin, Gatineau, Québec.

dimanche 6 mars 2011

Tutoriel scratch : L'interface

Début d'un projet personnel. J'espère ajouter régulièrement des vidéos sur Scratch pour aider tous ceux qui désireraient s'approprier doucement le logiciel.

samedi 5 mars 2011

Défi Scratch n°2

Il est bien dommage que plusieurs personnes ressentent envers la programmation le même haut-le-coeur qu'ils ont envers les mathématiques. Car les défis intellectuels qu'on doit relever en tentant de résoudre un problème en apparence simple sont une source inépuisable de « tough fun. » Pour retrouver ce plaisir, allez-y ! téléchargez Scratch (c'est gratuit) et prenez quelques heures pour l'apprivoiser.

Programmer est un art difficile. Cela faisait un bon bout de temps que je cherchais à simuler l'envoi multiple de boulets à partir d'une même touche du clavier. J'ai finalement trouvé une solution qui me plaît bien. Cette vidéo illustre une partie (très mineure, je l'avoue) de cette solution.

lundi 14 février 2011

Photo du jour

mercredi 26 janvier 2011

Un défi Scratch


Cela faisait un bon bout de temps que ce problème me turlupinait l'esprit : comment s'assurer qu'un lutin suive une certaine courbe. J'ai finalement réussi en moins de 10 lignes. Et vous, comment feriez-vous ?

samedi 4 décembre 2010

Communiquer en Scratch

Comment donner l’illusion d’une accélération est une demande souvent formulée par nos élèves.

Après avoir créé une variable ici appelée « vitesse », le script ci-dessous, trouvé sur ce wiki, fait le travail.

Dans ce billet, je veux montrer toute la force de Scratch par rapport à l’apprentissage des mathématiques.

Analysons rapidement le script :
  1. Le drapeau vert lance le script.
  2. On entame alors une boucle infinie.
  3. Dans cette boucle, on commence par vérifier si on enfonce la touche FLÈCHE DROITE du clavier. Si c’est le cas, on ajoute 1 à la vitesse.
  4. On vérifie ensuite si on enfonce la touche FLÈCHE GAUCHE. Et si c’est le cas, on soustrait 1 à la vitesse.
  5. Ensuite, on multiplie cette vitesse par 0,9.
  6. Puis on fait avancer la voiture sur l’abscisse selon cette vitesse.
  7. Et on retourne au début de la boucle.

L’algorithme ne contient aucun objet mathématique très complexe : simple addition (ou soustraction) par 1, et une petite multiplication par 0,9.
Ce n’est pas parce qu’on sait faire des opérations simples sur les nombres qu’on peut anticiper l’effet de ses opérations sur des objets de la vie courante.


Allez-y, et enfoncez la touche flèche droite (ou flèche gauche). Observez la voiture. Essayez de comprendre pourquoi le script fonctionne. Le script communique des instructions à la voiture en utilisant des concepts mathématiques vraiment basiques (addition, multiplication). Et, assez curieusement, on est surpris que cela fonctionne. Cet étonnement est une bougie d’allumage à l’apprentissage.

Je vous communique ici mon propre processus, celui que j’ai pris pour m’expliquer le fonctionnement du script.

D’abord, j’ai remarqué que la voiture atteignait une vitesse maximale qu’elle n’arrivait pas à dépasser, peu importe le temps que je tenais enfoncée la touche flèche droite. Le maximum était toujours 9.

Comment donc se faisait-il que je ne puisse dépasser 9 alors que dans la boucle, au moment où j’enfonçais flèche droite, le script ajoutait toujours 1 ? Ne devais-je pas m’attendre à ce que la vitesse augmente jusqu’à l’infini ?

Je me suis alors mis à jouer le rôle du script.

Voici comment il faut faire.

(On suppose qu’au lancement du script, on tient la touche flèche droite toujours enfoncée.)
QuandVitesse après la touche FDVitesse à la fin de la boucle
Boucle 111 x 0,9 = 0,9
Boucle 21 + 0,9 = 1,91,9 x 0,9 = 1,71
boucle 31+ 1,71 = 2,712,71 x 0,9 = 2,439
boucle 41 + 2,439 = 3,4393,439 x 0,9 = 3,0951


Tout cela, à la main, est un peu fastidieux. Et ce qui m’intéressait était de savoir après 10, 100 ou 1000 accès à la boucle, la vitesse qui en résulterait. Je décidai donc d’ouvrir un tableur pour qu’il fasse les calculs à ma place.

Intéressant n’est-ce pas ? Après une quarantaine d’itérations (passages dans la boucle), on semblait atteindre une limite supérieure égale à 9. En mathématique, on dit que la suite converge vers 9.

Puis, je me suis mis à la recherche d'une régularité : je voulais trouver une formule.

k0 = 0;
k1 = 0,9(1+k0) = 0,9
k2 = 0,9(1 + k1) = 0,9 + (0,9)(0,9) = 0,9 + 0,92
k3 = 0,9(1 +k2) = 0,9 + 0,9(0,9 + 0,92) = 0,9 + 0,92+ 0,93
k4 = 0,9(1 +k3) = 0,9 + 0,9(0,9 + 0,92 + 0,93) = 0,9 + 0,92+ 0,93 + 0,94

et on voit assez clairement (?!) un modèle émerger :

kn = 0,91 + 0,92+ 0,93 + 0,94 + ... + 0,9n-1 + 0,9n


Remarque : Je sais que si vos mathématiques scolaires sont un peu loin, toute cette écriture doit vous paraître du chinois. N'y prenez garde pour l'instant, et je vous encourage à lire la suite.


Les mathématiciens ont inventé une notation pour ce genre de «série» :

J’ai alors décidé de vérifier à l’aide de Wolfram|Alpha si la série convergeait « vraiment. »



Le graphique ci-contre est aussi très parlant. Dans les premières boucles, la vitesse varie assez rapidement. Puis elle se stabilise.

Un simple script peut nous amener vraiment loin, n’est-ce pas ?

Est-ce à dire qu’il ne faut pas initier les enfants à Scratch parce que les explications sont trop difficiles ? Je dis que c’est tout le contraire. Qu’il faut amener les enfants à réaliser que les mathématiques sont des outils puissants pour, entre autres, modéliser une réalité. L'élève prendra conscience que cette réalité est modélisable à l'aide d'outils intellectuels profonds. « L'univers est écrit en langage mathématique », disait Galilée.

Alors, que faire avec un enfant de 8 ans qui désire un script de vitesse ? Ne pas lui donner ? Lui dire qu’il va apprendre ça au Cégep ? Lui dire que les mathématiques sont trop compliquées pour lui et qu’il devrait penser à un projet plus « simple » ?

Je suggère l’approche suivante :

Au primaire : 8-9 ans : Leur remettre le script. On peut demander aux élèves de le modifier pour qu’il réponde à leurs besoins. (Ex. en modifiant le paramètre 0,9)

10-11 ans : Leur remettre le script. Demander aux élèves d’expliquer, en jouant le rôle du lutin, comment les différentes vitesses se calculent. Voyez le premier tableau au début du billet  on pourrait demander à l'élève d'en remplir un. J’en profiterais aussi pour ouvrir le chiffrier électronique et leur montrer comment on y fait des calculs répétitifs. Par ailleurs, ce script possède une instruction (avant-dernièere ligne) vraiment intéressante : vitesse = 0.9 x vitesse. Posez la question suivante : Comment se fait-il qu'en ne touchant absolument rien au clavier, la voiture ralentisse et finisse par s'immobiliser ? Cette ligne contient le secret. Demandez aux élèves de vous le révéler. [Le calcul à la main est beaucoup plus simple. Un chiffrier peut encore être utile ici.]


Au secondaire, sky is the limit. On envoie les élèves en recherche avec la question suivante : Expliquez-moi pourquoi le script fonctionne et pourquoi la vitesse ne dépasse pas 9. De là, on ouvre vers l’algèbre, la notation exponentielle, les polynômes, etc. Pour les moins frileux, on peut même avancer des notions du calcul infinitésimal.

J’ai bien peur que ce billet risque d’en décourager plus d’un. Si vous vous dites intérieurement : « Les élèves ne seront jamais capables », alors Scratch n'est pas pour vous. En effet, on conçoit généralement les notions mathématiques comme un immense escalier qu’on doit absolument grimper en commençant par la première marche. Scratch n’entre pas dans cette vision des choses. Un script devient un objet résultant d’une « computabilité. » On peut par la suite, tenter de développer le langage qui nous permet d’expliquer l'observation du script en action. Voilà l’espace des mathématiques. C’est ce langage qui tente d’expliquer des phénomènes généralement computables. Notez aussi qu'une telle exploration d'un script peut nous lancer dans l'adoption d'une notation plus concise. Par exemple, plus haut, j’ai immédiatement utilisé la notation exponentielle. Mais l’élève qui joue le « computeur » humain recherchant une régularité aboutirait probablement au besoin de cette notation. Par exemple, pour k4 = 0,9 + 0,9 x 0,9 + 0,9 x 0,9 x 0,9 + 0,9 x 0,9 x 0,9 x 0,9

De la difficulté

Je ne dis pas que l’élève trouvera facilement les subtilités sous-jacentes à ce script. Après tout, l’enseignant n’est-il pas là pour, justement, amener l’élève à se poser de bonnes questions et à tenter d’y répondre. Je dis bien «tenter». Il est presque évident que la grande majorité de ses tentatives échoueront. Car, voyez-vous, conceptualiser des éléments computables ne fait pas partie des choses innées de la vie. L’enseignant doit alors absolument utiliser toute sa puissance émotico-pédagogique pour bien faire «sentir» à l’élève que c’est bien «normal» qu’il ne «sache» pas. Il doit lui faire comprendre que ce qui compte, c’est qu’il essaie sincèrement de trouver une explication, aussi mince, aussi fragile soit-elle. Il ne faut pas oublier qu’un élève en apprentissage n’est pas un élève qui sait, mais un élève qui aspire à savoir. Ainsi, peut-être, aura-t-on des élèves heureux d’apprendre que certains mathématiciens ont inventé une écriture (la notation exponentielle) pour des multiplications répétitives.

L’ouverture

Scratch est un logiciel terriblement ouvert. J’appuie sur le terriblement, car pour y inviter les élèves, un enseignant doit faire preuve d’une grande modestie. C’est un espace où il n’a pas toutes les réponses. Il devra se fier non plus à sa connaissance du problème (et de sa solution) mais plutôt à sa capacité pédagogique d’amener les élèves dans le processus de résolution d’un problème inconnu, problème généralement issu de l’élève même.

La compétence Communiquer à l’aide du langage mathématique.

Le « problème » ci-haut (explication d’un script) relève, à mon avis, de la troisième compétence en mathématique du programme du ministère de l’éducation du Québec. Ce dernier voit l’application de cette compétence ainsi [ceci n'est qu'un exemple, mais ô combien représentatif !] : imaginez une situation complexe (bidon, évidemment) dans laquelle l’élève doit présenter à un conseil municipal la meilleure manière d’aménager un parc public. Puisque l’élève doit présenter et justifier le résultat de ses calculs, le MELS suggère que l’enseignant évalue cette situation comme faisant partie de la compétence communiquer. C’est, à mon avis, assez simpliste. Pour moi, une compétence s’évalue dans les processus mis en place pour l’activer. Et non par le verbe utilisé dans la question.

Dans le cas de l’activité Scratch ci-haut, l’élève doit décortiquer un script. Cette décortication implique des processus qui peuvent s’activer lors de la lecture du script. On peut donc y observer un élève qui se fait communiquer une information logico-mathématique. Par la suite, un élève qui modifierait la valeur du 0.9 et qui observerait les différentes conséquences, et qui pourrait en faire un bilan mathématique, à mon sens, développe sa compétence en communication mathématique.

Bref, aussitôt qu’un élève voit et tente de comprendre un script tiers, nécessairement la compétence communication est activée.

Le potentiel

En conclusion, ce billet voulait démontrer tout le potentiel pédagogique de Scratch. Scratch permet de « computer » facilement, et offre ainsi des possibilités de comprendre ce qui se passe dans un script. C’est de ces possibilités qu’on en tire des bénéfices pédagogiques importants.

samedi 20 novembre 2010

Scratch en première année

Scratch, logiciel de programmation, est suggéré pour les enfants à partir de 8 ans. Cependant, même à 6 ans, il est possible de « jouer » avec le logiciel.

Dans la vidéo ci-dessous, vous verrez plusieurs extraits dans lesquels des enfants de première année du primaire manipulent quelques briques. Il ne faut pas oublier que ces élèves savent à peine lire et écrire.

C’est Carolyne, stagiaire en stage 4 de l’UQO qui m’a invité à passer 3 sessions d’une heure dans sa classe. Geneviève, son maître-guide, lui avait en effet suggéré de prendre contact avec moi au regard de l’intégration des TIC à l’aide de Scratch.

La première heure fut consacrée aux manipulations élémentaires des lutins (agrandissement, coupure, duplication, insertion, changement de scène, dessins, etc.)

À la fin de cette heure, j’avais demandé à Carolyne de préparer les enfants à lire des briques du genre AVANCER, TOURNER, QUAND DRAPEAU PRESSÉ, etc. C'est ainsi qu'à la deuxième session, les élèves retrouvaient facilement les briques et ils ont pu faire un peu d’animation avec leurs lutins.

La vidéo présente quelques séquences de la troisième session pendant laquelle j’initie les élèves à activer la brique DIRE à l’aide des touches du clavier.

Vers le milieu de la vidéo, je pose quelques questions à Carolyne (que je remercie grandement pour son ouverture !). Plus loin, un peu par hasard, j’ai capté un YES ! d’une élève qui venait de réussir son script. Remarquez aussi les yeux des élèves, et la relative clarté de leurs explications.

En passant, si vous désirez essayer Scratch avec vos élèves, contactez l’animateur RÉCIT de votre CS. Il se fera certainement un plaisir de vous donner un coup de main !

vendredi 19 novembre 2010

Le vouloir

- Monsieur Gilles, je veux que mon lutin explose quand il touche le mur ...
- Monsieur Gilles, mes deux lutins parlent en même temps. Je veux que le deuxième attende avant de parler...
- Monsieur Gilles, je veux...

Autre vidéo tournée à la va-vite dans la classe de 2e cycle. Un grand avantage de Scratch réside dans cette possibilité de rendre très rapidement l'élève actif dans son propre projet. Vous verrez aussi une petite section où deux élèves expérimentent ce que je n'avais absolument pas expliqué. C'est un autre côté vraiment fascinant de ce logiciel. Le rôle du prof dans tout ça ? Apprendre à l'élève à aller plus loin dans sa propre pensée. En effet, dans Scratch, l'élève est constamment en train de « vouloir faire » quelque chose. L'enseignant doit moduler cette volonté. Par exemple, je dis à l'élève : « Beau projet. Garde-le bien en tête. Je te suggère de le commencer par ... »

Mais il est doux aux oreilles d'un enseignant d'entendre des « vouloir »...

Vous êtes enseignant ? Vous avez accès à un laboratoire informatique ? Allez-y, et lancez les élèves dans Scratch !

jeudi 18 novembre 2010

Félix et Scratch

J'adore voir les élèves dans Scratch. J'aime bien qu'ils m'expliquent leurs scripts. Ici, Félix écrit un petit projet impliquant deux joueurs.



La semaine suivante, Félix m'a fait parvenir un de ses projets. Intéressant n'est-ce pas ?

mardi 3 novembre 2009

Classe2point0

Ce matin, j'ai initié les élèves de la «Classe2point0» de notre CS (enseignant : Sébastien Bujold) à Scratch.

Deux heures magnifiques.

Mais d'abord une petite description. Cette classe «ordinaire» de 6e année contient 29 élèves. Chacun possède un portable (fourni par le RÉCIT local) sur son bureau. NetSchool Support est installé partout : Sébastien contrôle donc tous les ordinateurs de son bureau. C'est une classe quasi sans-papier où les services Google (google doc, google formulaire, IGoogle, etc) sont utilisés en permanence. Sébastien est en train de constuire le site web de la classe basé sur Joomla. D'ailleurs, tous les élèves auront leur propre Joomla. J'en reparlerai...

Et, pour ceux qui se le demandent : NON, il n'y a pas de tableau blanc interactif dans cette classe - et il n'y en aura pas !

C'était la première fois que je travaillais avec NetSchool Support. Généralement, je présente Scratch au canon projecteur. J'avoue que j'avais développé une assez bonne technique d'animation avec le canon. J'étais donc un peu inquiet en utilisant cette nouveauté.

Mais je suis tombé en amour avec ce moyen. En effet, pendant que j'expliquais sur l'ordinateur maître, tous les élèves portaient leur attention sur mes paroles et sur leur écran. Puis, pendant qu'ils s'exerçaient, je pouvais suivre tous les ordinateurs de mon poste. Mais j'avoue que j'ai de loin préféré me promener dans la classe et répondre aux questions qui fusaient de toute part. Dans Scratch, généralement, les questions commencent par «Monsieur, comment dois-je faire pour ...», car les élèves veulent vraiment réussir à mettre sur écran l'animation qu'ils imaginent dans leur tête.

Quelques photos :









vendredi 25 septembre 2009

Scratch au primaire

C'était ma deuxième heure avec un groupe d'élèves de 6e année dans Scratch. À l'aide d'un petit script qui construisait un carré, j'initiais les élèves à plusieurs briques. Puis, j'ai proposé le défi de réaliser un triangle. L'enseignante, étonnée, m'a alors lancé :

- Hé ! on va faire ça la semaine prochaine dans le cours de maths.

Elle était contente de voir une autre approche à la construction des polygones réguliers. Elle a même trouvé très astucieux quelques-uns de ses élèves. Entre autres, un jeune a procédé ainsi :

Puisqu'il faut passer de 4 à 3 côtés, on doit passer aussi de 4 angles à 3 angles. Il faut donc éliminer un angle de 90° qu'on doit « redistribuer » aux trois autres. Or 90/3=30. Donc, on doit ajouter 30° aux trois autres angles droits. Le lutin doit donc tourner de 120°

Ce raisonnement est intéressant n'est-ce pas ?

Je le dis souvent : donnons du temps aux élèves, et ils trouveront des solutions originales. Et donnons-leur aussi du temps pour les partager aux autres car, d'après moi, après avoir tenté soi-même de résoudre un problème, on est beaucoup plus ouvert à comprendre comment un autre s'y est pris.

jeudi 9 avril 2009

45 h en 45 min

Avec Pierre Couillard, j'animerai à 13 h 30 un atelier de 45 minutes sur Scratch. La chose devait sans doute me préoccuper car je me suis réveillé à 4 h ce matin et j'ai complètement remanié ma présentation.

Mon objectif est simple : que les participants ressortent de l'atelier avec un incontrôlable désir de faire programmer les élèves.

L'atteindrais-je ? Vous le saurez au prochain billet !

Vous vous demandez quel est le rapport avec le titre du billet ? Hé, hé... cliquez ici.

dimanche 28 septembre 2008

Tuto

Voilà ce que les jeunes peuvent faire.

J'aimerais bien que quelques élèves de ma commission scolaire réalisent de tels tutoriels en français dès cette année.

< 1 2 3 4 >