DataArt Launches Free Kiddo Platform - An Online Task Book for Python Learners





Anyone can add their own tasks to the database, and it is no more difficult to embed Kiddo on your website than a YouTube player. Denis Tsyplakov, DataArt Solution Architect, the project inspirer, spoke about the idea of ​​a children's educational platform and its implementation during the quarantine.



What is Kiddo?



Kiddo is a platform where kids learn to write Python code by solving problems with fast feedback. A simple program written by the user through the API controls the scenes on which the code is instantly rendered. Now there are two such scenes: the first is a maze through which, collecting cookies and escaping from monsters, a little raccoon runs, the second is a more hardcore console, a classic environment for solving programming problems.





The user's task is to bring the raccoon to the finish marked with a flag, collect cookies and not get caught by the monster



Kiddo does not pretend to be a textbook, and an initial understanding of programming is still needed here. But there are already enough tutorials for beginners to learn Python from scratch on the Internet: at a glance, you can call the Python Books channel or the websitepythonworld.ru . Our platform can rather serve as an addition to them, a collection of practical exercises. However, it seems to me that any high school student in a couple of days, and most likely, will figure out how to solve problems much faster. Moreover, we have enough tips.



We now have 20-30 tasks for each of the two scenes. Basically, they are quite simple, especially in the version with a raccoon: at first you just need to move it - give commands to move two cells to the right, then three cells down, etc.





Gradually the tasks become more complicated, moving monsters appear, which can be fought with the help bombs and guns, the tracks themselves begin to change configuration when the level is generated



The console isn't very fun, it's just a computer terminal emulator. But there are non-trivial tasks where, in general, you have to code. Although they do not require titanic efforts, the student can cope with them. But most importantly, at least a whole manual with tasks for, say, the first year of a university can be easily placed on this stage. You can add them yourself - for a specific own project.





For the version with the console, there are 24 tasks on the Kiddo website.



To embed Kiddo on your website, you just need to copy the embed code - just like in the YouTube player.



We at DataArt think that the platform can be used at conferences or, for example, at open days (when the conferences start and the doors finally open). The game for programmers, on the one hand, sets a minimum entry barrier, on the other hand, this is still not a completely banal move, it does not annoy me personally, unlike some forms of traditional advertising. I understand that advertising for a conference is a necessary evil :-) But there is a way to make this advertisement fun and interesting. Of course, we also count on cooperation with children's programming schools - now we are negotiating with one of them, we'll see what we can do together.



How is Kiddo different?



If we look at any training site, we see three components:



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


On training sites, these three components are usually merged into a single whole. This is understandable, since each of them is a product with a specific business goal, the achievement of which requires maximum user involvement. For the same reason, the elements of gameification in LMS of such projects often look very difficult: quests with interplanetary flights, inventory, leveling character skills. It is clear that many educational projects are trying to bring them closer to online games, just to make them look as attractive as possible. But it seems to me inconvenient that such products are difficult or impossible to customize, and it is definitely impossible to use in parts - either take it entirely or look for another. In this respect, the user has little choice.



There is another problem - the gap between very childish programs, where, for example, you just need to move the cubes around the screen, and the IDE, where you are, works quite like an adult. Although the intermediate niche is partially filled by programming games available on the same Steam, for example TIS-100. They usually resemble those on which I myself studied 30 years ago on home computers. The main thing in them is a fast feedback cycle: you write a normal program in a more or less mature programming language and get instant visualization: something or someone is spinning, running, jumping, etc. However, such games can only be used as an integral, independent product - it is impossible to isolate tasks in order to integrate them into your own educational cycle.



Once I watched my youngest daughter solving programming problems on a Russian educational portal. She then clicked on about 90 of them: in fairness, I must say that the tasks themselves are quite simple, but with visualization and the speed of feedback, everything is not bad there. In the process, I had an idea: to create a universal component that can be reused or embedded in third-party projects - to do with it what you want, create more complex tasks. It can be improved as an open source and on this basis, build different learning cycles. The main thing is that the user - for example, a schoolboy - should write a simple code that is immediately executed, and something that looks quite fun would happen on the screen.



How did we make Kiddo?



The idea of ​​a platform, or rather, a component that you can embed directly into your browser, came to me over a year ago. I wished that anyone interested in it could expand it. So that in the end you can build deep and complex problems, starting with simple ones. At first, everything developed slowly, then with the help of an internal initiative of the Talent Lab, where we test hypotheses and create small projects for ourselves, things went faster.



But, of course, self-isolation did the trick. There is more time, moreover, the interest in projects for children among fellow engineers has noticeably increased. Probably, many from their own experience or the experience of loved ones were convinced of how difficult it is to keep a child at home.



All in all, we met only 350 production hours. True, somewhere we were helped by colleagues who were temporarily outside client projects. We moved in iterations, and we had almost a dozen internal alpha releases. Well, since we acted discretely and with the help of those who were free at a particular moment, we have accumulated a titanic technical debt. So we've been refactoring for almost a month.



Some features are still only in the draft, but the project can be scaled. The tasks were mainly invented by the developers themselves, but you can continue to fill the database almost endlessly. There were no problems with visualization: we stopped at the concept of a generalized arcade toy, which is close to many, say, from the late 1980s. I myself once made three of these in Assembler.



What's next?



Now we are localizing the platform for different countries, and its source code has been posted on GitHub . But you can replenish the database of tasks and take Kiddo to your sites at any time. Problems are written in JavaScript, their complexity is not limited by anything except the author's imagination. We have a set of ready-made pictures for tasks with a graphic field, but if you want, you can draw your own.







Finally, if someone wants to add something of their own to Kiddo, for example, to make it look more organic as an element on a specific site, you can simply write to us at kiddo@dataart.com . I think we'll figure something out. Or you can fork the code to GitHub and do it yourself.



All Articles