Y a-t-il une vie après Scratch, ou comment initier un enfant à Python

À l'EPAM, nous avons une école de programmation pour les enfants des employés - e-kids. À l'école, des employés bénévoles enseignent aux enfants à travailler avec Scratch, un environnement de programmation visuelle conçu spécifiquement pour enseigner aux enfants et aux adolescents. Mais toujours, tôt ou tard, le moment arrive où Scratch devient déjà inintéressant pour les enfants.

Par essais et erreurs, nos enseignants ont réussi à trouver un moyen de développer davantage les enfants, ce qu'il faut enseigner, afin qu'ils ne perdent pas leur intérêt pour la programmation en raison de tâches trop compliquées. Ainsi, dans e-kids a commencé à enseigner un langage de programmation plus complexe - Python. Dans cet article, j'ai rassemblé des informations utiles de collègues qui enseignent à l'école sur la façon d'initier les enfants à Python.



Scratch est un environnement de programmation visuel, il n'est pas nécessaire d'entrer le code manuellement, vous pouvez obtenir rapidement le résultat, les enfants peuvent immédiatement voir comment le projet change après l'ajout d'un nouveau bloc. Avec Scratch, vous n'avez pas besoin de passer du temps à rechercher des lettres sur le clavier, cela élimine également la pénible recherche d'erreurs de syntaxe dans le projet.

Mais lorsque l'enfant a déjà suffisamment appris sur Scratch, il commence à perdre tout intérêt pour le travail. Les tâches commencent à être répétées, Scratch ne peut surprendre personne avec quelque chose de nouveau - ce qui signifie qu'il est temps de penser à passer de Scratch à un langage de programmation, où vous pouvez commencer à écrire du code.

Lors du choix d'une langue, vous devez faire attention non seulement à l'expérience des enfants, mais aussi à leur âge. Selon l'expérience des enseignants e-kids, l'âge minimum pour que les enfants leur proposent d'écrire du code est de 11 à 12 ans.

Préparation à la formation


Pourquoi python
Python a une syntaxe simple et une grande communauté. Si l'enfant a des difficultés avec la décision, vous pouvez facilement trouver la réponse sur Internet. Et il existe également de nombreuses sources externes, tâches, ressources qui peuvent être utilisées pour une étude indépendante.

Programmes d'assistance


Pour la préparation des cours ou des devoirs, des services spéciaux étaient parfois utilisés.

  • Code.org - le service contient des tâches prédéfinies et une description de la façon de les résoudre. Ces tâches peuvent être classées par opérateurs, boucles, fonctions, etc.
  • CodeCademy , Python, . .
  • Code Combat — , RPG , . Python, , . , Scratch Python .
  • Kahoot - ce service se démarquera un peu du reste, car il n'a rien à voir avec Python, mais c'est un service très merveilleux pour se souvenir de ce qui s'est passé dans la dernière leçon. Kahoot peut être utilisé au début de chaque leçon pour que les enfants se souviennent des mots-clés, des approches et des technologies dont ils ont parlé plus tôt. Il vous permet de créer une liste de questions et d'options de réponse. De plus, il existe une application mobile qui se connecte au quiz, afin que les enfants puissent répondre à partir du téléphone.

Tous sont en anglais, mais gratuitement.

Livres auxiliaires


De toute la variété des livres, les enseignants e-kids les recommandent:

  • Python pour enfants: Programmeur autodidacte , Briggs Jason.
  • Programmation Python pour enfants , Louis Stowell.

Les deux livres sont écrits dans une langue compréhensible pour les enfants. De plus, ils contiennent des tâches très intéressantes.

Un environnement de développement intégré (IDE) est-il nécessaire ou non?
IDE , , , , Python. , , PyCharm 2018.2.4 (Community Edition) — IDE.

Console vs Graphics


Tout le monde est habitué à «Bonjour, monde» en tapant généralement sur la console, mais lorsque les enfants voient la console, ils se découragent immédiatement.



Par conséquent, il est préférable d'utiliser des bibliothèques telles que Turtle et Tkinter. Les deux font partie de la distribution Python standard et ne nécessitent pas d'installation supplémentaire. Il sera plus facile pour les enfants de passer à Python via ces bibliothèques, car de nombreuses méthodes répètent des blocs dans Scratch.



La tortue est facile à personnaliser: l'arrière-plan peut être remplacé par une image de la pièce et la tortue par un autre personnage.



La bibliothèque Tkinter, à son tour, vous permet d'écrire des applications de fenêtre; elle contient déjà de nombreuses primitives avec des commutateurs de boutons, des commutateurs, des drapeaux, des menus, etc. Ainsi, en combinant Turtle et Tkinter, vous pouvez déjà écrire un jeu simple.

Comment écrire un jeu en Python


Permettez-moi de vous montrer un exemple de la façon dont les enfants se sont familiarisés avec Python dans les leçons sur e-kids.

  1. Tout d'abord, les enfants ont été initiés au Code Combat. Ici, le personnage peut marcher sur la carte, collecter des cristaux, esquiver les ennemis à l'aide d'un code. C'est un jeu simple, mais les enfants ont déjà écrit des morceaux de code, et surtout, ils pouvaient immédiatement voir ce que cela affectait.
  2. Ensuite, ils ont présenté les enfants à la "tortue". Ils lui ont appris à marcher, à écrire et à peindre différentes fractales.
  3. Après quoi, nous avons essayé de transformer les blocs Scratch en code Python.

Par exemple, le chat Scratch a été décrit par la fonction addHero avec une image, qui a été passée en argument à cette fonction.



Dans un autre bloc, les enfants ont décrit une fonction où notre héros était un argument, a indiqué qu'il devrait dire combien de temps et de quelle couleur l'inscription serait.

Ainsi, en combinant ces blocs, les enfants pouvaient déjà écrire un jeu similaire à ceux qu'ils ont développés sur Scratch. Certains des blocs sont déjà dans la bibliothèque Turtle, certains ont été ajoutés par eux-mêmes.

Le code que les enfants ont écrit était quelque chose comme ceci: il y a une image d'arrière-plan, un héros, des phrases qu'il dit et des ordures que le personnage pourrait collecter.



Dans un bloc séparé, nous avons décrit la logique - le personnage ramasse les ordures, s'il est proche des ordures, dit-il une phrase. Ceci est très similaire à la façon dont la logique des caractères est décrite dans Scratch. Là, vous pouvez également ouvrir le personnage et ajouter des blocs de comportement, après quoi le personnage a pris vie.



Dans les leçons, les enfants se voient confier une variété de tâches, à la fois le développement du jeu et la correction des erreurs. Par exemple, vous pouvez mélanger les blocs, puis le programme cesse de fonctionner et donner aux enfants la tâche de trouver ce qui ne va pas, dans quel ordre les blocs doivent aller.

Le chemin d'essai et d'erreur


Certaines personnes choisissent JavaScript ou Java au lieu de Python. Lors de l'un des cours e-kids, les enseignants ont décidé d'essayer de faire avec Flask, un cadre pour créer des applications Web en Python, mais cette idée a planté. Les tâches étaient trop ambitieuses: montrer comment créer un site Web avec un blog, une galerie et un livre d'or. Bien que la structure de tous ces composants soit similaire, il semblerait que les enfants puissent simplement changer quelque chose sur le blog et créer une galerie, par exemple. Mais les enseignants ont été confrontés à de nombreux problèmes:

  • Nous avons découvert qu’il est difficile pour les enfants d’expliquer en quoi consistent les cadres. De plus, il s'est avéré difficile à expliquer même pour certains adultes.
  • Les enfants devaient travailler avec un grand nombre de fichiers, par conséquent ils ne savaient pas où insérer quoi.
  • Haute barrière d'entrée. Pour expliquer comment construire une telle application Web, les enfants devaient connaître un grand nombre de technologies, notamment sur le travail avec des bases de données.


Malgré le fait que l'âge moyen des participants était de 14 à 15 ans et qu'ils avaient déjà de l'expérience avec Python, près de la moitié des membres du groupe se sont désintéressés des cours de Flask, les enfants n'ont pas montré d'activité, ils ont simplement réécrit ce qui leur a été donné et ne se sont pas plongés dans sujet.
Mais on ne peut pas dire que ce fut un échec complet, ce fut une expérience enrichissante.

Conclusion


La technologie devient une partie importante de nos vies. Le code est le langage de notre monde, qui combine les mathématiques, la logique et les algorithmes et enseigne une nouvelle vision du monde.

La programmation enseigne comment résoudre de gros problèmes, en les décomposant en une séquence de problèmes plus petits et plus faciles à gérer. Nous espérons que nos cours aideront les enfants à résoudre les problèmes plus efficacement et à penser globalement.

Le programme e-kids se développe en Russie, en Ukraine, au Bélarus et au Kazakhstan. En 2019, 203 étudiants, enfants d'employés, ont été formés en Russie. De plus, depuis septembre 2019, nous avons commencé à nous occuper des enfants des orphelinats et des handicapés. Plus de 80 employés se sont portés volontaires pour le programme.

Pour diverses raisons, les employés deviennent bénévoles: beaucoup d'entre eux ont des enfants, et les parents de développement veulent leur montrer l'informatique d'autre part ou combler les lacunes de l'éducation scolaire, et quelqu'un aime tout simplement le processus d'apprentissage.

All Articles