Anyone can replenish the database with their own tasks, and embed on their website Kiddo no harder than a YouTube player. Denis Tsyplakov, the 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 task of the user 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: you can name the channel offhand Python Books or website pythonworld.ru… Our platform can serve rather as an addition to them, a collection of practical tasks. 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.
Now we have 20-30 tasks for each of the two scenes. Basically, they are quite simple, especially in the variant 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 difficult, moving monsters appear, which can be fought with the help of bombs and cannons, 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 you generally 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.
There are currently 24 tasks on the Kiddo site for the console option
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 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:
- Actually, a textbook is a presentation of theoretical material that corresponds to the chosen teaching methodology. Roughly speaking, what, how and in what sequence we tell.
- Practical tasks are a kind of mechanism that allows you to do something with your hands, for example, to touch a certain technology. In extreme cases, this part can be replaced by a video player, but on modern online platforms it is usually presented as an interactive element.
- LMS – Learning Management System – is a course management system that tracks your progress, assigns you to a group, conducts tests and exams, distributes achievements, and at the same time clarifies who you are and where you came from.
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 quick 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 pretty simple, but with visualization and the speed of feedback, everything is fine 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 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 of client projects. We moved in iterations, and we had almost a dozen internal alpha releases. Well, since we acted discretely and by the forces of those who were free at a particular moment, we had a titanic technical debt. Therefore, we have 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 indefinitely. 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.
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 email@example.com. I think we’ll come up with something. Or you can fork the code to GitHub and do it yourself.