Qualquer pessoa pode adicionar suas próprias tarefas ao banco de dados, e não é mais difícil incorporar Kiddo em seu site do que um player do YouTube. Denis Tsyplakov, Arquiteto de Soluções de DataArt e inspirador do projeto, falou sobre a ideia de uma plataforma educacional infantil e sua implementação durante a quarentena.
O que é Kiddo?
Kiddo é uma plataforma para crianças aprenderem a codificar em Python resolvendo problemas com feedback rápido. Um programa simples escrito pelo usuário por meio da API controla as cenas nas quais o código é renderizado instantaneamente. Agora existem duas dessas cenas: a primeira é um labirinto por onde corre um pequeno guaxinim, coletando biscoitos e fugindo de monstros, a segunda é um console mais hardcore, um ambiente clássico para resolver problemas de programação.
A tarefa do usuário é levar o guaxinim até o final marcado com uma bandeira, coletar biscoitos e não ser pego pelo monstro.
Kiddo não tem a pretensão de ser um livro didático, e um entendimento inicial de programação ainda é necessário aqui. Mas já existem tutoriais suficientes para iniciantes aprenderem Python do zero na Internet: rapidamente, você pode ligar para o canal Python Books ou o sitepythonworld.ru . Nossa plataforma pode servir como um complemento a eles, uma coleção de tarefas práticas. No entanto, parece-me que qualquer estudante do ensino médio em alguns dias, e muito provavelmente, descobrirá como resolver problemas muito mais rápido. Além disso, temos dicas suficientes.
Agora temos 20-30 tarefas para cada uma das duas cenas. Basicamente, são bastante simples, principalmente na versão com guaxinim: primeiro basta movê-lo - dê os comandos para mover duas células para a direita, depois três células para baixo, etc.
Aos poucos as tarefas ficam mais complicadas, surgem monstros em movimento, que podem ser combatidos com a ajuda bombas e armas, os próprios trilhos começam a mudar de configuração quando o nível é gerado
O console não é muito divertido, é apenas um emulador de terminal de computador. Mas existem tarefas não triviais onde, em geral, você precisa codificar. Embora não exijam esforços titânicos, o aluno pode enfrentá-los. Mas o mais importante, pelo menos um manual inteiro com tarefas para, digamos, o primeiro ano de uma universidade pode ser facilmente colocado neste palco. Você mesmo pode adicioná-los - para um projeto específico.
Para a versão com o console, existem 24 tarefas no site Kiddo.
Para incorporar Kiddo em seu site, você só precisa copiar o código de incorporação - assim como no player do YouTube.
Nós da DataArt pensamos que a plataforma pode ser usada em conferências ou, por exemplo, em dias abertos (quando as conferências começam e as portas finalmente se abrem). O jogo para programadores, por um lado, estabelece uma barreira mínima à entrada, por outro lado, esta ainda não é uma jogada completamente banal, não me incomoda pessoalmente, ao contrário de algumas formas de publicidade tradicional. Eu entendo que anunciar uma conferência é um mal necessário :-) Mas há uma maneira de tornar esse anúncio divertido e interessante. Claro, também contamos com a cooperação de escolas de programação infantil - agora estamos negociando com uma delas, veremos o que podemos fazer juntos.
Como Kiddo é diferente?
Se olharmos para qualquer local de treinamento, vemos três componentes:
- , — , . , , .
- — , - , , . , - .
- LMS — Learning Management System — , , , , , , .
Em sites de treinamento, esses três componentes são geralmente mesclados em um único todo. Isso é compreensível, uma vez que cada um deles é um produto com um objetivo de negócio específico, cujo alcance exige o máximo envolvimento do usuário. Pela mesma razão, os elementos de gameification em LMS de tais projetos geralmente parecem muito difíceis: missões com voos interplanetários, inventário, habilidades de personagem de nivelamento. É claro que muitos projetos educacionais estão tentando aproximá-los dos jogos online, apenas para torná-los o mais atraentes possível. Mas me parece inconveniente que tais produtos sejam difíceis ou impossíveis de personalizar, e definitivamente impossível de usar em partes - ou pegue-o inteiramente ou procure outro. A este respeito, o usuário tem pouca escolha.
Existe outro problema - a lacuna entre programas muito infantis, onde, por exemplo, você só precisa mover os cubos pela tela, e o IDE, onde você está, funciona como um adulto. Embora o nicho intermediário seja parcialmente preenchido por jogos de programação disponíveis no mesmo Steam, por exemplo TIS-100. Eles geralmente se parecem com aqueles em que eu mesmo estudei 30 anos atrás em computadores domésticos. O principal deles é um ciclo de feedback rápido: você escreve um programa normal em uma linguagem de programação mais ou menos madura e obtém a visualização instantânea: algo ou alguém está girando, correndo, pulando, etc. No entanto, esses jogos só podem ser usados como um produto integral e independente - é impossível isolar as tarefas para integrá-las em seu próprio ciclo educacional.
Uma vez vi minha filha mais nova resolvendo problemas de programação em um portal educacional russo. Ela então clicou em cerca de 90 deles: para ser justo, devo dizer que as tarefas em si são bem simples, mas com a visualização e a velocidade do feedback, está tudo bem aí. No processo, tive uma ideia: criar um componente universal que possa ser reutilizado ou embutido em projetos de terceiros - faça o que quiser com ele, crie tarefas mais complexas. Pode ser melhorado como código aberto e, com base nisso, construir diferentes ciclos de aprendizagem. O principal é que o usuário - por exemplo, um colegial - deve escrever um código simples que será executado imediatamente, e algo que pareça bastante divertido aconteceria na tela.
Como fizemos o Kiddo?
A ideia de uma plataforma, ou melhor, de um componente que você pode incorporar diretamente no seu navegador, surgiu há mais de um ano. Eu gostaria que qualquer pessoa interessada nele pudesse expandi-lo. Para que no final você possa construir problemas profundos e complexos, começando pelos mais simples. No início tudo foi se desenvolvendo aos poucos, depois com a ajuda de uma iniciativa interna do Laboratório de Talentos, onde testamos hipóteses e criamos pequenos projetos para nós mesmos, as coisas foram mais rápido.
Mas, é claro, o auto-isolamento resolveu. Com o passar do tempo, aliás, o interesse por projetos para crianças entre colegas engenheiros aumentou visivelmente. Provavelmente, muitos, por experiência própria ou de entes queridos, estavam convencidos de como é difícil manter uma criança em casa.
Ao todo, atingimos apenas 350 horas de produção. É verdade que, em algum lugar, fomos ajudados por colegas que estavam temporariamente fora dos projetos do cliente. Mudamos em iterações e tínhamos quase uma dúzia de versões alfa internas. Pois bem, como agíamos discretamente e pelas forças de quem estava livre em determinado momento, tínhamos uma dívida técnica titânica. Portanto, estamos refatorando há quase um mês.
Alguns recursos ainda estão apenas no rascunho, mas o projeto pode ser dimensionado. As tarefas foram inventadas principalmente pelos próprios desenvolvedores, mas você pode continuar a preencher o banco de dados quase indefinidamente. Não houve problemas com a visualização: paramos no conceito de um brinquedo de arcade generalizado, que está perto de muitos, digamos, do final dos anos 1980. Eu mesmo uma vez fiz três desses no Assembler.
Qual é o próximo?
Agora estamos localizando a plataforma para diferentes países, e seu código-fonte foi postado no GitHub . Mas você pode reabastecer o banco de dados de tarefas e levar o Kiddo aos seus sites a qualquer momento. Os problemas são escritos em JavaScript, sua complexidade não é limitada por nada, exceto pela imaginação do autor. Temos um conjunto de figuras prontas para tarefas com campo gráfico, mas se quiser, você pode desenhar as suas.
Finalmente, se alguém quiser adicionar algo próprio ao Kiddo, por exemplo, para torná-lo mais orgânico como um elemento em um site específico, você pode simplesmente escrever para nós em kiddo@dataart.com . Acho que vamos pensar em algo. Ou você pode bifurcar o código para o GitHub e fazer você mesmo.