Apprendre aux enfants à programmer

Salut. Je m'appelle Michael Kapelko. Je développe des logiciels professionnellement depuis plus de 10 ans. Ces dernières années ont été consacrées à iOS. Je développe des jeux et des outils de développement de jeux pendant mon temps libre.


Présentation


Aujourd'hui, je veux partager mon expérience d'enseigner aux enfants à programmer. Je vais discuter des sujets suivants:


  • organisation du processus d'apprentissage
  • plan d'apprentissage
  • jeu de mémoire
  • outils de développement
  • cours
  • résultats et plans

Organisation du processus d'apprentissage


Le processus d'apprentissage est mené dans le cadre de la responsabilité sociale des entreprises: une entreprise fournit une salle avec de l'équipement et connecte les employés qui veulent s'essayer dans le rôle des enseignants avec les employés qui veulent que leurs enfants soient éduqués. Tout cela se fait volontairement.


Les enseignants potentiels sont divisés en groupes de sorte que chaque groupe comprend trois enseignants: un expérimenté et deux novices. Un tel groupe de trois enseignants dirige un groupe d'élèves. Les étudiants sont divisés en groupes selon l'âge et les compétences.


J'ai participé au programme en tant que professeur pour la deuxième fois en 2018. Les enfants avaient environ dix ans. Notre groupe était actif d'octobre à décembre 2018 chaque samedi, de 10h00 à 12h00. En utilisant mon poste d'enseignant, j'ai également amené ma femme en tant qu'étudiante.


Plan d'apprentissage


La première fois que j'ai participé au programme, notre groupe a enseigné aux enfants un peu inconsidérément: nous proposions des tâches simples pour expliquer les différents opérateurs. À la fin du cours, nous n'avions rien de concret à évaluer, analyser et partager.


Cette deuxième fois, j'ai décidé de créer un jeu de mémoire avec des enfants. J'ai décidé de considérer le cours comme un succès si, à la fin du cours, chaque enfant pouvait créer un jeu de mémoire simple à partir de zéro en une heure.


Pour y parvenir, nous recréions le même jeu à partir de zéro à chaque leçon. Je tiens à souligner que nous n'avons pas utilisé de comptes personnels pour enregistrer les progrès. Notre tâche était de sauver la compétence de la création de jeux dans la tête, pas un PC.


Jeu de mémoire


Voyons ce qu'est le jeu de mémoire.


1) Dans le cas le plus simple, nous avons 16 cartes, seulement 8 d'entre elles sont uniques, les 8 autres sont des doubles des uniques.



Comme vous pouvez le voir, nous n'avons que deux cartes avec un chat, seulement deux cartes avec un chien, etc.


2) Au début, nous mélangeons les cartes et les plaçons face cachée.



3) Le premier joueur du jeu retourne une paire de cartes.



4) Si les cartes diffèrent, elles sont à nouveau retournées face cachée.



5) Le joueur suivant retourne une autre paire de cartes.



6) Si les cartes sont identiques, elles sont retirées du terrain.



Le but du jeu est de retirer toutes les cartes du terrain. Il n'y a pas de compétition ici, donc le jeu peut être joué seul.


D'une part, le jeu de mémoire est assez simple. En revanche, l'implémentation du jeu nécessite des fonctionnalités essentielles pour chaque jeu plus ou moins complexe:


  • création d'articles
  • disposition des articles
  • sélection d'articles
  • comparaison des articles
  • suppression des éléments correspondants

Outils de développement


Nous avons utilisé Scratch comme outil de développement. Scratch est un excellent outil pour apprendre aux enfants à programmer car chaque action, chaque opération est représentée graphiquement.


Par exemple, vous pouvez faire pivoter un chat de 360 ​​degrés en 1 seconde à l'aide du script suivant:



Voici à quoi cela ressemble en action:



Je voudrais souligner que Scratch est une solution plutôt réussie pour représenter le code graphiquement. Par exemple, une solution payante de SAP utilise un concept similaire de cubes pour programmer la logique:



Les utilisateurs peuvent uniquement saisir des valeurs dans des champs prédéfinis. Si les utilisateurs veulent plus de fonctionnalités, ils doivent recourir à des scripts.


Personnellement, je n'ai jamais assisté à aucun ralentissement dans Scratch, et il y en avait beaucoup dans la solution SAP.


La première leçon


La première leçon était introductive, nous n'avons pas utilisé de PC.


Le plan était de:


  1. Rencontrez
  2. Jouez au jeu de mémoire avec des cartes
  3. Apprenez le concept d'algorithme
  4. Détailler l'algorithme du jeu
  5. Analysez la leçon

1) Réunion


Les enseignants et les élèves forment un cercle. Cela égalise tout le monde et fait de chacun un membre de l'équipe.


Le premier membre de l'équipe dit son nom et pourquoi il a décidé de suivre le cours. Le deuxième membre de l'équipe et les autres répètent d'abord le nom et l'histoire de chaque membre de l'équipe précédente avant de raconter leurs propres noms et histoires.


Voici à quoi cela ressemble:


  1. John: "Je m'appelle John, je vais étudier Scratch parce que mon père me force à"
  2. Alex: "C'est John, il fait Scratch parce que son père veut qu'il le fasse. Mon nom est Alex, et c'est ma quatrième année avec Scratch"
  3. Ann: "C'est John, ses parents le forcent à faire du Scratch. C'est Alex, c'est un vétéran du Scratch. Et je suis Ann, une enseignante novice, donc je vais apprendre avec vous tous"

Un tel format de réunion a les objectifs suivants:


  • Apprendre à se connaître
    • Chaque membre de l'équipe doit connaître les autres membres de l'équipe par leur nom
  • Espace commun
    • Tout le monde est dans le cercle, pas à un bureau de travail, cela empêche la distraction des enfants par les jeux PC
  • Égalité
    • Les enseignants et les élèves sont dans le même cercle, cela égalise tout le monde en tant que membre de l'équipe sans hiérarchie
  • Attention
    • Chaque membre de l'équipe doit écouter attentivement pour pouvoir répéter correctement ce que les autres ont dit
  • Rétroaction
    • Chaque membre de l'équipe doit être aussi clair que possible lors de l'expression de ses pensées, sinon personne ne pourrait les répéter
  • Amusant
    • Les problèmes de mémorisation produisent beaucoup de rires

2) Jeu de mémoire avec des cartes


  1. Prenez 8 paires des mêmes cartes dans deux jeux de cartes
  2. Placez les cartes dans une grille 4 x 4, face vers le bas
  3. Les élèves se lèvent autour d'une table unique
  4. Chaque élève, une à une, retourne une paire de cartes
    4.1. Si les cartes correspondent, elles sont retirées du terrain
    4.2. Si les cartes diffèrent, elles sont à nouveau retournées face cachée

Les étudiants sont impatients de jouer à des jeux de table. Pendant le jeu, les enseignants disent à haute voix chaque étape de l'algorithme du jeu.


Après quelques soirées, il est temps de découvrir ce qu'est l'algorithme.


3) Le concept d'algorithme


  1. Demandez d'abord aux élèves, écoutez-les pour connaître leur niveau
  2. Corrigez ce que disent les élèves s'ils étaient proches d'une réponse attendue
  3. Demandez aux élèves d'écrire un algorithme pour déplacer un homme de l'état «se tient à l'extérieur d'une pièce» à «s'assoit et travaille sur un PC»

Les étudiants aiment aller au tableau noir et écrire, nous demandons donc à chaque étudiant de venir écrire une seule étape de l'algorithme à la fois. L'élève le plus actif doit exécuter l'algorithme en le suivant strictement.


4) L'algorithme du jeu


Demandez aux élèves de composer l'algorithme du jeu. Encore une fois, laissez les élèves venir au tableau noir et ajouter une étape de l'algorithme à la fois. Une fois l'algorithme prêt, recommencez le jeu avec des cartes. Maintenant, chaque élève doit dire l'étape de l'algorithme qu'il exécute.


Voici à quoi cela ressemble:


  1. John: "Placez 16 cartes face cachée"
  2. Alex: "Tourne une paire de cartes"
  3. Paul: "Si les cartes diffèrent, retournez-les face cachée"
  4. Dan: "Tourne une autre paire de cartes"
  5. Mike: "Si les cartes correspondent, retirez-les du terrain"

5) Analysez la leçon


C'est tout pour la première leçon. Les enseignants ont enfin le temps de discuter de la leçon: discuter des enfants, des approches des enfants timides et actifs, planifier les prochaines leçons.


Nous avons eu les décisions suivantes:


  1. Disposez les élèves de manière à ce que les élèves actifs soient assis à côté des élèves timides en tant que «actif-timide-actif-timide, etc.» afin que nous ne nous retrouvions pas avec deux groupes d'élèves timides et actifs à différents côtés d'une pièce, ce qui nuirait à la productivité .
  2. N'acceptez des réponses précises des étudiants que parce que les étudiants actifs aiment se tortiller, ce qui nuit à la discipline.

Les deuxième et troisième leçons


Nous commencions chaque leçon par la même réunion: nous nous levions en cercle, disions nos noms et ce que nous faisions. Ceux qui n'ont rien fait auraient dû dire pourquoi. Tout comme avant, tout le monde devrait d'abord répéter ce que les membres de l'équipe précédents ont dit.


Nous avons passé la deuxième leçon à créer des exigences pour un élément de la zone de jeu, puis à créer l'élément dans Scratch. Ce fut un succès modéré.


Nous avons passé la troisième leçon à essayer de créer 16 éléments et de les disposer en grille 4x4. Nous avons lamentablement échoué parce que nous ne pouvions pas expliquer le système de coordonnées aux étudiants. Il est devenu évident que les plans de cours n'étaient que des plans, la réalité avait ses propres exigences.


Nous avons vu deux façons d'aborder le problème:


  1. Continuez à étudier le système de coordonnées en risquant de ne pas terminer le jeu à la fin du cours
  2. Modifier les exigences du jeu afin que le système de coordonnées ne soit pas nécessaire

Nous sommes allés dans la deuxième voie car, après tout, nous ne sommes pas une école, notre objectif était d'enseigner aux enfants à créer le jeu, c'est-à-dire à utiliser les compétences dans la pratique, pas la théorie. C'est pourquoi nous avons remplacé la grille 4x4 par un cercle de 16 éléments.


Cette solution a suscité quelques réflexions dans ma tête:


  1. On peut souvent trouver un chemin plus simple pour résoudre un problème
  2. Ce chemin est plus simple à comprendre, quoique moins flexible
  3. On peut emprunter la voie la plus difficile pour augmenter la flexibilité beaucoup plus tard quand cela devient absolument nécessaire
  4. La simplification se rapproche du but, la complexification se déplace dans la direction opposée

Le quatrième et le reste des leçons


La quatrième leçon a marqué la fin de la présentation des exigences en classe car cela commençait à prendre trop de temps. Nous avons de nouveau choisi la pratique plutôt que la théorie pour respecter le délai. Cette fois, toutes les exigences ont été remplies avant la leçon. Pourtant, personne ne les a lus.


Nous avons passé les quatrième et cinquième leçons pour créer 16 objets en cercle, sélectionner une paire d'articles et les faire correspondre.


Nous avons commencé à recréer le jeu complet à partir de zéro lors de la sixième leçon. Chaque fois, les élèves recréaient un jeu complet de plus en plus vite. Lors de la huitième leçon, nous avons introduit un classement pour suivre la vitesse à laquelle chaque élève recrée une partie spécifique du jeu.


La dernière leçon


Lorsque la dernière leçon s'est approchée, tout le monde a pu créer le jeu de mémoire à partir de zéro plus ou moins indépendamment en deux heures.


Voici le classement de la dernière leçon (les noms sont cachés):



Le classement est en russe, voici les légendes traduites:


  • Nom
  • Cercle d'articles
  • Sélection de paires
  • Tout masquer
  • Masquer une paire

Ici, vous pouvez assister à la création du jeu de mémoire à partir de zéro par l'élève le plus rapide: en seulement une demi-heure.



Résultats et plans


Les résultats ont dépassé mes attentes:


  • trois étudiants ont réussi en une heure ou plus
  • deux étudiants ont réussi en une heure et demie ou plus

Cette année, je prévois de faire une autre partie de la récréation du jeu de mémoire. Cependant, je vais remplacer Scratch par des outils Opensource Game Studio: les étudiants utiliseront les pages Lua, Git et GitHub.



MISE À JOUR: Enseigner aux gens à programmer en 2019

Source: https://habr.com/ru/post/fr438320/


All Articles