miércoles, 28 de febrero de 2018

Programación para niños

Hace unas cuantas semanas hablábamos de unos cursos que podían servir para iniciar en la programación tanto a mayores (mediante un curso de Miríadax) como a pequeños (mediante dos cursos de OpenSAP, ambos de introducción a Scratch).

Seguro que ya habéis convencido a cientos de miles de millones de amigos (adultos y niños) para que se inicien en la programación.

A raíz de ese post, y del doodle que puso Google para celebrar el 50 aniversario de la programación para niños, comencé a cotillear sobre este tema, y la verdad que tiene para dar y tomar: Logo, Scratch, Snap!, Kodable, Tynker, Code.org, JSRobot... y muchos más lenguajes o herramientas de programación, pero esta vida no me da para tanto.

Pero es que, además, no tenemos por qué quedarnos ahí, sentados delante de un ordenador, para desarrollar el pensamiento computacional, sino que también podemos conseguirlo gracias a los juegos de mesa.

Yo, de mayor, quiero ser doodler

Así que vamos a ver qué herramientas nos permiten mejorar ese pensamiento computacional en los peques, pero con programas o webs en las que no se necesite tirar ni una línea de código o, si hay que hacerlo, que sea fácil y para jugar. Así que nada de picar palabrejas raras sin parar, que eso es muy aburrido.

Además, os recomiendo escuchar este podcast en iVoox de la UNED sobre pensamiento computacional que está realmente interesante.

Y sí, confirmado, hoy no veremos nada de SAPUI5. Hoy vamos a trastear con programación para niños.

Logo


Esto de los lenguajes de programación para niños viene de lejos, porque el doodle de Google celebraba ¡el 50 aniversario de la programación para niños!

Y todo comenzó con este lenguaje de programación, Logo, en 1967, basado en el LISP, utilizado para que los niños aprendiesen a programar haciendo moverse a una tortuga, mediante comandos naturales fáciles de aprender, que en algunos compiladores han sido traducidos incluso al español (adelante 50, izquierda 90...). Ese movimiento creaba unos dibujos denominados gráficos tortuga.

Para ver un ejemplo, podemos acceder a la Academia de la Tortuga y comenzar a hacer nuestros pinitos de programación pintando con la tortuga logondaria (hay que ver el nivel de chistes de este blog, ¿verdad?).

Mareando a la tortuga

Scratch


La herramienta que vimos gracias a OpenSAP, Scratch, me parece una herramienta genial para aprender a programar tanto para niños como para mayores. Con ella podemos hacer nuestros cutrejuegos o animaciones gracias al uso de bloques de colores, que se corresponden con las distintas instrucciones. Iremos enlazando estos bloques los unos con otros como piezas de Lego, para dar vida a los sprites, los objetos o monigotes de nuestras animaciones. Nos ahorramos tener que aprender un montón de instrucciones y sus diferentes formatos. Además, ¡vienen en español!

No me digáis que no es una herramienta más simpática para aprender a programar que Javascript.

Así que tenemos un editor como éste:

El "código" de la nave le permite moverse en tres posiciones horizontales distintas...
si leemos bien los bloques, ¡es fácil de entender!

Con el que, en un ratillo, podemos hacer algo tan supermegachachiguay como este jueguecito:

Vale, es supercutre, pero era una prueba rápida...

Lo malo de los dos cursos de OpenSAP sobre Scratch, Teaching Programming to Young Learners y Teens Get Coding!, es que están en inglés. Podría ser peor, podrían estar en klingon, eldarín o cosladeño profundo... Pero si el idioma no es un problema, aprovechémoslo. Hay que recordar que los cursos de OpenSAP son gratuitos, y ahora vienen con subtítulos.

De todas formas, siempre podemos encontrar cursos en español, ya que es una herramienta muy conocida. En el propio editor de proyectos hay unos tutoriales muy interesantes para comenzar a aprender, y incluso podemos usar los propios cursos que vienen dentro del propio editor de proyectos de Scratch, que son una buena guía paso por paso.

Ve a la derecha del todo y despliega los tutoriales... ¡y a aprender!

Scratch está pensado para niños de entre 8 y 16 años, aunque yo lo pondría como un 8+ :D. Se puede instalar en el ordenador o usar directamente la versión online.

También hay una versión para niños de entre 5 y 7 años, ScratchJr, que debe instalarse, no hay versión online. El vídeo que hay en Google Play tiene buena pinta, pero no he podido instalarlo para probarlo :(.

Y para profesores, existe una comunidad para ellos, ScratchEd, para compartir recursos e historias, con artículos en varios idiomas, incluso en español.

Una pega en estos tiempos de HTML5 es que el editor de Scratch usa Flash. Parece ser que la comunidad de Scratch (y no el equipo de Scratch) está en la creación de un editor en HTML5, pero de momento no está conseguido.

Snap!


Llamado originalmente BYOB (Build Your Own Blocks), se trata de una versión que evoluciona a partir de Scratch, añadiendo más funcionalidad. Incluye mejoras como funciones de primera clase, programación basada en prototipos... vamos, cosas muy chungas para preocuparse en sus inicios por ellas.

En la web principal, https://snap.berkeley.edu/, podemos encontrar tanto el acceso a la aplicación como ejemplos (de los que podemos ver el "código") y tutoriales.



Gráficamente, es muy parecida a Scratch (aunque a mí así, en negro, no me motiva mucho). Su web no nos trae tantos ejemplos como la de Scratch, donde la comunidad nos ofrece un mogollón de proyectos para cotillear y aprender. Como ventaja, la herramienta se basa en HTML5, en lugar de hacerlo en (el odiado) Flash.

Kodable


Con Kodable nos encontramos con una herramienta web pensada para personitas a partir de 5 años. Tiene dos versiones, para padres/alumnos y para profesores.

Si entramos en su web y elegimos el tipo de cuenta para padres/alumnos y nos ponemos a probar tal cual, accederemos a una especie de juego, como si fuese un laberinto, en el que tenemos una bola peluda (un fuzzy) a la que le tenemos que asignar una serie de pasos (direcciones) para que sepa cómo ir avanzando para salir del laberinto. Cada vez que se desplace y se encuentre con un muro, mirará la siguiente instrucción para saber qué tiene que hacer.

Con este sencillo escenario, aprendemos a usar una secuencia lógica de órdenes. Pero hay más, porque los laberintos se van complicando, y tenemos que añadir condiciones, loops, bloques reutilizables (vamos, funciones)... Al final, con este jueguecito, vamos aprendiendo la lógica computacional.

Al principio los laberintos son muy sencillos, indicar cómo se mueve y ya está.
Pero luego se van complicando: ramas condicionales (marcadas con colores), operaciones reiterativas (indicando que una misma combinación la repetimos varias veces), reutilización de funciones...

Pero no todo son laberintos, porque luego hay otros juegos que nos permiten aprender más cosas. Además, podemos crear nuestros propios laberintos (y diseñar nuestros fuzzies, que no todo va a ser aprender a programar). Eso sí, la versión gratuita se quedará corta, a no ser que nos pongamos a crear laberintos y más laberintos, y si queremos más niveles u otro tipo de aprendizaje. lo tenemos que solucionar con una versión de pago, con todos los niveles, por $29.

La web también incluye una explicación detallada para explicar al padre, para cada nivel, los conceptos de programación que se aprenden y el objetivo de los juegos.

Y esto es sólo la versión para padres/alumnos, porque también hay una versión para el profesorado. En esta versión, se pueden diseñar diferentes clases, adaptadas cada una al correspondiente nivel de sus alumnos. La web nos propone los niveles idóneos, pero nosotros podemos adaptarla según creemos necesario. Después, podemos añadir a distintos alumnos, que podrán acceder a la clase específica que les hemos creado.

Podremos seguir también la evolución de los alumnos, ver qué niveles han superado, los intentos que han hecho...

También incluye guías muy útiles para que el profesor, con esta herramienta, pueda explicar otros conceptos: Por ejemplo, el vocabulario de programación, cómo debuggear, etc.

Este formato también incluye una versión gratuita, con niveles limitados, y dos de pago (una de $600 y otra plus de $1500, ambas cada 12 meses).

Como profesores, podemos adaptar los niveles que queremos mostrar... para los más peques, a lo mejor con explicar secuencias lógicas y condicionales es más que suficiente.

Lo malo de Kodable es que está en un perfecto inglés... como siempre, si eso para nosotros es un problema. Lo bueno para los más peques es que los juegos son muy intuitivos y las guías son gestuales, así que el idioma no es un problema.

También tener en cuenta que la versión gratuita es limitada, claro, así que si buscamos algo potente, tendremos que pagar. Pero es que de algo tendrán que vivir los de Kodable, ¿no?

Tynker


Tynker es una web que combina la programación mediante el encadenamiento de bloques, como Scratch, con la creación de plan de aprendizaje, como se hace con Kodable. Está pensado para niños de 7 o más años, y permite comenzar a aprender los conceptos básicos mediante juegos o tutoriales y a programar mediante su equivalente a Scratch, para más adelante pasar a programar mediante Javascript y Python.

Al igual que con Scratch, nos permite crear nuestros propios proyectos de animación y juegos, gracias a un editor que usa etiquetas de colores (y es que se basa en el propio Scratch), pero cuenta con una considerable biblioteca de sprites bastante completos y complejos que con Scratch, que ya tienen programadas las acciones de movimiento (andar, saltar, etc.) y que podemos personalizar y reutilizar para nuestros juegos. También nos podemos crear los nuestros, claro. Además, el editor de Tynker utiliza HTML5 (como Snap!), así que no necesitaremos usar el Adobe Flash.

Como con Kodable, nos permite tener una serie de juegos y tutoriales ya diseñados para que los alumnos/hijos aprendan a programar. 

Tiene tres modos de acceso: como alumno, como padre y como profesor. Incluye una serie de juegos que tenemos que superar encadenando bloques. También incluye cursos y tutoriales mucho más complejos, para que aprendamos a crear nuestras propias animaciones y juegos.

En el primer curso como "hijo", realmente nos encontramos con un juego en el que damos órdenes a nuestros personajes mediante bloques de etiquetas.

El padre podrá crear una entrada para sus hijos y así poder seguir sus progresos.

El profesor, por su parte, podrá crear una clase para asignar los tutoriales que considere oportunos para sus cursos.

Parece tener una gran cantidad de cursos, pero sólo unos pocos son gratuitos y es necesario apuntarse a un plan para poder tener más cursos disponibles.

El plan para el padre es periódico, con un determinado precio mensual, o permanente, pero bastante más caro que con Kodable ($150). Para el maestro, tenemos una mayor variedad de planes (Kodable sólo tenía dos), dependiendo del número de tutoriales y de la cantidad de cursos que se quieran tener disponibles. En general, más caro que Kodable, aunque al final la herramienta parece más completa.

Hasta cuatro planes diferentes de pago para escuelas

Por cierto, que permite también crear mods para Minecraft... pero ahí ya no me meto porque estoy pez, aunque a los que les gusté el Minecraft podrían echar un ojo.

Por desgracia, está en inglés :(. Quizá otra pega más para implantarlo en colegios, ya que los tutoriales exigen leer bastante. 

Code.org


Y volvemos a una nueva web con un formato alumno/maestro, Code.org, una organización sin ánimo de lucro que busca el aprendizaje de la programación entre los menores. Aquí el acceso es completamente gratuito, no hay planes de pago, aunque acepta donaciones y colaboraciones para poder mantenerse.

Como Kodable y Tynker, cuenta con cuatro cursos, adaptados a ciertos grupos de edad, siendo el curso más bajo para niños de 4 o más años, diseñado por tanto para niños que aún no saben leer. Son cursos considerablemente largos, de unas 20 lecciones cada uno con entre 3 y 10 actividades por lección. Vamos, que cortos no se quedan.

Utiliza, sobre todo, laberintos que se pueden superar, como no, enlazando bloques, como Scratch. Cada laberinto, dependiendo de la dificultad, tendrá un determinado grupo de bloques para elegir, tan sencillo como simples flechas para moverse o más complejos, incluyendo bucles y funciones.

También hay otros juegos para aprender conceptos básicos, pero abundan los laberintos.


Los juegos están en español, aunque en ocasiones no todo está bien traducido. También hay vídeos explicativos, aunque estos sí que están en inglés.

Además de los cursos, también hay unos cuantos tutoriales, que son como cursos de una única lección y varias actividades para realizarse en una hora, siguiendo el movimiento de Una Hora de Código, creado por la propia Code.org para promover la enseñanza de esta disciplina en todo el mundo.

Si nos identificamos como profesor, podremos crear nuestras propias clases y asignarle el curso o tutorial que queramos, así como añadir alumnos, a los que daremos una url para que se conecten con su usuario y así podamos seguir su evolución.

Además de esta modalidad, también podemos crearnos nuestros propios proyectos, independientemente de los cursos, gracias a su editor de bloques. No obstante, me da la impresión de que esta versión está mucho más limitada que si optamos por Scratch o Tynker.

JSRobot


JSRobot es un jueguecito con el que podemos dar órdenes mediante sentencias Javascript a un robot para que llegue al final de cada uno de los distintos niveles.

Cada nivel permite aprender cosas relacionadas con la programación, como la forma de estructurar el código, el uso de operaciones iterativas (el loop, vaya), el tratamiento de propiedades de objetos, etc.

Nuestro robot ya está en marcha obedeciendo las instrucciones programadas

Incluye una herramienta para poder mover al robot con los cursores, como un juego normal, y así poder explorar el nivel, pero lo suyo es acabar haciendo un programa en la pestaña de Script para que el robot supere el nivel con las instrucciones que le demos. También tendremos una pestaña de consola para poder ver el resultado de nuestros logs o darle instrucciones adicionales de prueba, y una de propiedades para ver las propiedades del robot (por ejemplo, la vida que le queda para superar el nivel, sus coordenadas...).

Está en inglés y requiere leer bastante, así que sería para los más mayores, quizá para introducirles ya en el arte del "coding" de verdad. Pero al ser un jueguecito, puede incentivarles.

Yo me he quedado un rato refrescando la entrada sólo para ver los mensajes tontos que te pone :D

Resumiendo...


Pues sí, la verdad que tenemos unas cuantas opciones, aunque al final hay mucha herramienta con bloques, estilo Scratch.

El hecho de que Scratch venga en español puede ayudar mucho para aquellos para los que el inglés sea un problema, además que para comenzar a aprender tampoco hacen falta operaciones complejas como con Snap!. En contra, el usar aún Flash en lugar de HTML5. Es muy útil para autoaprendizaje, aunque no da un soporte directo para crear cursos como profesor. Sin embargo, todo es echarle un vistazo a la gran comunidad que tiene para ver consejos y recursos que podemos reutilizar.

Por su parte, los laberintos iniciales de Kodable me parecen muy atractivos para esos primeros pasos con el pensamiento computacional, sin necesidad de estar programando de verdad. Además, aun estando en inglés, son intuitivos y entretenidos.

Tynker parece el más completo, una línea educativa pregenerada como Kodable, juegos para aprender y una herramienta como Scratch para programar, pudiendo llegar incluso a aprender Javascript y Python. Sin embargo, el mínimo de edad es mayor que con Kodable, además de que tendrán que saber ya inglés. Lo bueno, que incluyen cursos para que creen sus propios juegos. En este último caso, les puede resultar más interesante que Scratch, sobre todo por la biblioteca de sprites ya animados y personalizables que posee.

Lo que está claro que tanto Kodable como Tynker tiene una oferta de cursos gratuitos limitada, así que para poder usar toda su potencia nos tendremos que acoger a un plan de pago.

Code.org, por su parte, es completamente gratuito. Además, los laberintos y juegos para aprender vienen en español, aunque los vídeos estén en inglés (una mezcolanza en ocasiones un poco rara). Su editor de proyectos no parece tan potente como otros, pero sus cursos son bastante intuitivos incluso para los niños más pequeños. A lo mejor no tienen tantos cursos como Tynker, pero hay bastantes lecciones y actividades, todas gratuitas.

Logo y JSRobot... bueno, eran más meras curiosidades.

Y me queda pendiente...


Trastear con Google Blocky. Visto lo chulo que está esto de programar mediante bloques, y aunque este apunte que hago aquí no sea específicamente para niños, como desarrolladores podemos aprovechar esta librería que nos proporciona Google, para poder crear nuestra propia aplicación que use un editor de bloques, y que las operaciones que encadene el usuario sean traducidas al lenguaje que queramos.



Pero lo dicho, me queda pendiente para trastear con ella... ¿quizá integrándola en una aplicación SAPUI5?

Juegos de mesa


Y como no sólo de programar en el ordenador aprende el niño, hay una manera con la que se puede adquirir el pensamiento computacional sin tener que darle a la tecla: Mediante los juegos de mesa.

Porque resulta que también hay juguetes y juegos de mesa que pueden permitir a los niños a mejorar estas habilidades.

Ojo, esto no os lo toméis como una reseña, porque no los he probado, sino como un pequeño ejemplo de algunos juegos de coding que hay en el mercado, ya sea en tiendas especializadas o mediante tiendas online.

Cubetto


Cubetto es un robotito pensado para niños de tres o más años, con el que pueden hacer sus primeros pinitos en la lógica computacional. Para conseguir un Cubetto, podemos acceder a su web para pedirlo online, aunque nos va a tocar desembolsar una considerable cantidad de pasta, $219 en el modelo básico.

El juguete consiste en una placa en la que los niños indican los pasos que el robot debe seguir (avanzar o girar hacia un lado u otro). Le podemos dar hasta 12 indicaciones más una función de cuatro pasos, que podemos reutilizar. Vamos, que no solo se aprenden secuencias de comandos, sino también la reutilización de código.

El juguetito en cuestión... qué cara de felicidad que tiene

El robot, una vez indicados los pasos y pulsado el botón de activación, comenzará a moverse por una alfombra cuadriculada sobre la que lo habremos puesto (o donde lo queramos poner), y sobre la que podríamos añadir obstáculos o laberintos para que nuestro peque aprenda truquillos computacionales.

Podemos ver aquí un vídeo muy interesante de Cubetto (en inglés).

La verdad que el kickstarter de Cubetto fue la primera vez que descubrí que hay juegos y juguetes para niños para aprender conceptos de lógica computacional. Y de eso no hace tanto, porque el kickstarter (el segundo que hacían) fue en 2016. Reunieron muchísima pasta, casi $1.6M, aunque leyendo los comentarios parece que los envíos no acabaron de ir todo lo bien que deberían.

Algobrix

Volvemos a la temática de los robots, aunque en este punto hay que construirlos, como los robots de Lego (es más, es compatible con Lego EV3). Y la complejidad del código que se puede añadir es mucho mayor que con Cubetto. Eso sí, la edad también es más alta, y va de los cinco años en adelante.

Algobrix es otro éxito de kickstarter, del 2017, que todavía está en fabricación y parece que con retraso. El kit básico costará $210, pero se puede solicitar en pre-order su por $125. Yo, personalmente, me esperaría a que el producto realmente estuviera acabado, con estas cosas de los kickstarters nunca se sabe, aunque el descuento es muy goloso, claro.

Visto esto, el Cubetto se queda pequeño

Robot Turtle


Robot Turtle, de ThinkFun, es otro juego que también ha pasado por Kickstarter, como ya viene siendo muy habitual en este tipo de "material".

Esta vez hablamos de un juego de mesa, pensado para niños a partir de cuatro años, que si lo comparamos con Cubetto, tenemos un sistema parecido pero con un motor distinto: En lugar de usar una "placa base" donde poner nuestras opciones, usaremos a un adulto :D.

A por nuestra gema


En él, llevamos a una tortuga (¿la tortuga de Logo ha llegado a la mesa?) que tiene que recorrer un mapa cuadriculado para conseguir su gema. Los jugadores tendrán que ir indicando la secuencia de comandos que debe seguir la tortuga para esquivar obstáculos hasta llegara la gema, y que reproducirá el compilador-adulto correspondiente.

El juego está muy bien explicado en este post de Bebé a Mordor, y tiene un precio bastante inferior al de Cubetto, según su web $25,. Y siguiendo los estándares frikis respecto a juegos de mesa, con un peso de 1,36 en la BGG está claro que es la mar de sencillo.

Code Master


Otro juego de Thinkfun, pensado para un único jugador de 8 o más años. Es un solitario en el que tienen que conseguir que el aventurero programador resuelva el camino para recoger los anillos y llegar mediante una secuencia de colores, aprendiendo a encadenar secuencias y también, en los niveles más avanzados, a las sentencias condicionales. Un total de 60 niveles para pasar el rato.


Pero para tener una reseña de verdad, podéis visitar este post de Padres Frikis en el que nos lo cuenta mejor detallado.

// Code: Programming game series


Acabamos con Thinkfun con estos tres juegos distintos, para un jugador de 8 o más años. Es decir, solitarios, como es el caso del Code Master.

En cada uno de ellos se propone una serie de laberintos (40 laberintos por juego), que el jugador debe superar. Para ello, cuenta con hasta seis cartas, dos para cada color, que se activarán cuando su robot pise el color correspondiente.


Potato pirates


Patatas, piratas y programación, ¿sacamos algo en claro con estas tres palabras? Pues sí, Potato Pirates, un juego de cartas, protagonizado por piratas patata, con las que se pueden aprender conceptos de programación.

Está pensado para un grupo de 3-6 niños de seis o más años... a mí me dan unas ganas de jugarlo que qué os voy a contar (a ver si así aprendo a programar de verdad).

En el juego, tenemos que construirnos una flota de piratas patata. Venceremos si conseguimos reunir los siete Reyes Patata (Potato King), pero mientras lo intentamos, podemos ir cargándonos la flota de nuestros enemigos.

Para ello, en cada barco de nuestra flota asignaremos hasta tres cartas, ya sean de acción (que dice cuanta tripulación patata nos cargamos del barco enemigo) o de control... y es aquí donde entra en juego la parte de la programación, porque las cartas de control son instrucciones de programación: For, While, IF... así que si combinamos una carta de acción que se carga a tres patatas con un for que se repite tres veces, nos encontramos con un ataque que es la leche patatera.

Esto es sólo una pequeña parte de las cartas de Potato Pirates

Lo malo del juego es que no se puede encontrar en España, así que tenemos que pedirlo a Singapur, incurriendo en gastos de envío. Pero si nos ponemos a echar cuentas, el juego cuesta 35 dólares de Singapur más 15 de gastos de envío, al final estará en torno a los 30-35 euros.

Code Monkey Island


El parchís para programadores, de seis años en adelante, se trata de un juego en el que tenemos que llevar a nuestros tres monos al centro de la isla. Pero, en lugar de tirar dados, jugaremos cartas que nos indican lo que avanzamos, dependiendo de si ciertas condiciones se cumplen. Es aquí donde está la parte de la programación, con cartas condicionales o reiterativas (por ejemplo, "Si hay algún mono en una palmera, avanza 10 casillas, si no, avanza 6" o "avanza tres casillas por cada mono que no esté en una piedra").



Podemos ver un vídeo de ejemplo en la propia web del juego. El precio, no me queda claro, porque parece que han tenido un problema con su stock y ahora andan sin material hasta abril, así que lo poco que he encontrado en Amazon está a más de $100... mejor no lo tomemos como referencia hasta que haya nuevo stock.


No hay comentarios:

Publicar un comentario