Comment j’enseigne Python aux enfants

Comment j’enseigne Python aux enfants

Mon travail principal est lié aux données et à la programmation en R, mais dans cet article, je souhaite parler de ma passion qui génère même un certain revenu. J'ai toujours aimé raconter et expliquer des choses à mes amis, camarades de classe et collègues. De plus, j'ai toujours trouvé facile de communiquer avec les enfants, je ne sais pas pourquoi. En général, je pense que l'éducation et l'enseignement des enfants sont l'une des activités les plus importantes, et ma femme est enseignante. Donc, il y a environ un an, j'ai publié une annonce dans un groupe local sur Facebook, j'ai constitué un groupe et j'ai commencé à enseigner Scratch et Python une fois par semaine. Maintenant, j'ai cinq groupes, ma propre salle à la maison et des cours particuliers. Comment j'en suis arrivé là et comment j'enseigne précisément aux enfants, je vais l'expliquer dans cet article.

Je vis à Calgary, en Alberta, au Canada, donc certains aspects seront liés à la spécificité locale.

L'espace

La disponibilité de locaux pour les cours a été dès le départ un problème majeur. J'ai essayé de trouver des bureaux et des salles à louer à l'heure, mais sans grand succès. Notre université et SAIT - l'équivalent local du MIT - louent des salles avec et sans ordinateurs. Les prix étaient assez élevés et, à la fin, il s'est avéré que l'université n'acceptait pas les mineurs, alors que SAIT ne loue qu'à ses étudiants. Donc, cette option n'était pas viable. Il existe de nombreux centres d'affaires qui louent des salles de réunion et des bureaux à l'heure, ainsi que des entreprises qui proposent une multitude d'options allant de salles de classe complètes à de petites pièces pour quatre personnes. J'avais espoir, car l'Alberta est une province pétrolière, et depuis 2014, nous avons une crise persistante, et de nombreux espaces commerciaux sont vacants. J'aurais dû me méfier, les prix se sont révélés si élevés que je n'y croyais même pas au début. Pour les propriétaires, il est plus simple de laisser des bureaux vides et de payer les frais que de brader les loyers.

À ce moment-là, je me suis souvenu que je paie mes impôts régulièrement et je me suis demandé s'il y avait quelque chose à propos de notre cher État, plus précisément — de la ville de Calgary. Il s'avère qu'il y en a effectivement. La ville dispose d'arènes pour jouer au hockey et faire du patinage artistique, et dans ces arènes, il y a des salles où de durs guerriers des glaces discutent des stratégies de leurs futures batailles. En gros, chaque arène possède deux salles avec des tables, des chaises, un tableau blanc et même un évier avec une bouilloire. Le prix est tout à fait raisonnable — 25 dollars canadiens de l'heure. J'ai décidé initialement de faire des séances d'une heure et demie, donc j'ai fixé le prix de la séance à 35 $ par personne dans un groupe de cinq, pour couvrir le coût de la location, et pour mettre un peu d'argent de côté. Globalement, j'ai aimé faire mes cours dans les arènes, cela résolvait un problème — la plupart des russophones vivent au sud, alors que je vis au nord de la ville, donc j'ai choisi une arène à peu près au milieu. Mais il y avait aussi des inconvénients. La bureaucratie canadienne est bonne et amicale, mais, pour le dire poliment, elle peut parfois être un peu lente. Il n'y a pas de problèmes lorsque l'on s'habitue au rythme et que l'on planifie à l'avance, mais il y a parfois des moments désagréables. Par exemple, sur le site de la ville, il est facile de choisir l'heure et le lieu, de réserver une salle, mais il n'est pas possible de payer, d'aucune manière. Ils appellent eux-mêmes par téléphone et prennent le paiement par carte. On peut aussi se rendre au bureau et payer en espèces. Il y a eu une situation amusante mais pas très agréable, quand j'attendais leur appel pour payer ma deuxième séance, je n'ai pas reçu d'appel, et je suis arrivé au bureau quinze minutes en retard le dernier jour. J'ai dû m'approcher de la sécurité avec un air détaché et mentir en disant que la salle était réservée. Nous, Canadiens, faisons confiance sur parole, on m'a laissé passer calmement sans rien vérifier, mais je ne ferais pas cela si les gens ne venaient pas déjà pour la séance.

J'ai donc travaillé pendant l'hiver et le printemps, puis des changements sont survenus qui ont été la goutte d'eau. D'une part, le bureau a été fermé aux visiteurs et il a été proposé d'accepter les paiements par téléphone au coin de la rue. J'ai attendu au moins une demi-heure dans le couloir avant de réussir à les joindre. D'autre part, si auparavant une gentille dame prenait mon paiement pour une heure et demie, maintenant, c'est une fille qui a répondu et a déclaré que le paiement n'était accepté que pour une heure. À ce moment-là, mon groupe comptait trois ou deux personnes, et les 12,5 $ supplémentaires n'étaient vraiment pas de trop. Certes, je suis engagé dans mes convictions, mais si ma femme me met à la porte, je n'aurai personne pour enseigner. À ce moment-là, j'étais encore sans travail.

J'ai décidé d'aller à la bibliothèque. Les bibliothèques mettent à disposition des salles magnifiques gratuitement, mais il y a un hic : il est interdit d'y mener des activités commerciales. Même les organisations caritatives n'ont pas le droit de collecter de l'argent sur place. On m'a dit que cela n'était pas vraiment contrôlé, il suffit de ne pas demander d'argent à l'entrée, mais je n'aime pas enfreindre les règles. Un autre problème est que les salles sont souvent occupées, ce qui rend difficile de planifier des cours à une heure précise. J'ai enseigné dans des bibliothèques durant l'été et au début de l'hiver, et j'ai dû choisir celles où il y avait de la place, au final j'ai changé de bibliothèque cinq ou six fois. Ensuite, j'ai commencé à réserver un espace deux mois à l'avance, et même alors, j'ai réussi à le faire seulement dans une petite bibliothèque, dans les autres il n'y avait régulièrement pas de place à l'heure souhaitée. C'est alors que j'ai décidé de créer une salle informatique chez moi. J'ai accroché un tableau, acheté une seconde table et quelques vieux moniteurs via une annonce. Mon entreprise m'a acheté un nouvel ordinateur portable puissant, car sur mon ancien ordinateur, l'analyse durait presque 24 heures. Ainsi, j'avais un nouvel ancien ordinateur, un vieil ancien ordinateur, un portable dont mon petit avait écrasé l'écran et un ancien netbook, dont j'ai moi-même cassé l'écran. Je les ai tous branchés sur les moniteurs et j'ai installé Linux Mint partout, sauf sur le netbook, où j'ai mis une distribution très légère, probablement Puppy. J'ai aussi un vieux nouveau portable, acheté pour 200 $, que j'ai connecté à la télévision. De plus, notre propriétaire a récemment changé nos fenêtres, et la pièce a maintenant de nouvelles cadres blancs au lieu de l'horrible délabrement d'avant. Le salon, la cuisine et la deuxième chambre sont transformés en garderie, donc tout l'étage est purement pédagogique. Donc, maintenant que l'espace est convenable, passons à l'enseignement.

Scratch

Je commence à enseigner les bases de la programmation avec le langage Scratch. C'est un langage qui utilise des blocs préconçus, créé à l'époque au MIT. La plupart des enfants ont déjà vu Scratch à l'école, donc ils s'y adaptent assez rapidement. Il existe des programmes prêts à l'emploi et des plans de cours, mais je ne les aime pas du tout. Certains sont étranges : crée ton histoire, par exemple. Tout le programme est composé d'innombrables blocs. say '' for 2 seconds. On peut voir que cela a été conçu par des personnes très créatives, mais avec une telle approche, on peut enseigner à écrire un classique code spaghetti indien. Dès le départ, je parle des principes comme D.R.Y. D'autres recueils d'exercices sont tout à fait bons, mais les enfants comprennent rapidement le principe et commencent à les réaliser comme une mitrailleuse. Au final, en une leçon, ils réalisent ce qui aurait dû leur prendre cinq leçons. Et la recherche et la sélection des exercices prennent beaucoup de temps personnel. En fait, Scratch ressemble moins à un langage qu'à un IDE, où il faut simplement mémoriser où cliquer et quoi chercher. Une fois que les élèves se familiarisent plus ou moins, j'essaie de les transférer vers Python. J'ai même une petite fille de sept ans qui écrit des programmes simples en Python. Ce que je trouve bénéfique dans Scratch, c'est qu'il contient des concepts de base qui sont assimilés sous forme de jeu. Étrangement, il est très difficile pour tout le monde de saisir l'idée de variable. Au début, je survolais rapidement ce sujet et passais à autre chose, jusqu'à ce que je me rende compte qu'ils n'avaient aucune idée de ce qu'il fallait en faire. Maintenant, je consacre beaucoup de temps aux variables et y reviens continuellement. Il faut souvent pratiquer de manière répétitive. Je change différentes variables à l'écran et les fais dire leur valeur. Il y a aussi des structures de contrôle et des vérifications de valeurs dans Scratch, comme while, for ou if en Python. Ils sont assez faciles à comprendre, mais il y a parfois des problèmes avec les boucles imbriquées. J'essaie de donner plusieurs tâches avec des boucles imbriquées, en veillant à ce que leur fonctionnement soit évident. Après cela, je passe aux fonctions. Même pour les adultes, le concept de fonction peut être peu clair, et pour les enfants — encore plus. Je passe beaucoup de temps à expliquer ce qu'est une fonction, en parlant d'une usine qui reçoit des objets en entrée et produit des marchandises, ou d'un cuisinier qui transforme des ingrédients bruts en plats. Ensuite, nous réalisons un programme « faire un sandwich » avec les ingrédients, puis nous en faisons une fonction à laquelle les ingrédients sont passés comme paramètres. Je termine l'apprentissage de Scratch avec les fonctions.

Python

Avec Python, tout est plus simple. Il y a un bon livre intitulé Python for Kids, c'est avec celui-ci que j'enseigne. Tout est standard — chaînes de caractères, ordre des opérations, print(), input() Et cetera. Écrit dans un style léger, avec humour, les enfants aiment. Il a un défaut commun à de nombreux livres sur la programmation. Comme dans une blague célèbre — comment dessiner une chouette. Ovale — cercle — chouette. Il y a un passage trop brusque des concepts simples à des notions suffisamment complexes. Pour moi, le fait qu'un objet est lié à une méthode par un point demande plusieurs séances. D'un autre côté, je ne me précipite pas, je répète la même chose de différentes manières jusqu'à ce qu'une certaine image commence à se former. Je commence par les variables et je les travaille encore, déjà avec Python. Les variables, c'est une sorte de malédiction.

Un étudiant intelligent, qui il y a quelques mois jonglait habilement avec les variables dans Scratch, regarde comme un mouton devant de nouvelles portes et ne peut pas additionner x et y qui sont clairement écrits à la ligne au-dessus au tableau. Répétons ! Qu'est-ce qu'il y a dans une variable ? Un nom et une valeur ! Que signifie le signe égal ? Une affectation ! Et comment allons-nous vérifier l'égalité ? Un 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, et ainsi de suite. Nous n'avons encore atteint les classes dans aucun groupe. En plus de Python, selon le livre, nous étudions des algorithmes populaires, plus à ce sujet ensuite.

L'apprentissage en fait.

Mon cours est organisé comme suit : pendant une demi-heure, je donne la théorie, vérifie les connaissances, consolide ce qui a été appris. Une heure — des travaux pratiques. Souvent, je m'emporte et je parle jusqu'à une heure, alors il reste une demi-heure pour la pratique en conséquence. Quand j'ai appris Python, j'ai suivi le cours. Algorithmes et Structures de Données Khiryanova de MFTI. J'ai beaucoup apprécié sa présentation et la structure de ses cours. Son idée est la suivante : les frameworks, la syntaxe, les bibliothèques deviennent obsolètes. L'architecture, le travail en équipe, les systèmes de contrôle de version — c'est encore tôt pour ça. Au final, ce qui reste ce sont les algorithmes et les structures de données, qui sont connus depuis longtemps et resteront dans des formes similaires. Personnellement, de mon Pascal d'institut, je ne retiens que les entiers. Comme j'ai des élèves principalement jeunes, âgés de sept à quinze ans, je pense que pour leur avenir, il est plus important de poser des bases solides que de se précipiter pour écrire un jeu de plateforme en Python. Bien qu'ils veuillent plus un jeu de plateforme, et je les comprends. Je leur enseigne des algorithmes simples — le tri à bulles, la recherche binaire dans une liste triée, la notation polonaise inversée à l'aide d'une pile, mais nous les examinons tous très en détail. Il s'est avéré que les enfants modernes ne savent pas en principe comment fonctionne un ordinateur, donc j'explique cela aussi. J'essaie de lier plusieurs concepts ensemble dans chaque leçon. Par exemple, l'ordinateur — mémoire/processeur — mémoire composée de cellules (je leur fais tenir une barrette de mémoire, devinez combien il y a de cellules ici) — chaque cellule comme une ampoule — il y a deux états — vrai/faux — et/ou — binaire/décimal — 8 bits = 1 octet — octet = 256 variantes — type de donnée logique sur un seul bit — entiers sur un seul octet — float sur deux octets — string sur un octet — le plus grand nombre sur 64 bits — liste et tuple des types précédents. Je précise que dans un ordinateur réel, tout cela est un peu différent et qu'il y a une autre quantité de mémoire 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. Les types de données sont probablement la chose la plus difficile à mémoriser. C'est pourquoi je commence chaque cours par un échauffement rapide — un élève nomme un type de donnée, le suivant donne deux exemples, et ainsi de suite. Au final, j'ai réussi à ce que même les plus jeunes enfants crient joyeusement — float ! boolean ! sept, cinq ! pizza, voiture ! Pendant la leçon, je sollicite constamment l'un ou l'autre, sinon ils commencent vite à fouiller leur nez et à regarder au plafond. Il faut aussi vérifier le niveau de connaissance de chacun entre-temps.

Mes élèves ne cessent de m'étonner, tant par leur bêtise que par leur ingéniosité inattendue. Heureusement, la capacité d'invention l'emporte souvent.

Je voulais écrire plus, mais cela est déjà un long texte. Je répondrai avec plaisir à toutes vos questions. J'accueille toute critique, mais je vous demande d'être plus tolérants les uns envers les autres dans les commentaires. C'est un article bienveillant.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster