Bonjour Je m'appelle Mikhail Kapelko. Je suis engagé dans le développement de logiciels professionnels depuis plus de 10 ans. Parmi ceux-ci, les dernières années sont associées à iOS. Pendant mon temps libre, je développe des jeux et des outils pour leur création.
Revue
Aujourd'hui, je veux parler de mon expérience dans l'enseignement de la programmation pour enfants, en particulier, nous considérerons:
- organisation du processus d'apprentissage
- programme de formation
- jeu de mémoire
- outil de programmation
- les leçons
- résultats et plans
Organisation du processus d'apprentissage
La formation se déroule dans le cadre de la responsabilité sociale de l'entreprise: l'entreprise met à disposition des locaux en matériel, et fédère également les salariés qui souhaitent s'essayer en tant qu'enseignants, avec les salariés qui souhaitent éduquer leurs enfants. Tout cela se fait exclusivement sur une base volontaire.
Les enseignants potentiels sont divisés en groupes de sorte qu'un groupe de trois enseignants se compose d'un expérimenté et de deux nouveaux arrivants. Un groupe d'enseignants dirige un groupe d'élèves. Les élèves sont ventilés par âge et par compétence.
En 2018, la deuxième fois, j'ai participé à un programme de formation pour les enfants âgés d'une dizaine d'années. Notre groupe a travaillé d'octobre à décembre 2018 le samedi de 10h00 à 12h00. Profitant de ma position officielle, j'ai également traîné ma femme aux cours.
Programme de formation
Lorsque j'ai participé pour la première fois, notre groupe a enseigné la programmation aux enfants sans but: nous avons proposé des tâches simples pour la leçon pour expliquer les opérateurs. En conséquence, à la fin de la formation, nous n'avions rien de concret à évaluer, sur quoi se vanter et sur quoi analyser.
Cette deuxième fois, j'ai décidé que mes enfants et moi mettrions en œuvre le soi-disant jeu de mémoire. Comme critère de réussite de la formation, j'ai déterminé la condition suivante: à la fin du cours, chaque étudiant crée indépendamment un jeu de mémoire simple à partir de zéro en 1 heure.
Pour atteindre ce critère, j'ai décidé de vérifier l'énoncé «La répétition est la mère de l'apprentissage», nous avons donc tout créé à partir de zéro à chaque leçon. J'insiste sur le fait que nous n'avons rien enregistré dans le compte des étudiants. La tâche était de conserver l'habileté de créer un jeu dans la tête, pas dans l'ordinateur.
Jeu de mémoire
Voyons ce qu'est un jeu de mémoire.
1) Dans le cas le plus simple, nous avons 16 cartes, et seulement 8 sont uniques, les 8 restantes sont leurs paires.

Dans l'image présentée, nous n'avons que deux cartes avec un chat, un chien, etc.
2) Au début du jeu, nous mélangeons les cartes et les posons face cachée.

3) Le premier des participants au jeu révèle deux cartes.

4) Si les cartes sont différentes, remettez-les dans leur position d'origine: posez-les face cachée.

5) Le prochain participant au jeu ouvre une autre paire de cartes.

6) Si les cartes correspondent, retirez-les du terrain de jeu.

Le but du jeu est de retirer toutes les cartes du terrain. Le jeu sous cette forme n'inclut pas de compétition, vous pouvez donc jouer une seule personne.
D'une part, le jeu de mémoire est assez simple, d'autre part, l'implémentation du jeu affecte les fonctionnalités de base nécessaires pour créer un jeu plus ou moins complexe:
- création d'éléments
- leur placement sur le terrain
- sélection d'articles
- comparer les éléments sélectionnés
- masquer les éléments correspondants
Outil de programmation
Comme outil, nous avons utilisé le support Scratch . Il est conçu pour enseigner la programmation aux enfants, de sorte que chaque action, chaque opérateur est représenté graphiquement.
Par exemple, avec le script suivant, vous pouvez faire pivoter un chat à 360 degrés par seconde:

Voici le résultat:

Je note que c'est une solution assez réussie pour présenter le code graphiquement. Par exemple, une solution payante, désormais promue par SAP, implique l'utilisation de soi-disant cubes pour la programmation:

Ici, vous ne pouvez saisir que les valeurs souhaitées dans les champs obligatoires. Si vous avez besoin de quelque chose de non standard, seul le script vous aidera, qui est à nouveau présenté avec un cube.
Par expérience personnelle, je dirai que la solution Scratch ne ralentit pas du tout, ce qui ne peut pas être dit de la solution SAP.
Première leçon
La première leçon était une introduction, nous n'avons donc pas utilisé d'ordinateurs.
Le plan était le suivant:
- Apprenez à connaître
- Jouez à un jeu de mémoire
- Apprenez le concept d'un algorithme
- Écrire un algorithme de jeu
- Analysez la leçon
1) Connaissance
Les enseignants avec les élèves se tiennent en cercle. Cela égalise tout le monde et fait de chacun un membre de l'équipe.
Le premier participant appelle son nom et explique pourquoi il a décidé de suivre ce cours. Le deuxième et les participants suivants répètent d'abord le nom et l'histoire de chaque participant précédent, après quoi ils nomment et racontent.
Cela ressemble à ceci:
- Vasya: "Je m'appelle Vasya, je veux apprendre Scratch parce que mon père m'a fait"
- Dima: "C'est Vasya, papa l'oblige à faire Scratch. Mon nom est Dima, et c'est ma quatrième année de Scratch"
- Olya: "Voici Vasya, ses parents le forcent. Voici Dima, il est pratiquement un vétéran de Scratch. Je m'appelle Olya, j'enseigne depuis la première année, je vais étudier avec tout le monde."
Ce format de datation a les objectifs suivants:
- Connaissance
- Chaque membre de l'équipe doit connaître le nom des autres membres de l'équipe
- Espace commun
- Tous les participants dans le cercle, et non derrière les emplois, ce qui réduit la distraction pour les jeux sur l'ordinateur
- Égalité
- Les enseignants et les élèves dans un seul cercle, ce qui équilibre tout le monde en tant que membres de l'équipe sans hiérarchie
- Attention
- Chaque membre de l'équipe doit écouter attentivement le reste de l'équipe afin de répéter correctement ce qu'il a dit.
- Rétroaction
- Chaque membre de l'équipe doit exprimer ses pensées aussi clairement que possible, sinon les autres ne pourront tout simplement pas le répéter
- Amusant
- Les problèmes de mémoire des noms font rire tout le monde
2) Jeu de cartes mémoire
- Nous prenons deux jeux de cartes et en sélectionnons 8 identiques
- Nous plaçons les cartes dans une grille 4x4 face cachée sur la table
- Les élèves se tiennent autour de la table
- Chaque élève, à tour de rôle, retourne une paire de cartes
4.1. Si les cartes correspondent, retirez-les du terrain
4.2. Si les cartes sont différentes, retournez-les face cachée
Les étudiants aiment vraiment jouer à des jeux de société. Pendant le jeu, les enseignants prononcent ce qui se passe.
Après quelques soirées, nous passons à l'étude du concept d'algorithme.
3) Le concept d'un algorithme
- Nous demandons d'abord aux étudiants, nous donnons la possibilité de parler, nous découvrons le niveau de chaque étudiant
- Si nécessaire, corrigez les déclarations si elles sont proches de la réponse attendue
- Nous suggérons d'écrire un algorithme pour transférer une personne de l'état "debout devant la porte du bureau" à l'état "travaillant à l'ordinateur du bureau"
Les élèves aiment vraiment aller au tableau et y écrire, nous appelons donc chaque élève tour à tour pour écrire un paragraphe de l'algorithme. Nous utilisons l'élève le plus actif comme exécuteur d'algorithmes.
4) L'algorithme du jeu
Nous suggérons d'écrire un algorithme de jeu, encore une fois, nous appelons tout le monde à ajouter un point au tableau. Après avoir terminé la description de l'algorithme, nous jouons à nouveau avec les cartes, mais cette fois, chaque élève doit prononcer l'étape de l'algorithme.
Cela ressemble à ceci:
- Vasya: "Nous plions 16 cartes face cachée"
- Dima: "Retournez quelques cartes"
- Pacha: "Si deux cartes sont différentes, retournez-les face visible"
- Philip: "Retourner quelques cartes"
- Misha: "Si deux cartes coïncident, retirez-les du terrain"
5) Analyse de la leçon
Ceci termine la première leçon, et les enseignants ont la possibilité de discuter à la fois de leurs impressions de la leçon et des élèves, de développer des approches pour calmer les gens et les militants, et de convenir de plans supplémentaires pour les prochaines leçons.
Nous avions les solutions suivantes:
- Pour planter le calme et les militants à travers l'un afin de maintenir un équilibre entre bruit et silence. Sinon, un groupe de militants crée un foyer de tempêtes et un groupe de silencieux crée un foyer de désert, ce qui ralentit le processus d'apprentissage.
- Exiger de la précision des étudiants les militants aiment faire des grimaces, ce qui nuit à la discipline.
Deuxième et troisième leçons
Nous avons recommencé les leçons suivantes avec un échauffement: nous nous sommes levés en cercle, appelé un nom et dit qui a fait quoi. Et si vous ne l'avez pas fait, alors pourquoi. Comme précédemment, chaque participant a d'abord répété ce qui avait été dit par les précédents et a ensuite seulement parlé de lui.
Dans la deuxième leçon, nous avons créé des exigences pour un élément du terrain de jeu et essayé de créer cet élément dans Scratch. Ce fut un succès total.
Dans la troisième leçon, nous avons essayé de créer 16 éléments et de les disposer dans une grille 4x4. Ici, nous avons calé, car les élèves ne pouvaient pas comprendre le système de coordonnées pour disposer 16 éléments dans la grille. Il est devenu évident que les plans de cours ne sont que des plans, et la réalité fait ses changements.
Nous avions deux façons de résoudre le problème avec le système de coordonnées:
- Continuer à enseigner le système de coordonnées avec le risque de ne pas avoir le temps de créer un jeu avant la fin du cours
- Modifiez les exigences du jeu afin que le système de coordonnées ne soit pas nécessaire
Nous avons décidé de suivre la deuxième voie, car nous ne sommes toujours pas une école et notre objectif était d'enseigner comment créer un jeu, c'est-à-dire appliquer les connaissances dans la pratique, pas en théorie. Par conséquent, nous avons décidé de remplacer la grille d'éléments 4 x 4 par un cercle de 16 éléments.
Cette décision m'a conduit aux conclusions suivantes:
- Pour résoudre le problème, vous pouvez souvent trouver un moyen plus simple.
- Cette voie est plus facile à comprendre, quoique moins flexible.
- Vous pouvez emprunter un chemin difficile pour augmenter la flexibilité plus tard, quand cela sera vraiment nécessaire.
- La simplification rapproche de l'objectif final, la complication s'en éloigne
Quatrième leçon et suivantes
À partir de la quatrième leçon, nous avons annulé l'étape de rédaction des exigences, elle a commencé à reprendre l'essentiel de la leçon: nous avons de nouveau dévié vers la pratique, pas la théorie, pour respecter les délais. Cette fois, toutes les exigences ont été écrites à l'avance et émises «d'en haut». Mais personne ne les lisait encore.
Les quatrième et cinquième leçons que nous avons passées à créer 16 éléments sous la forme d'un cercle, à sélectionner une paire d'éléments et à vérifier leur coïncidence.
De la sixième leçon à la neuvième, inclusivement, nous avons recréé le jeu à chaque fois à partir de zéro. Chaque fois que cela s'est produit de plus en plus vite, donc à partir de la huitième leçon, nous avons introduit un classement, où nous avons enregistré les étapes de création du jeu et le temps de chaque élève.
Dernière leçon
À la dernière leçon, tout le monde a réussi à créer un jeu à partir de zéro plus ou moins indépendamment en une heure ou deux.
Voici le classement de la dernière leçon (les noms sont cachés):

Et ci-dessous, vous pouvez regarder la création d'un jeu de mémoire dans Scratch pour l'étudiant qui a créé le jeu le plus rapidement: en 30 minutes.
Résultats et plans
Le résultat de la formation a dépassé mes attentes:
- trois élèves font en environ une heure ou plus
- deux en une heure et demie ou plus
Cette année, je prévois de mener une formation non pas en utilisant Scratch, mais en utilisant la boîte à outils Opensource Game Studio: les étudiants travailleront avec Lua, Git et GitHub Pages.

La version PS en anglais est disponible ici
MISE À JOUR: Un article sur la formation en 2019