El pasado sábado tuve la suerte de asistir a un curso de robótica educativa en Complubot (post pendiente) donde nos mostraron las actividades que hacen con alumnos de primaria y secundaria. La programación es una parte fundamental del desarrollo de los robots, y para que os deis cuenta de lo difícil que es enseñar a programar a niños, pensad que con 5 ó 6 años muchos aún no saben leer ni dividir…

Muchas de las dinámicas que hacen con los chavales se hacen lejos del ordenador, con los elementos más tradicionales de la escuela: cartulinas, tarjetas, juegos de mesa. Cualquier cosa es buena para llegar al “procesador” del alumno, porque, sorpresa-sorpresa, a los niños no les gusta programar. El mero hecho de arrimarlos a un ordenador no les entretiene ni les educa. A la mayoría de los adolescentes tampoco les gusta mucho al principio porque tienen una resistencia pequeñísima a la frustración y programar es difícil. De ahí que AppInventor, Scratch, y demás entornos gráficos sean una buena forma de empezar, a pesar de sus limitaciones. Suavizan la curva de aprendizaje a valores tolerables, acercan la zanahoria al alumno.

Entre las dinámicas que usan en Complubot está la “algoritmia teatralizada”. Solo vimos una foto, pero el término es autoexplicativo. Y justo lo que necesitaba en el punto en el que me encuentro con mis programadores de apps de 3º ESO. No entienden las variables, la diferencia con los literales, la forma en la que viajan los datos por el programa…

Así que ayer me puse manos a la obra a escribir mi gran obra de teatro: “Las variables, esas grandes desconocidas“. No se si me ha salido un teatro o un juego, pero la verdad es que la idea ha funcionado genial. La dinámica es algo así

disfraces

Cada actor debe ponerse su disfraz correspondiente.

Solo los actores que interpreten funciones pueden moverse por su cuenta (son como los verbos, hacen cosas), mientras que los literales y variables (son como nombres) necesitan ser colocados, movidos, por los actores que interpreten funciones.

Las funciones deben moverse en el orden adecuado.

Para representar la conexión entre bloques, los actores se agarrarán de la mano. Por ejemplo, el literal number solo tiene un enganche o conexión, así que solo puede usar una mano. Los bloques de las funciones se pueden conectar por dos lados, así que puede usar las dos manos.

Expliqué durante cinco o diez minutos el trozo de código y la dinámica de la actividad (ver detalles). Como siempre, arrancaron con poco entusiasmo (“¿Eso son disfraces profe? Si son carteles y cajas…”, “Profe, yo me pido ser variable o literal, que no quiero moverme.”)

Pero pronto el “caos activo” se instauró en clase. Un espectador que entrara en el aula sin saber de que iba el tema habría visto un grupo de chavales haciendo mucho ruido, toqueteando la pantalla de mi ordenador mirando muy concentrados a los bloques de colores que aparecía en ella, chavales colgándose cartulinas del cuello y cogiéndose de la mano, una profesora igual de febril cargando una caja con basurilla e implorando a un alumno: “Dame nombre, porfavor, no se quien soy. Quítame la basura, inicialízame….” Y ruido, mucho ruido y collejas y cállate un rato y deja de usar la caja como un tambor que me estás poniendo loca…

Tras el caos y mucho trabajo formaron una entrañable cadena de alumnos cogidos de la mano, con cartelitos colgados o cajas en las manos en perfecto orden e interpretaron el viaje de un dato introducido en una caja de texto, procesado e integrado en un mensaje de salida visualizado en una etiqueta. Obviamente, con su (nuestro) sentido del ridículo no han querido que grabemos un vídeo o hagamos fotos, aunque hubiera estado bien. Quizá en otra ocasión.

Tras dos sesiones de teatro (casi)todos los chavales tienen clarísimo lo que es una variable y su diferencia con un dato literal, así como el mecanismo de las funciones (argumentos de entrada, valores de salida). También han aprendido, de forma imborrable espero, que toda variable debe ser inicializada, aunque el lenguaje de programación no lo exija, cosa que seguro que alumnos de programación de FP o Universidad no siempre tienen en cuenta🙂