Cualquiera puede agregar sus propias tareas a la base de datos, y no es más difícil insertar Kiddo en su sitio web que un reproductor de YouTube. Denis Tsyplakov, DataArt Solution Architect, el inspirador del proyecto, habló sobre la idea de una plataforma educativa para niños y su implementación durante la cuarentena.
¿Qué es Kiddo?
Kiddo es una plataforma donde los niños aprenden a escribir código Python resolviendo problemas con comentarios rápidos. Un programa simple escrito por el usuario a través de la API controla las escenas en las que el código se procesa instantáneamente. Ahora hay dos escenas de este tipo: la primera es un laberinto por el que corre un pequeño mapache, recolectando galletas y escapando de los monstruos, la segunda es una consola más dura, un entorno clásico para resolver problemas de programación.
La tarea del usuario es llevar al mapache al final marcado con una bandera, recolectar galletas y no ser atrapado por el monstruo.
Kiddo no pretende ser un libro de texto, y aquí todavía se necesita una comprensión inicial de la programación. Pero ya hay suficientes tutoriales para que los principiantes aprendan Python desde cero en Internet: de un vistazo, puede llamar al canal de Python Books o al sitio webpythonworld.ru . Nuestra plataforma puede servir más bien como una adición a ellos, una colección de ejercicios prácticos. Sin embargo, me parece que cualquier estudiante de secundaria en un par de días, y muy probablemente, descubrirá cómo resolver problemas mucho más rápido. Además, tenemos suficientes consejos.
Ahora tenemos de 20 a 30 tareas para cada una de las dos escenas. Básicamente, son bastante simples, especialmente en la variante con un mapache: al principio solo necesitas moverlo: da órdenes para mover dos celdas a la derecha, luego tres celdas hacia abajo, etc.
Poco a poco las tareas se vuelven más complicadas, aparecen monstruos en movimiento, que se pueden combatir con la ayuda bombas y armas, las propias pistas comienzan a cambiar de configuración cuando se genera el nivel
La consola no es muy divertida, es solo un emulador de terminal de computadora. Pero hay tareas no triviales en las que generalmente tienes que codificar. Aunque no requieren esfuerzos titánicos, el alumno puede afrontarlos. Pero lo más importante es que al menos un manual completo con tareas para, digamos, el primer año de una universidad se puede colocar fácilmente en esta etapa. Puede agregarlos usted mismo, para un proyecto propio específico.
Para la versión con consola, hay 24 tareas en el sitio web de Kiddo.
Para insertar Kiddo en su sitio web, solo necesita copiar el código de inserción, como en el reproductor de YouTube.
En DataArt pensamos que la plataforma se puede utilizar en congresos o, por ejemplo, en jornadas de puertas abiertas (cuando comienzan las conferencias y finalmente se abren las puertas). El juego para programadores, por un lado, establece una barrera de entrada mínima, por otro lado, esto todavía no es un movimiento completamente banal, no me molesta personalmente, a diferencia de algunas formas de publicidad tradicional. Entiendo que la publicidad para una conferencia es un mal necesario :-) Pero hay una manera de hacer que este anuncio sea divertido e interesante. Por supuesto, también contamos con la cooperación con las escuelas de programación para niños; ahora estamos negociando con uno de ellos, veremos qué podemos hacer juntos.
¿En qué se diferencia Kiddo?
Si miramos cualquier sitio de capacitación, vemos tres componentes:
- , — , . , , .
- — , - , , . , - .
- LMS — Learning Management System — , , , , , , .
En los sitios de formación, estos tres componentes suelen fusionarse en un solo todo. Esto es comprensible, ya que cada uno de ellos es un producto con un objetivo comercial específico, cuyo logro requiere la máxima participación del usuario. Por la misma razón, los elementos de gameificación en LMS de tales proyectos a menudo parecen muy difíciles: misiones con vuelos interplanetarios, inventario, habilidades de personajes de nivelación. Está claro que muchos proyectos educativos intentan acercarlos a los juegos en línea, solo para que se vean lo más atractivos posible. Pero me parece inconveniente que tales productos sean difíciles o imposibles de personalizar, y definitivamente es imposible usarlos en partes, ya sea que lo tomen por completo o busquen otro. En este sentido, el usuario tiene pocas opciones.
Hay otro problema: la brecha entre programas muy infantiles, donde, por ejemplo, solo necesita mover los cubos por la pantalla, y el IDE, donde se encuentra, funciona como un adulto. Aunque el nicho intermedio está parcialmente lleno de juegos de programación disponibles en el mismo Steam, por ejemplo TIS-100. Suelen parecerse a los que yo mismo estudié hace 30 años en ordenadores domésticos. Lo principal en ellos es un ciclo de retroalimentación rápido: escribes un programa normal en un lenguaje de programación más o menos maduro y obtienes visualización instantánea: algo o alguien está girando, corriendo, saltando, etc. Sin embargo, estos juegos solo se pueden usar como un producto integral e independiente - es imposible aislar tareas para integrarlas en su propio ciclo educativo.
Una vez vi a mi hija menor resolviendo problemas de programación en un portal educativo ruso. Luego hizo clic en alrededor de 90 de ellos: para ser justos, debo decir que las tareas en sí son bastante simples, pero con la visualización y la velocidad de la retroalimentación, no todo está mal allí. En el proceso, tuve una idea: crear un componente universal que se pueda reutilizar o incrustar en proyectos de terceros: haga lo que quiera con él, cree tareas más complejas. Se puede mejorar como fuente abierta y sobre esta base, construir diferentes ciclos de aprendizaje. Lo principal es que el usuario, por ejemplo, un escolar, debe escribir un código simple que se ejecutará de inmediato, y algo que parezca bastante divertido sucedería en la pantalla.
¿Cómo hicimos Kiddo?
La idea de una plataforma, o más bien, un componente que puede incrustar directamente en su navegador, se me ocurrió hace más de un año. Deseaba que cualquiera interesado en él pudiera expandirlo. Para que al final puedas construir problemas profundos y complejos, comenzando por los simples. Al principio todo se desarrolló lentamente, luego con la ayuda de una iniciativa interna del Talent Lab, donde probamos hipótesis y creamos pequeños proyectos para nosotros, las cosas fueron más rápido.
Pero, por supuesto, el autoaislamiento funcionó. Hay más tiempo, además, el interés por proyectos para niños entre los compañeros ingenieros ha aumentado notablemente. Probablemente, muchos por su propia experiencia o la experiencia de sus seres queridos estaban convencidos de lo difícil que es mantener a un niño en casa.
En total, solo cumplimos 350 horas de producción. Es cierto que en algún lugar nos ayudaron colegas que estaban temporalmente fuera de los proyectos de los clientes. Nos movimos en iteraciones y tuvimos casi una docena de versiones alfa internas. Pues como actuamos discretamente y por las fuerzas de los que estaban libres en un momento determinado, teníamos una deuda técnica titánica. Así que hemos estado refactorizando durante casi un mes.
Algunas características todavía están solo en el borrador, pero el proyecto se puede escalar. Las tareas fueron inventadas principalmente por los propios desarrolladores, pero puede continuar llenando la base de datos casi sin cesar. No hubo problemas con la visualización: nos detuvimos en el concepto de un juguete arcade generalizado, que se acerca a muchos, digamos, de finales de la década de 1980. Yo mismo hice una vez tres de estos en Assembler.
¿Que sigue?
Ahora estamos localizando la plataforma para diferentes países y su código fuente se ha publicado en GitHub . Pero puede reponer la base de datos de tareas y llevar a Kiddo a sus sitios en cualquier momento. Los problemas están escritos en JavaScript, su complejidad no está limitada por nada más que la imaginación del autor. Tenemos un conjunto de imágenes listas para usar para tareas con un campo gráfico, pero si lo desea, puede dibujar las suyas propias.
Finalmente, si alguien quiere agregar algo propio a Kiddo, por ejemplo, para que se vea más orgánico como un elemento en un sitio específico, simplemente puede escribirnos a kiddo@dataart.com . Creo que se nos ocurrirá algo. O puede bifurcar el código a GitHub y hacerlo usted mismo.