« STIC:STIC III (2016)/Programming Boty » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 92 : Ligne 92 :
Le jeu se déroule en deux étapes:
Le jeu se déroule en deux étapes:
# Phase de réflexion : les joueurs réfléchissent à une solution et placent les jetons de déplacement sur leurs supports pour organiser leur solution (support principal et supports procédures);  
# Phase de réflexion : les joueurs réfléchissent à une solution et placent les jetons de déplacement sur leurs supports pour organiser leur solution (support principal et supports procédures);  
# Phase d’action : les joueurs tente de résoudre l’énigme en déplaçant le robot selon leur programmation. Par exemple, on peut imaginer que l’un lit le code pendant que l’autre met le robot en mouvement par exemple. Peut-être aussi l’enseignant peut entrer en jeu pour vérifier qu’ils exécutent correctement les déplacements)
# Phase d’action : les joueurs tentent de résoudre l’énigme en déplaçant le robot selon leur programmation. Par exemple, on peut imaginer que l’un lit le code pendant que l’autre met le robot en mouvement par exemple. Peut-être aussi l’enseignant peut entrer en jeu pour vérifier qu’ils exécutent correctement les déplacements)


A cette étape, soit la programmation est réussie (le robot a réussi à ramasser toutes les pièces), soit la programmation comporte encore des erreurs. Dans ce dernier cas, les joueurs reprennent l’étape de réflexion, et ainsi de suite jusqu’à ce qu’ils trouvent une solution.
A cette étape, soit la programmation est réussie (le robot a réussi à ramasser toutes les pièces), soit la programmation comporte encore des erreurs. Dans ce dernier cas, les joueurs reprennent l’étape de réflexion, et ainsi de suite jusqu’à ce qu’ils trouvent une solution.

Version du 9 janvier 2017 à 11:27

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Introduction

Dans la vie professionnelle comme dans la vie quotidienne, nous sommes de plus en plus entouré par les nouvelles technologies. Connaître les bases de l’algorithmique et de la programmation devient donc de plus en plus indispensable pour mieux comprendre ce domaine, être capable d’en résoudre les problèmes et garder un esprit critique vis-à-vis du pléthore de dispositifs qui nous sont proposés.

Nous sommes parties de ce constat pour imaginer “Programming Boty” inspiré du jeu Lightbot (disponible sur Apple) afin de proposer une initiation à la programmation informatique et à l’algorithmique. L’objectif du kit n'est pas de faire un cours d’informatique mais bien d’initier à la “pensée informatique” c’est-à-dire de donner des clés permettant de comprendre cet univers.

Basé sur la pédagogie de Maria Montessori, ce kit appartient à une catégorie d'objet d'apprentissage nommée “manipulation conceptuelle” (Zuckerman, 2006). Comme le stipule cet auteur, les artefacts de Montessori portent sur des concepts abstraits et non sur le monde physique. Le principe est qu’en manipulant, les apprenants parviendront à «absorber» le concept par l'interaction physique. Dans le fonctionnement imaginé pour notre kit, nous avons placé au centre du dispositif le principe de l’Autonomie en y ajoutant une dimension d’Apprentissage collaboratif.

Dans cette page, nous détaillerons les étapes de construction du kit en commençant par l’exposition de la problématique et du cahier des charges. Nous présenterons ensuite notre solution (le kit a proprement parlé) ainsi que les tests utilisateurs réalisés.

Problématique

^^ ## A COMPLETER ##^^


Cahier des charges

Public(s) cible(s)

A l'origine, le public visé sont les enfants de 6 à 12 ans soit des élèves de degré primaire. L’enseignant, quant à lui, interviendrait pour expliquer les règles du jeu et gérer le niveau de difficultés (niveau 1, 2 ou 3).

Cependant, ce kit pourrait également être destiné à des adultes n’ayant aucune notion d’informatique comme les séniors, les étudiants débutant la programmation soit tous les novices en algorithmique et programmation. Un modérateur jouerait alors le rôle que l’enseignant occupe pour les élèves de degré primaire.

Périmètre

La question de l’apprentissage du code informatique est de plus omniprésente dans l’éducation. Il constitue une compétence transversale mais de plus en plus fondamentale avec l’évolution des nouvelles technologies de l’information et de la communication. A l'échelle du monde et en premier lieu dans les pays dits développés, le code va donc devenir de plus en plus présent. Aussi, la première cible pour ce kit sont donc les pays dits industrialisés et, dans un proche avenir, les pays dits en voie de développement.

Objectifs du kit

Objectif de conception

Programming Boty est un kit de construction destiné à proposer une initiation à la programmation informatique afin d'initier à la pensée / la logique informatique. Il ne s'agit donc pas de proposer un cours d'informatique à destination de futurs professionnels.

Objectif pédagogique

A l'issue de l'apprentissage avec ce kit, les apprenants seront capables d’utiliser les principes de base de la programmation et de l'algorithmique en manipulant des variables et des procédures.

Description fonctionnelle du projet

Il s’agit ici de décrire les exigences et les contraintes associées à la conception de ce kit

Exigences et contraintes du kit de construction
Exigences Contraintes
Pédagogie active, Apprentissage par découverte Technique : kit en noir et blanc, réalisation des dessins en SVG sur Inkscape
Apporter une dimension dimension collaborative, une dynamique de groupe Organisationnelle : jeu compatible avec un enseignement en classe
Favoriser l'autonomie de l'apprentissage (voir Pédagogie Montessori) Conceptuelle : jeu accessible aux novices du code informatique, jeu adaptable à plusieurs profils d'individus (enfants, séniors...)
Kit réalisable avec une graveuse / découpeuse laser

Livrable attendu

Un kit constructif adapté à l’apprentissage du code informatique en classe (élèves de 6-12 ans) comportant les bases de la programmation et de l'algorithmique. Pour que ce kit puisse être mis en place en classe, il est nécessaire que l’enseignant puisse réaliser plusieurs groupes d’élèves qui doivent apprendre en autonomie et en collaborant. En effet, matériellement, ce dernier n’aura pas le temps de s’occuper de tous les groupes et pédagogiquement, cela favorise la pédagogie active que nous souhaitons mettre en place à travers ce kit.

En outre, ce kit doit aussi pouvoir être proposé à d’autres profils d’individus comme les séniors, les étudiants débutant le code informatique par exemple. Il ne doit donc pas être trop infantilisant ni trop simpliste.

Le point commun de toutes ces populations sera d’être novices en codage informatique.

Délai de réalisation

Remise finale du projet le 25 Janvier 2017.

Solution

Description du jeu et matériel

Programming Boty est un kit constructif destiné à proposer une initiation à la programmation informatique. Le fonctionnement du jeu est basé sur des concepts de programmation à l’instar du jeu Lightbot qui a inspiré ce projet. Initialement, ce kit est destiné à des enfants de 6 à 12 ans mais il peut également être manipulé par des adultes novice en programmation

Le kit est composé de :

  • Une grille de jeu,
  • Boty, le robot à déplacer,
  • Des “pièces de déplacements” pour programmer les mouvements Boty sur la grille,
  • Des “outils” (pièces mécaniques) que Boty doit ramasser au cours de son parcours,
  • De “supports principaux” pour la disposition des différentes variables permettant le déplacement de Boty,
  • De “support procédures” pour la conception des procédures par les joueurs (niveau 2 et 3),
NB : Pour plus d’informations concernant le matériel, se reporter à la section Prototype papier.

Le jeu se joue en relative autonomie; l’enseignant/modérateur intervient dans le ‘mode practice’ pour expliquer les règles du jeu et gérer le niveau de difficultés (niveau 1, 2 ou 3).

Objectif et règles du jeu

L’objectif est de programmer les déplacements du robot afin que ce dernier aille ramasser toutes les pièces mécaniques disposées sur le plateau.

Avant de commencer, le robot et les pièces mécaniques sont placés sur la grille selon le scénario choisi (des maps de positionnement des pièces mécaniques seront à disposition selon différents degrés d'expertises que l’enseignant / modérateur introduit petit à petit : Dans un premier temps des déplacements simples en n’utilisant que le support principal (niveau 1) Puis introduire l’utilisation de la procédure 1 (niveau 2) Puis l’utilisation des deux procédures à la fois (niveau 3) La difficulté du jeu augmente donc avec le nombre des pièces disposées sur le plateau et le nombre limité de pièces de déplacements pouvant être positionnées sur le support principal (d’où la nécessité pour les joueurs de recourir aux supports procédures pour pouvoir résoudre l’énigme).

Le jeu se déroule en deux étapes:

  1. Phase de réflexion : les joueurs réfléchissent à une solution et placent les jetons de déplacement sur leurs supports pour organiser leur solution (support principal et supports procédures);
  2. Phase d’action : les joueurs tentent de résoudre l’énigme en déplaçant le robot selon leur programmation. Par exemple, on peut imaginer que l’un lit le code pendant que l’autre met le robot en mouvement par exemple. Peut-être aussi l’enseignant peut entrer en jeu pour vérifier qu’ils exécutent correctement les déplacements)

A cette étape, soit la programmation est réussie (le robot a réussi à ramasser toutes les pièces), soit la programmation comporte encore des erreurs. Dans ce dernier cas, les joueurs reprennent l’étape de réflexion, et ainsi de suite jusqu’à ce qu’ils trouvent une solution.

Fonctionnement du kit

Nous avons imaginé un fonctionnement selon deux “modes” afin que le jeu se prolonge au delà de l’apprentissage de concepts :

  • Mode practice

Le mode “practice” correspond à la phase d’apprentissage des concepts de programmation. Les apprenants sont en groupe de 3, 4 ou 5. Ils doivent réfléchir collectivement à la combinaison de variables la plus efficace possible afin que le robot puisse atteindre son but en utilisant un minimum de variables. Pour cela, ils doivent échanger et se mettre d’accord sur la procédure en classant les éléments sur le support mais sans pouvoir toucher physiquement le robot sur le plateau. Ils doivent donc être capable de conceptualiser la procédure mentalement avant de la réaliser physiquement sur le plateau.

  • Mode compétition

Ce mode permet de prolonger l’utilisation de l’outil pédagogique (apprentissage de concepts) décrit dans le mode “practice”. Une fois l’apprentissage des concepts réalisé, le mode compétition peut entrer en jeu. Il fait intervenir deux groupes d’apprenants qui se livrent une ‘battle’ pour trouver le plus rapidement possible la solution.


Pour apporter de l’intérêt au jeu et surtout susciter la motivation des apprenants, nous avons imaginé un système de points pour le mode compétition selon le barème suivant:

  • Utilisation d’un minimum de pièces (= toutes les pièces du support non utilisée) : +1 point par pièce non utilisée
  • Echec tentative (test sur le plateau) : -1 point par tentative échouée (nombre illimitée de tentatives)
  • Réussite 1re tentative : +10 points
  • Bonus rapidité (1er groupe à avoir terminé + réussite tentative) : +5 points

Qui est l’équipe gagnante ? Nous avons imaginé qu’une “battle” pouvait se dérouler en 3 parties (i.e 3 maps de positionnement). Par conséquent, l’équipe qui gagne une partie est celle qui a trouvé la solution en premier et l’équipe qui gagne le match est l’équipe qui remporte le plus de points.

Résultats

Conception du kit

La phase de conception du kit comporte deux sous-phases:

  1. La réalisation d'un prototype papier pour matérialiser le jeu
  2. La réalisation des dessins des élément sur un logiciel.

Prototype papier

Une fois les bases conceptuelles posées, un prototype papier a d'abord été réalisé.

Date de réalisation : Octobre 2016

Type de matériel : papier

Croquis et description des pièces
Croquis Description
Plateau en damier (5x5) Damier LinhBoufflers.png Il s’agit de la grille sur laquelle vont être disposées des pièces mécaniques que le robot devra aller ramasser selon les déplacements qu’on lui aura programmé.
Personnage robot Robot LinhBoufflers.png Il s’agit du robot dont il faut programmer les déplacements. Le robot “tiendra debout” par un système de chevalet ou par imbrication dans un support horizontal.
Personnage robot Pieces LinhBoufflers.png Il s’agit des pièces qui seront disposées sur le plateau de jeu et que le robot doit ramasser (élaboration pièces en cours selon la thématique "mécanique").
Jetons de déplacement Jetons LinhBoufflers.png Il s’agit des éléments (jetons) dont les joueurs vont se servir pour programmer les déplacements du robot sur le plateau:

a. Procédure 1 (le robot exécute les déplacements indiqués dans la procédure 1);

b. Avancer (le robot se déplace d’une case vers l'avant);

c. Procédure 2 (le robot exécute les déplacements indiqués dans la procédure 2);

d. Ramasser l’objet (le robot ramasse l’objet de la case);

e. Tourner à droite (le robot s’oriente vers la droite, mais n’avance pas);

f. Tourner à gauche (le robot s’oriente vers la gauche, mais n’avance pas).

Le joueur aura plusieurs pièces de chaque type à sa disposition.

Support principal Suport LinhBoufflers.png Le support principal est prévu pour disposer leurs jetons dans les emplacements prévus. Il doit accueillir la solution retenue pour faire avancer le robot. Il peut accueillir 12 pièces de déplacement maximum.
Support procédure 1 et support procédure 2 Procédure1 LinhBoufflers.pngProcedure2 LinhBoufflers.png Les joueurs placent les jetons aux emplacements prévus. Les supports de procédure peuvent accueillir 4 jetons chacun.

Croquis du jeu CroquisProgrammingBoty.png

Ci-dessus, exemple de partie de niveau avancé (beaucoup d’objets à ramasser et utilisation de deux procédures) avec une solution possible. Le robot démarre la partie dans le coin inférieur gauche.

Fichiers SVG

Une fois le prototype papier finalisé, les dessins des différents éléments du Kit ont ensuite été réalisés sur Inkscape. Ils sont disponibles dans le dossier XXXXXXXXXXXXX (accès uniquement via le réseau de l'UNIGE ou en VPN).

Prototypage carton

Date de réalisation : Novembre / Décembre 2016

Type de matériel : carton ondulé

Bilan et correctifs à apporter :

Après la réalisation de ce prototype papier, voici les éléments qui restaient à finaliser :

  1. Le nombre de jetons de déplacement à prévoir : à adapter selon les niveaux ? Avoir un nombre fixe ?
  2. Système de points : évaluation de l’aspect motivant / démotivant du système de points tel qu’il est actuellement
  3. Dimensions du kit constructif : taille des pièces / plateau / supports
  4. Prise en compte d'une fonctionnalité additionnelle du kit : aller au délà des scénarios fournis, c'est à dire laisser la possibilité de créer d’autres maps de positionnement (aspect non limitatif du jeu); ce qui suppose de prévoir suffisamment de pièces (combien?)
  5. Maps de positionnement : à tester lors du test utilisateur et à modifier si nécessaire

Réalisation définitive sur contreplaqué

## A COMPLETER ##

Test du projet : réalisation d'un test utilisateur

## A COMPLETER ##

Discussion

## A COMPLETER ##

Notre objectif était de réaliser un kit de construction destiné à proposer une initiation à la programmation informatique et à l’algorithmique. Aux vues du résultat final et des commentaires positifs des utilisateurs, nous pouvons conclure que notre solution répond à l'objectif de départ d'un point de vue utilisabilité. D'un point de vue conceptuel et théorique, ce kit appartient bien à la catégorie d'objet d'apprentissage défini par la "manipulation conceptuelle" de Maria Montessori où il s'agit de manipuler des concepts abstraits que sont les variables et procédures dans la programmation informatique.

ITEMS:

Discussion sur les résultats du test utilisateur : les résultats sont-ils fiables ? Limites du kit construction Implications futures / améliorations futures


[ REPRISE DES QUESTIONS DU MODULE 3]

  • Maps de positionnement : à tester lors du test utilisateur et à modifier si nécessaire test sur public adulte, TBA pour les enfants à faire sur un autre test voire à tester sur les MALTT 1
  • Adaptation du nombre jetons de déplacement à prévoir : A adapter selon les niveaux ? (mais comment adapter) non, support limitant
  • Elaboration des maps: élaborer des maps de difficulté croissante. Sur quels critères? (éléments faisant varier la difficulté: nombre de pièces à ramasser, longueur du chemin à parcourir, nombre d'événements/d’actions à programmer)
  • Elaboration des maps: comment signifier l’orientation du robot lors du placement? C’est une question important car cela détermine le “code”. Une solution coûteuse: avoir 4 sprites du robot (face, les deux profils, de derrière). Autre solution : le robot commence toujours dans la même orientation. Solution retenue à l’heure actuelle (simple orientation du robot (-90, 90, 180 degrés) en considérant qu’il avance toujours du côté des roues)
  • Prévoir le bon nombre de jetons de déplacements: s'il n'y a pas assez de jetons, ça pose problème pour trouver des solutions et s’il y en a trop, il y a un problème de temps de développement.

[APPORT PEDAGOGIQUE DE CE TYPE D'OUTIL] Apport pédagogique de ce type d’outil Cet outil pédagogique est à utiliser en classe par les enseignants dans le cadre d’une initiation à la programmation. Son apport par rapport aux outils traditionnels de cet enseignement (logiciel) est qu’il permet d’avoir une approche ludique et simplifié de l’univers de l’informatique ; univers qui peut “faire peur” aux novices. Cet outil permet de comprendre les bases de la programmation qui peut être assez complexe à appréhender. En manipulant des objets physiques, nous imaginons que l’apprentissage sera facilité.

Bibliographie

Brooke, J. (1996). « SUS: a « quick and dirty » usability scale ». In P. W. Jordan, B. Thomas, B. A. Weerdmeester, & A. L. McClelland. Usability Evaluation in Industry. London: Taylor and Francis.

Zuckerman, O. (2006). Historical overview and classification of traditional and digital learning objects. Repérer à https://llk.media.mit.edu/courses/readings/classification-learning-objects.pdf, (novembre 2016)