====== Programmation et robotique en classe. Algorithmes et Scratch ======
Basé sur le [[http://www.fondation-lamap.org/fr/123codez|livre 1,2,3 Codez]], présentation des activités menées en classe.
===== Séance 1 : initiation aux algorithmes =====
Lacement de l'activité à partir de la séance le parcours du combattant (livre, p. 117)
**Histoire** : //le héros se réveille dans un monde imaginaire, il ne sait où il est, un message l'attend en bas pour lui donner des instructions...//
Bien sûr, on théâtralise le tout...
{{ :aseba:capture_d_ecran_2018-11-07_16-36-47.png?400 |}}
Ils adhèrent bien à l'histoire.
Diffusion de la fiche 12.
Oral, apport du vocabulaire manquant.
Ils écrivent tous un texte aidant le héros à réaliser le parcours.
Un élève passe au tableau, le lit, un second, puis... je rajoute, **"le hic"** c'est que le parcours change régulièrement et retourne un pan de tableau avec un parcours similaire mais aussi des obstacles dans un ordre différent.
{{ :aseba:img_2092_resultat.jpg?200 |}}
Ils cherchent alors une façon de réécrire leurs textes et comprennent que ça va toujours changer.
Un élève propose alors d'utiliser un **SI**, donc **met en place une condition**.
Plus compliqué pour leur faire trouver **le connecteur de l'instruction** en rapport à la condition.
On met donc en place le schéma suivant :
**SI** le héros rencontre un danger **ALORS** que fait il ?
{{ :aseba:capture_d_ecran_2018-11-07_16-37-20.png?400 |}}
Voilà le premier algorithme est écrit. On fait une double affiche A3 ensemble et on la complète avec les termes
**Algorithme** / **Condition** / **instruction**
{{ :aseba:img_2119_resultat.jpg?400 |}}
On ré-investit ensuite sur d'autres algorithmes :
exemple pour un PC : SI touche A enfoncée ALORS afficher A...
autre exemple : SI Touche Flèche de Droite enfoncée ALORS avancer vers la droite...
On fait la trace écrite
===== Séance 2 : décoder un message =====
Encoder / décoder un texte, message
Une fois encore, on sait la trame du livre, rien de bien compliqué.
Le héros arrivé enfin en bas de la falaise trouve un message mais il est codé. Il faut l'aider à le décoder.
{{ :aseba:capture_d_ecran_2018-11-07_16-48-08.png?400 |}}
Très vite, les élèves qui ont déjà travaillés ce type d'activité, se mettent au travail.
Rapidement décodé.
On met en évidence les limites de ce codage
- les accents,
- la ponctuation,
- les majuscules,
- les espaces,
...
Je pousse plus loin, dans le support, les lettres sont dans des cases, mais si tous ces nombres avaient été à la queue leu leu, comment les séparer ?
Vite, ils comprennent que le code se fait sur 2 chiffres et la nécessité dans ce cas, de coder le A pour un 01 plutôt qu'un 1. Ainsi il y a 100 possibilités, ils en réservent 26 pour les lettres de l'alphabet, le reste est disponible pour les accents, la ponctuation, les espaces...
__Exercice complémentaire__
J'ai demandé aux élèves de décoder ce message
**Buay gvvxktkf r'otluxsgzowak**
__Solution__
C'est le codage **WC** c'est à dire que le **W** correspond à un **C** (//décalage négatif de 6//)
Ce qui donne
**Vous apprenez l'informatique**
Pour aller plus loin : [[https://www.dcode.fr/chiffre-cesar|Site sur le codage : dcode]]
===== Séance 3 : vers Scratch =====
==== Séance 3 L'algorithme ====
Avant de coder les déplacements, on va écrire l'algorithme correspond (ce qui n'aura rien à voir avec la section suivante). Cet algorithme sera basé sur des instructions en fonction de conditions (rencontre fond, filet...) alors que la partie suivante est uniquement basé sur un déplacement allocentré ou autocentré.
==== Séance 3 Les déplacement sous Scratch ou Snap !====
=== Réinvestissement séance précédente ===
Oraliser ce que l'on a appris lors de la séance précédente, essentiellement les termes techniques.
On les fait chercher l'algorithme qui permettra au sous marin de rejoindre le trésor.
{{ :aseba:img_2095_resultat.jpg?200 |}}
=== Scratch ou snap !===
Aujourd'hui, on laisse tomber ces algorithmes et l'on va travailler sur les déplacements via **Scratch** ou **Snap !**
[[https://scratch.mit.edu/|Version 1.4 de Scratch]], [[https://scratch.mit.edu/projects/editor/?tip_bar=home|version 2 de Scratch (en ligne, nécessite Flash)]], [[https://beta.scratch.mit.edu/|version 3 de Scratch en ligne (béta mais sans flash, html5)]] ou off line de [[https://snap.berkeley.edu/|Snap !]]
{{ :aseba:capture_d_ecran_2018-11-07_16-55-51.png?400 |}}
Les aventures de notre héros continuent.
On va utiliser **Scratch** et / ou **Snap !** pour déplacer son sous-marin jusqu'au trésor.
But : Utiliser le drapeau vert, les déplacements, les changements d'orientation, le positionnement initial, changer son lutin, insérer une image de fond.
Les élèves connaissent déjà ces logiciels, ils les ont utilisés les années précédentes.
Rappel rapide sur comment on modifie :
* le(s) lutin(s)
* la(es) scène(s)
Mis à disposition d'un dossier ressource où ils trouveront la carte de fond sur le serveur et création d'un dossier où ils enregistreront leur travaux (fichiers scratch).
Et hop ! C'est parti. Globalement, intuitif, les élèves enchainent les blocs et finissent par écrire un programme fonctionnel.
Il est nécessaire de rapidement faire un point pour rappeler qu'avant toute chose le programme doit commencer par **positionner X et Y** le lutin et lui donner son **orientation**.
Pour connaître l'exacte position X-Y du lutin penser à cocher les cases **Position X** et **position Y** dans le menu **Mouvement**
{{ :aseba:scratchxy.png?400 |}}
Puis on joue avec les blocs ;)
{{ :aseba:capture_d_ecran_2018-11-07_16-58-28.png?400 |}}
Les élèves travaillent en binôme bien qu'il reste des PC de disponible, l'entraide et la mutualisation, coopération sont ainsi favorisées.
| {{ :aseba:img_2097_resultat.jpg?200 |}} | {{ :aseba:img_2098_resultat.jpg?200 |}} | {{ :aseba:img_2099_resultat.jpg?200 |}} | {{ :aseba:img_2100_resultat.jpg?200 |}} |
Le maître n'intervient qu'en dernier recours.
Pour mieux visualiser les déplacements, pensez au bloc **Attendre X seconde(s)** dans les **Contrôles**.
{{ :aseba:scratch-sec.png?200|}}
Certains élèves proposent d'eux même de mettre des messages sur le parcours. Les encourager.
D'autres de faire parler le lutin. Souvent ça tourne à la cacophonie. Leur dire qu'effectivement c'est possible mais que ce sera l'objet d'une autre séance et qu'aujourd'hui ce ne sera pas abordé.
Différenciation : Si certains terminent plus vite que d'autres, les faire créer un lutin sous-marin avec l'éditeur de lutin.
| {{ :aseba:scratch-sousmarin.png?200 |}} | {{ :aseba:scratch-sm-ed.png?200 |}} |
Enfin, la séance se termine par une séance où tous les points importants sur repris par vidéo projection et une trace écrite dans le cahier de Sciences.
{{ :img_2107_resultat.jpg?200 |}}
Exemple de résultat attendu :
{{ :aseba:scratch-final.png?200 |}}
==== Prolongement Thymio ====
**Thymio comme sous marin**
**__Possibilité de prolongement avec Thymio__**
* Sortir le fond de carte en A3.
* Utiliser un robot Thymio pour rejoindre le trésor.
* Pré requis : avoir déjà utilisé un Thymio, connaître le mode Suivre un chemin.
* Réalisation : découper des bandes noires, les coller et le robot suivra le chemin.
* Non abordé ici car les Thymio n'entreront en action que plus tard. Mais idée intéressante...
===== Les ressources : fiches à télécharger pour mener les activités ======
Ces documents viennent, en partie, du site [[http://www.fondation-lamap.org/fr/123codez|livre 1,2,3 Codez]].
* Parcours pour l'algorithme {{ :aseba:fiche_12.pdf |}}
* Algorithme à compléter {{ :aseba:fiche_13.pdf |}}
* Message à décoder {{ :aseba:fiche_14.pdf |}}
* Chasse au trésor (sous-marin) {{ :aseba:fiche_15.pdf |}}
* Programme final Scratch {{ :aseba:biot-deplacement.sb |}}
* Programme d'un élève avec lutin modifié {{ :aseba:deplacement-fa-tinu-sm.sb |}}