Le travail qui suit s'inscrit dans le cadre d'une thèse élaborée en cotutelle entre l'Université Paris Descartes en France et l'Université de Patras en Grèce, portant sur l'apprentissage de l'informatique par de très jeunes enfants. L'objet de cette étude a été l'analyse de la manière dont les élèves de l'école maternelle peuvent s'approprier des concepts de programmation à l'aide du logiciel ScratchJr. Dans ce contexte, nous avons réalisé une étude exploratoire auprès de deux écoles maternelles grecques, auprès de vingt-deux élèves de grande section. Pourtant, afin de respecter les consignes de cette journée nous avons choisi de nous concentrer sur l'analyse du concept de messages pour l'une de deux classes.
Depuis quelques années, il existe un mouvement international autour de l'éducation à l'informatique et en particulier à la programmation pour tous, depuis même la petite enfance. Plusieurs pays de l'Europe ont ainsi introduit l'enseignement de l'informatique et de la programmation en primaire ou en secondaire. À partir de l'octobre 2016, les nouveaux programmes scolaires en France ont comporté une introduction de la robotique et de la programmation dès l'école élémentaire. Ce choix provient d'une volonté à développer chez les élèves des compétences en programmation, afin de les préparer à devenir des citoyens du monde numérique qui les entoure et qui les accompagnera dans les années à venir. Par conséquent, des environnements de programmation ont été vus comme le moyen, pour développer des compétences de cet ordre.
La petite enfance a été pendant plusieurs années un groupe d'âge, qui n'était pas concerné par les environnements de programmation, destinant souvent les élèves à partir de l'âge de 8 ans. Pourtant, cette situation a totalement changé ces dernières années, surtout après l'apparition de travaux scientifiques démontrant que les jeunes enfants peuvent développer des concepts de programmation simples dès l'âge de 4ans (Bers, 2012).
L'environnement de ScratchJr est peut-être le mieux placé pour enseigner une gamme assez large des concepts fondamentaux en informatique, car il met en œuvre des éléments de différents paradigmes de programmation, tels que la programmation structurée, évènementielle et orienté-objet. Il s'agit d'un langage visuel et graphique, destiné aux enfants dès 5 à 7 ans, qui a été créé afin de permettre aux derniers d'apprendre à programmer pendant qu'ils créent leurs animations (Flannery, Kazakoff, Bonta, Silverman, Bers & Resnick, 2013).
Nous nous intéressons ici à un paradigme de programmation peu enseigné : la concurrence par passage de messages. La concurrence est la possibilité pour plusieurs procédures d'être exécutées en même temps (Ben-Ari, 1996). Selon cet auteur, les programmes concurrents doivent s'occuper de deux problèmes : d'une part la synchronisation et, d'autre part, la communication entre entités. La synchronisation est indispensable. La communication en est un moyen. La synchronisation et la communication sont fondées sur le passage de messages.
Malheureusement, il n'y a pas beaucoup de travaux disponibles sur ce sujet dans la littérature scientifique. Pourtant, quelques travaux existent pour d'autres tranches d'âge, mais en utilisant d'autres logiciels, surtout Scratch, le grand frère de ScratchJr.
Comme le souligne Fatourou, Zygouris, Loukopoulos et Stamoulis (2018), nous vivons dans un monde concurrent où très souvent nous sommes obligés d' effectuer deux ou plusieurs taches simultanément, synchronisées ou pas. Par conséquent, ces auteurs ont utilisé les expériences préalables de 123 élèves, entre dix et onze ans, de sept classes d'école primaire en Grèce, pour enseigner des concepts de concurrence, tels que le déclenchement concurrent de deux scripts pour un lutin et la synchronisation des lutins à l'aide du passage de messages, entre autres, en utilisant le logiciel Scratch. Les résultats de cette étude montrent que la synchronisation par passage de messages a posé la plupart de problèmes aux élèves, car seulement un élève sur cinq a réussi de l'utiliser correctement sur son projet final.
Le passage de messages sur ScratchJr est exprimée par deux commandes : « envoyer message », envoie un message de couleur spécifique à un ou plusieurs personnages et la commande « quand message reçu », permet de déclencher le script des personnages quand la couleur du message correspond.
La commande « envoyer message » se fait dans un programme, comme toutes les autres commandes de ScratchJr. Son seul paramètre est la couleur. La commande « quand message reçu » se place au début d'un programme, en prenant la place du drapeau vert local. En ce qui concerne la sémantique, lors de l'exécution d'un envoi de message dans un script de personnage, ce dernier s'arrête et les scripts des personnages, qui prévoient l'arrivée d'un message de la même couleur sont déclenchés de manière concurrente. Le personnage envoyant le message continue l'exécution de son programme dès la fin de l'exécution des programmes des personnages recevant le message envoyé. Les programmes des personnages à l'écoute s'exécutent parallèlement.
La sémantique de ces commandes est plus simple que celle de la commande de répétition, car les élèves disposent des représentations initiales en ce qui concerne le processus de l'échange de messages dans leur vie quotidienne. Cela facilite beaucoup le processus d'enseignement, parce que nous avons la possibilité de nous fonder sur cette connaissance pour construire à l'aide d'exemples concrets le concept de message. Pourtant, malgré la présence de ces représentations chez les élèves, on a relevé une série des problèmes cognitifs.
D'après nos données, un des principaux obstacles est la compréhension partielle des concepts de séquence et de concurrence. En effet, les élèves, qui n'ont pas une idée claire relativement à l'exécution séquentielle et au déclenchement concurrent de programmes sur ScratchJr, ont une grande difficulté à comprendre la communication et la connexion entre les deux personnages participant à l'échange de messages.
- Poster