Comment enseigner Python aux enfants ?

Comment enseigner Python aux enfants ?

Mon travail principal est lié aux données et à la programmation sur R, mais dans cet article, je veux parler de mon passe-temps, qui rapporte même quelques revenus. J'ai toujours été intéressé à raconter et à expliquer quelque chose à des amis, à des camarades de classe et à des camarades de classe. Il m'a aussi toujours été facile de trouver un langage commun avec les enfants, je ne sais pas pourquoi. En général, je crois qu'élever et éduquer des enfants est l'une des activités les plus importantes de toutes, et ma femme est enseignante. Donc, il y a environ un an, j'ai fait de la publicité dans un groupe Facebook local, j'ai créé un groupe et j'ai commencé à enseigner le scratch et le python une fois par semaine. Maintenant, j'ai cinq groupes, ma propre classe à la maison et des leçons individuelles. Comment je suis arrivé à une telle vie et exactement comment j'enseigne aux enfants, je le dirai dans cet article.

J'habite au Canada, Calgary, Alberta, donc certains points seront liés aux spécificités locales.

La chambre

Avoir un lieu de pratique a été un problème majeur dès le début. J'ai essayé de chercher des bureaux et des classes à louer à l'heure, mais sans grand succès. Notre université et SAIT - l'équivalent local du MIT - suivent des cours avec et sans ordinateur. Les prix là-bas se sont avérés peu humains, mais au final, il s'est avéré que l'université ne laisse pas entrer les mineurs et que le SAIT ne loue généralement qu'à ses étudiants. Cette option a donc été abandonnée. Il existe de nombreux centres de bureaux qui louent des salles de réunion et des bureaux à l'heure, il existe des entreprises entières qui offrent un tas d'options allant d'une classe à part entière à une salle pour quatre personnes. J'avais de l'espoir, puisque l'Alberta est une province pétrolière, nous avons une crise de bas niveau depuis 2014 et de nombreux secteurs d'activité sont vides. J'espérais en vain, les prix se sont avérés si élevés que je n'y ai même pas cru au début. Il est plus facile pour les propriétaires de s'asseoir dans des bureaux vides et de payer des dépenses que de jeter.

À ce moment-là, je me suis souvenu que je payais régulièrement des impôts et que notre cher État, ou plutôt la ville de Calgary, avait quelque chose là-bas. Il s'est avéré qu'il y en a vraiment. La ville possède des arènes pour jouer au hockey et à d'autres patinages artistiques, et dans ces arènes, il y a des salles où des guerriers de glace coriaces discutent de stratégies pour de futures batailles. En bref, chaque arène dispose de quelques pièces avec des tables, des chaises, un tableau blanc et même un évier avec une bouilloire. Le prix est tout à fait divin - 25 tugriks canadiens par heure. J'ai initialement décidé de faire des cours d'une heure et demie, alors j'ai fixé le prix d'un cours à 35$ par nez dans un groupe de cinq personnes pour compenser le loyer, enfin, pour mettre quelque chose dans ma poche. En général, j'aimais m'entraîner dans les arènes, cela a résolu l'un des problèmes - la plupart des russophones vivent dans le sud et j'habite dans le nord de la ville, j'ai donc choisi l'arène approximativement au milieu. Mais il y avait aussi des inconvénients. La bureaucratie canadienne est bonne et amicale, mais, c'est un euphémisme, elle peut être un peu lente. Il n'y a pas de problèmes lorsque vous vous habituez au rythme et que vous planifiez à l'avance, mais il y a parfois des moments désagréables. Par exemple, sur le site Web de la ville, vous pouvez facilement choisir l'heure et le lieu, réserver une chambre, mais vous ne pouvez en aucun cas payer. Ils passent des appels téléphoniques et acceptent les paiements par carte. Vous pouvez vous rendre au bureau et payer en espèces. Il y a eu un moment drôle mais pas très agréable où j'attendais leur appel pour payer le deuxième cours, je n'ai pas attendu, et le dernier jour j'ai eu quinze minutes de retard au bureau. J'ai dû approcher les gardes avec un museau impudent et mentir que la chambre était réservée. Nous, les Canadiens, nous croyons sur parole, ils m'ont laissé entrer calmement et n'ont rien vérifié, mais je ne ferais pas cela si les gens n'étaient pas déjà en route pour la classe.

J'ai donc fait l'hiver et le printemps, puis il y a eu des changements qui sont devenus la dernière goutte. Premièrement, le bureau était fermé aux visiteurs et proposait d'accepter les paiements par téléphone au coin de la rue. Je me suis assis dans l'allée pendant au moins une demi-heure avant de passer. Deuxièmement, si auparavant ma chère tante me payait pour une heure et demie, maintenant une fille a pris le téléphone et a dit que le paiement n'était que pour une heure. A cette époque, j'avais un groupe de trois, puis deux personnes, et le supplément de 12.5$ n'était pas du tout superflu. Bien sûr, je suis idéologique, mais si ma femme me jette à la rue, il n'y aura personne à qui enseigner. J'étais alors encore au chômage.

Et j'ai décidé d'aller à la bibliothèque. Les bibliothèques louent gratuitement de belles salles, mais il y a une chose - vous ne pouvez pas mener d'activités commerciales. Même les organisations caritatives ne sont pas autorisées à y collecter de l'argent. On m'a dit que ce n'est pas particulièrement contrôlé, l'essentiel est de ne pas prendre d'argent à l'entrée juste là, mais je n'aime vraiment pas enfreindre les règles. Autre problème, les salles sont souvent occupées et il est difficile de programmer des cours en même temps au même endroit. J'enseignais dans les bibliothèques l'été et au début de l'hiver, je devais choisir celles où il y avait une place, du coup j'ai changé cinq ou six bibliothèques. Ensuite, j'ai commencé à réserver une place deux mois à l'avance, et puis, cela s'est avéré ne se faire que dans une petite bibliothèque, dans le reste il n'y avait régulièrement pas de places au bon moment. Et puis j'ai décidé de faire un cours d'informatique à la maison. J'ai raccroché le tableau, acheté une deuxième table et quelques vieux moniteurs sur l'annonce. Au travail, l'entreprise m'a acheté un nouvel ordinateur portable puissant, car sur mon ordinateur, l'analyse a pris près de 24 heures. Au total, j'avais un nouvel ancien ordinateur, un vieil ordinateur ancien, un ordinateur portable qui avait écrasé mon petit écran et un ancien netbook sur lequel j'avais écrasé l'écran moi-même. Je les ai tous connectés à des moniteurs et j'ai installé Linux mint partout, sauf sur le netbook, sur lequel j'ai installé une distribution très légère, ça a l'air papy. J'ai aussi un vieil ordinateur portable neuf acheté pour 200 $, je l'ai connecté au téléviseur. Plus important encore, notre hôte a récemment changé les fenêtres pour nous, et la pièce a maintenant de nouveaux cadres blancs au lieu de la terrible misère effondrée. La femme garde le salon, la cuisine et la deuxième chambre comme jardin d'enfants, de sorte que tout l'étage s'est avéré purement pédagogique. Donc, maintenant que tout va bien avec la salle, passons directement à l'enseignement.

Gratter

Je commence à donner les bases de la programmation avec le langage Scratch. C'est un langage qui utilise des blocs tout faits, inventés à l'époque au MIT. La plupart des enfants ont déjà vu des rayures à l'école, ils s'y habituent donc rapidement. Il existe des programmes et des plans de cours prêts à l'emploi, mais je ne les aime pas du tout. Certains étranges - créez votre propre histoire, par exemple. L'ensemble du programme se compose d'innombrables blocs say '<...>' for 2 seconds. On peut voir qu'il a été inventé par des individus très créatifs, mais avec cette approche, vous pouvez apprendre à écrire un code de spaghetti indien classique. Dès le début, je parle de principes comme DRY.D'autres collections de tâches sont assez bonnes, mais les enfants vont vite au fait et commencent à les faire comme une mitrailleuse. En conséquence, en une leçon, ils font ce qu'ils auraient dû faire en cinq. Et cela prend beaucoup de temps personnel pour rechercher et sélectionner des tâches. En général, scratch ne ressemble plus à un langage, mais à un IDE, où vous avez juste besoin de vous rappeler où cliquer et où chercher quelque chose. Dès que les élèves sont plus ou moins maîtrisés, j'essaie de les traduire en python. J'ai même une fille de sept ans qui écrit des programmes simples en python. Ce que je considère comme l'avantage du scratch, c'est qu'il a des concepts de base qui sont appris de manière ludique. Pour une raison quelconque, il est très difficile pour tout le monde sans exception de comprendre l'idée d'une variable. Au début, j'ai rapidement parcouru ce sujet et j'ai continué jusqu'à ce que je tombe sur le fait qu'ils ne savaient pas du tout quoi en faire. Maintenant, je consacre beaucoup de temps aux variables et j'y reviens constamment. Vous devez faire des swotting stupides. Je modifie différentes variables à l'écran et leur fais dire leur valeur. Scratch a également des structures de contrôle et des contrôles de valeur, tels que while, for ou if en Python. Ils sont donnés assez facilement, seulement il y a des problèmes avec les boucles imbriquées. J'essaie de donner plusieurs tâches avec une boucle imbriquée, et pour que son action soit visuelle. Après cela, je passe aux fonctions. Même pour les adultes, la notion de fonction n'est pas évidente, et encore plus pour les enfants. Pendant longtemps, j'ai crucifié ce qu'est une fonction en général, parlant d'une usine qui reçoit des objets en entrée, mais distribue des marchandises, d'un cuisinier qui fait de la nourriture à partir de produits bruts. Ensuite, nous créons un programme pour « faire un sandwich » avec des produits, puis nous en faisons une fonction, à laquelle les produits sont passés en tant que paramètres. Sur l'étude des fonctions, je termine par zéro.

Python

C'est plus facile avec python. Il existe un bon livre appelé Python for Kids, et je l'utilise pour enseigner. Tout y est standard - lignes, ordre des opérations, print(), input() etc. Écrit dans un langage facile, avec humour, les enfants aiment ça. Il a un défaut commun à de nombreux livres de programmation. Comme dans une blague bien connue - comment dessiner un hibou. Ovale - cercle - hibou. De concepts simples passage trop abrupt à des concepts assez complexes. Il me faut plusieurs sessions pour attacher un objet à la méthode point. D'un autre côté, je ne suis pas pressé, je répète la même chose de différentes manières jusqu'à ce qu'au moins une sorte d'image émerge. Je commence avec des variables et les martèle à nouveau, cette fois en python. Les variables sont une malédiction.

Un étudiant à l'esprit vif, qui il y a quelques mois a habilement cliqué sur les variables du scratch, ressemble à un bélier à une nouvelle porte et ne peut pas ajouter le X avec le Y, qui sont clairement écrits au tableau dans la ligne ci-dessus. Nous répétons! Qu'est-ce qu'une variable a? Nom et signification ! Que signifie le signe égal ? Mission! Comment vérifie-t-on l'égalité ? Double signe égal ! Et ainsi nous répétons encore et encore, jusqu'à l'illumination complète. Ensuite, nous passons aux fonctions, où l'explication des arguments prend le plus de temps. Arguments nommés, par position, par défaut, etc. Nous ne sommes pas encore arrivés en classe. En plus de python, nous étudions les algorithmes populaires du livre, plus à ce sujet plus tard.

En fait, la formation

Ma leçon est organisée comme ceci - pendant une demi-heure, je donne une théorie, vérifie les connaissances, consolide ce que j'ai appris. Heure - laboratoires. Souvent, je m'emballe et diffuse jusqu'à une heure, puis une demi-heure reste pour la pratique, respectivement. Quand j'apprenais python, j'ai revu le cours Algorithmes et structures de données Khyryanova du MIPT. J'ai vraiment aimé sa présentation et la structure des conférences. Son idée est que les frameworks, la syntaxe, les bibliothèques deviennent obsolètes. Architecture, travail d'équipe, systèmes de contrôle de version - c'est trop tôt. En conséquence, il existe des algorithmes et des structures de données qui sont connus depuis longtemps et qui seront toujours sous une forme similaire. Je ne me souviens moi-même que des nombres entiers de l'institut Pascal. Comme mes élèves sont majoritairement jeunes, de sept à quinze ans, je crois qu'il est plus important pour leur avenir de jeter les bases que d'écrire rapidement un platformer en python. Bien qu'ils veuillent davantage un jeu de plateforme, et je les comprends. Je leur donne des algorithmes simples - une bulle, une recherche binaire dans une liste triée, une notation polonaise inversée utilisant une pile, mais nous analysons chacun en détail. Il s'est avéré que les enfants modernes ne savent pas en principe comment fonctionne un ordinateur, je vous le dis aussi. J'essaie de lier plusieurs concepts ensemble dans chaque conférence. Par exemple, un ordinateur - mémoire / processeur - mémoire des cellules (permettez-moi de tenir une plaque mémoire, devinez combien de cellules sont ici) - chaque cellule est comme une ampoule - il y a deux états - vrai/faux - et/ou - binaire / décimal - 8 bits = 1 octet - octet = 256 options - Type de données booléen par bit - Entiers par octet - float sur deux octets string sur un octet - le plus grand nombre sur 64 bits - une liste et un tuple des types précédents. Je fais une réserve que dans un vrai ordinateur, tout est quelque peu différent et une quantité de mémoire différente pour ces types de données, mais l'essentiel est que nous créons nous-mêmes des types de données plus complexes à partir de types plus simples dans le processus. Les types de données sont peut-être la chose la plus difficile à retenir. Par conséquent, je commence chaque leçon par un échauffement rapide - un élève nomme le type de données, le suivant donne deux exemples, et ainsi de suite en cercle. En conséquence, j'ai réussi à ce que même les plus jeunes enfants crient joyeusement - flottez! booléen ! sept, cinq ! pizza, voiture ! Pendant la conférence, je tire constamment l'un ou l'autre, sinon ils commencent rapidement à se curer le nez et à regarder le plafond. Oui, et le niveau de connaissance de chacun doit être vérifié entre les fois.

Mes élèves ne cessent de m'étonner à la fois par leur stupidité et leur vivacité d'esprit inattendue. Ingéniosité, heureusement, plus souvent.

Je voulais écrire plus, mais même ainsi, la feuille s'est avérée. Je répondrai à toutes les questions avec plaisir. J'accueille toute critique de toutes les manières possibles, seulement une demande - d'être plus tolérant les uns envers les autres dans les commentaires. C'est un bon article.

Source: habr.com

Ajouter un commentaire