DataArt lance la plate-forme Kiddo gratuite - Livre de problèmes en ligne pour les apprenants Python





N'importe qui peut ajouter ses propres tâches à la base de données, et il n'est pas plus difficile d'intégrer Kiddo sur votre site Web qu'un lecteur YouTube. Denis Tsyplakov, DataArt Solution Architect, l'inspirateur du projet, a évoqué l'idée d'une plateforme éducative pour enfants et sa mise en œuvre pendant la quarantaine.



Qu'est-ce que Kiddo?



Kiddo est une plateforme où les enfants apprennent à écrire du code Python en résolvant des problèmes avec un retour rapide. Un simple programme écrit par l'utilisateur via l'API contrôle les scènes sur lesquelles le code est instantanément rendu. Maintenant, il y a deux telles scènes: la première est un labyrinthe à travers lequel, collectant des cookies et s'échappant des monstres, court un petit raton laveur, la seconde est une console plus hardcore, un environnement classique pour résoudre des problèmes de programmation.





La tâche de l'utilisateur est d'amener le raton laveur à l'arrivée marqué d'un drapeau, de collecter des cookies et de ne pas se faire attraper par le monstre



Kiddo ne prétend pas être un manuel, et une compréhension initiale de la programmation est encore nécessaire ici. Mais il existe déjà suffisamment de tutoriels pour que les débutants apprennent Python à partir de zéro sur Internet: vous pouvez appeler le canal Python Books ou le site Webpythonworld.ru . Notre plateforme peut plutôt leur servir de complément, une collection d'exercices pratiques. Cependant, il me semble que tout élève du secondaire dans quelques jours, et très probablement, trouvera comment résoudre les problèmes beaucoup plus rapidement. De plus, nous avons suffisamment de conseils.



Nous avons maintenant 20 à 30 tâches pour chacune des deux scènes. Fondamentalement, ils sont assez simples, en particulier dans la variante avec un raton laveur: au début, il suffit de le déplacer - donnez des commandes pour déplacer deux cellules vers la droite, puis trois cellules vers le bas, etc.





Peu à peu les tâches se compliquent, des monstres en mouvement apparaissent, ce qui peut être combattu avec l'aide bombes et canons, les chenilles elles-mêmes commencent à changer de configuration lorsque le niveau est généré



La console n'est pas très amusante, c'est juste un émulateur de terminal informatique. Mais il y a des tâches non triviales où, en général, vous devez coder. Bien qu'ils ne nécessitent pas d'efforts titanesques, l'étudiant peut y faire face. Mais surtout, au moins un manuel complet avec des tâches pour, par exemple, la première année de l'université peut être facilement placé sur cette étape. Vous pouvez les ajouter vous-même - pour un projet spécifique.





Pour la version avec console, il y a maintenant 24 tâches sur le site Web de Kiddo.



Pour intégrer Kiddo sur votre site Web, il vous suffit de copier le code d'intégration, comme dans le lecteur YouTube.



Chez DataArt, nous pensons que la plateforme peut être utilisée lors de conférences ou, par exemple, lors de journées portes ouvertes (lorsque les conférences commencent et que les portes s'ouvrent enfin). Le jeu pour les programmeurs, d'une part, fixe une barrière minimale à l'entrée, d'autre part, ce n'est toujours pas un geste complètement banal, cela ne me dérange pas personnellement, contrairement à certaines formes de publicité traditionnelle. Je comprends que la publicité pour une conférence est un mal nécessaire :-) Mais il existe un moyen de rendre cette publicité amusante et intéressante. Bien sûr, nous comptons également sur la coopération avec les écoles de programmation pour enfants - maintenant que nous négocions avec l'une d'entre elles, nous verrons ce que nous pouvons faire ensemble.



En quoi Kiddo est-il différent?



Si nous regardons n'importe quel site de formation, nous voyons trois composants:



  1. , — , . , , .
  2. — , - , , . , - .
  3. LMS — Learning Management System — , , , , , , .


Sur les sites de formation, ces trois composants sont généralement fusionnés en un seul tout. Cela est compréhensible, car chacun d'eux est un produit avec un objectif commercial spécifique, dont la réalisation nécessite une implication maximale des utilisateurs. Pour la même raison, les éléments de gameification dans LMS de tels projets semblent souvent très difficiles: quêtes avec vols interplanétaires, inventaire, compétences de personnage de niveau. Il est clair que de nombreux projets éducatifs tentent de les rapprocher des jeux en ligne, histoire de les rendre aussi attractifs que possible. Mais il me semble peu pratique que de tels produits soient difficiles, voire impossibles à personnaliser, et qu'il soit définitivement impossible de les utiliser en plusieurs parties - prenez-le entièrement ou en cherchez un autre. A cet égard, l'utilisateur n'a guère le choix.



Il y a un autre problème - l'écart entre des programmes très enfantins, où, par exemple, il vous suffit de déplacer les cubes sur l'écran, et l'IDE, où vous êtes, fonctionne assez comme un adulte. Bien que la niche intermédiaire soit en partie remplie de jeux de programmation disponibles sur le même Steam, par exemple TIS-100. Ils ressemblent généralement à ceux sur lesquels j'ai moi-même étudié il y a 30 ans sur des ordinateurs personnels. L'essentiel est un cycle de rétroaction rapide: vous écrivez un programme normal dans un langage de programmation plus ou moins mature et obtenez une visualisation instantanée: quelque chose ou quelqu'un tourne, court, saute, etc. Cependant, ces jeux ne peuvent être utilisés que comme un produit intégral et indépendant - il est impossible d'isoler les tâches pour les intégrer dans votre propre cycle éducatif.



Une fois, j'ai regardé ma plus jeune fille résoudre des problèmes de programmation sur un portail éducatif russe. Elle a ensuite cliqué sur environ 90 d'entre eux: en toute honnêteté, je dois dire que les tâches elles-mêmes sont assez simples, mais avec la visualisation et la rapidité des retours, tout va bien là-bas. Dans le processus, j'ai eu une idée: créer un composant universel qui peut être réutilisé ou intégré dans des projets tiers - pour en faire ce que vous voulez, créez des tâches plus complexes. Il peut être amélioré en tant qu'open source et sur cette base, construire différents cycles d'apprentissage. L'essentiel est que l'utilisateur - par exemple, un écolier - écrive un code simple qui sera exécuté immédiatement, et quelque chose qui semble assez amusant se produira à l'écran.



Comment avons-nous fait Kiddo?



L'idée d'une plateforme, ou plutôt d'un composant que vous pouvez intégrer directement dans votre navigateur, m'est venue il y a plus d'un an. J'aurais souhaité que quiconque s'y intéresse puisse l'étendre. Pour qu'à la fin, vous puissiez créer des problèmes profonds et complexes, en commençant par des problèmes simples. Au début, tout s'est développé lentement, puis avec l'aide d'une initiative interne du Talent Lab, où nous testons des hypothèses et créons de petits projets pour nous-mêmes, les choses sont allées plus vite.



Mais, bien sûr, l'auto-isolement a fait l'affaire. Il y a plus de temps, de plus, l'intérêt pour les projets pour enfants chez les collègues ingénieurs a sensiblement augmenté. Probablement, beaucoup de leur propre expérience ou de l'expérience de leurs proches étaient convaincus de la difficulté de garder un enfant à la maison.



Au total, nous n'avons rencontré que 350 heures de production. Certes, quelque part, nous avons été aidés par des collègues qui étaient temporairement en dehors des projets clients. Nous nous sommes déplacés dans les itérations et nous avons eu près d'une douzaine de versions alpha internes. Eh bien, puisque nous avons agi discrètement et par les forces de ceux qui étaient libres à un moment donné, nous avions une dette technique titanesque. C'est pourquoi nous refactorisons depuis près d'un mois.



Certaines fonctionnalités ne sont encore que dans le brouillon, mais le projet peut être mis à l'échelle. Les tâches ont été principalement inventées par les développeurs eux-mêmes, mais vous pouvez continuer à remplir la base de données presque à l'infini. Il n'y a pas eu de problèmes de visualisation: nous nous sommes arrêtés au concept de jouet d'arcade généralisé, qui est proche de beaucoup, disons, de la fin des années 1980. J'ai moi-même fait trois de ceux-ci dans Assembler.



Et après?



Nous localisons maintenant la plate-forme pour différents pays et son code source a été publié sur GitHub . Mais vous pouvez reconstituer la base de données des tâches et amener Kiddo sur vos sites à tout moment. Les problèmes sont écrits en JavaScript, leur complexité n'est limitée que par l'imagination de l'auteur. Nous avons un ensemble d'images prêtes à l'emploi pour les tâches avec un champ graphique, mais si vous le souhaitez, vous pouvez dessiner les vôtres.







Enfin, si quelqu'un souhaite ajouter quelque chose de son propre chef à Kiddo, par exemple, pour le rendre plus organique en tant qu'élément sur un site spécifique, vous pouvez simplement nous écrire à kiddo@dataart.com . Je pense que nous allons trouver quelque chose. Ou vous pouvez transférer le code sur GitHub et le faire vous-même.



All Articles