{Des}programar

Autores/as
Afiliaciones

Begoña Cuquejo

SCADS.AI Leipzig University

Natasha Hrycan

SCADS.AI Leipzig University

Erika Roldán

Max Planck Institute for the Mathematics in the Sciences

Descarga

Resumen

En este comunicado damos pistas de reflexión en torno a metodologías de aprendizaje que establecen un puente entre la matemática, la programación y la creación escénica. Este comunicado está basado en la creación e implementación de un taller en el que utilizamos como gadget educativo un robot programable que permite seguir instrucciones de movimiento (tipo turtle graphics que fue usado por primera vez en LOGO1) y otras interacciones que son usualmente accesibles con IoT (Internet of Things). El taller tuvo una duración de una semana y se llevó a cabo durante el campamento académico de verano Les Marmottes en Les Diablerets, Suiza [1]. Las actividades desarrolladas durante esa semana se fundamentaron en pedagogías abiertas que lograron estimular la autonomía y creatividad del alumnado. Para culminar el taller las alumnas compartieron puestas escénicas.

Palabras clave

Robot Finch, Programar, Creación escénica, Pedagogías abiertas, Inclusividad, Matemática y Ciencias de la Computación.

Abstract

In this paper, we give some ideas for reflection on learning methodologies that establish a bridge between mathematics, programming, and scenic creation. This paper is based on the creation and implementation of a workshop in which we used as an educational gadget a programmable robot that allows us to follow movement instructions (turtle graphics type that was first used in LOGO2 and other interactions that are usually accessible with IoT (Internet of Things). The workshop lasted one week and took place during the summer camp Les Marmottes in Les Diablerets, Switzerland [1]. The activities developed during that week were founded on open pedagogies that stimulated the autonomy and creativity of the students. To culminate the workshop, the students shared the performance with the rest of the mentors and the participants.

Keywords

Robot Finch, Programming, Scenic creation, Open pedagogy, Feminism, Mathematics.

Introducción

{Des}Programar es un proyecto que trabaja el pensamiento algorítmico y la programación informática a la vez que se deconstruyen los prejuicios sobre las matemáticas, las ciencias de la computación y el arte, así como otros aspectos trasversales del acceso a la educación STEAM destancando la identidad de género. Este proyecto lo hemos llevado a distintos contextos, como el programa de verano de la Bibliothèque de la Cité en Ginebra, y el taller de verano les Marmottes, ambos en Suiza. Este último taller lo comentamos a detalle en este comunicado.

El campamento de verano Les Marmottes es un taller de iniciación a la investigación en matemáticas que está dirigido a estudiantes mujeres de instituto. Es auspiciado por Fonds National Suisse, MathScope y Université de Genéve, tiene una duración de una semana y se llevó a cabo en el 2024 en el mes de Abril en Les Diablerets, Suiza.

Con las estudiantes de Les Marmottes trabajamos con el Finch Robot para generar una presentación final a modo de espectáculo utilizando elementos escénicos básicos que derivan del objeto utilizado, en este caso: luz, música y movimiento. La coreografía fue decompuesta en comandos básicos que fueron programados en Python para que el robot pueda replicarlos. Los cambios de ritmo, la velocidad, la trayectoria, etc, son elementos esenciales de una coreografía del objeto. La disposición del público, y el ambiente para recibir la información creada forma parte de la reflexión de una dirección escénica, cuya forma de pensamiento queremos fomentar en las participantes.

Como ya se mencionó, en este taller brindamos a las participantes artefactos u objetos (en este caso el robot y los microcontroladores). Es por esto que nuestra propuesta pedagógica está enmarcada en metodologías de aprendizaje body-artefact. En [4], los autores concluyen que las acciones sensoriomotoras respaldan el surgimiento de estructuras perceptivas para el desarrollo de conocimiento en los estudiantes. Este concepto puede expandirse a enfoques histórico-culturales para una conexión más profunda en las tareas que el alumnado está experimentando. Teniendo en cuenta que las estructuras funcionales del conocimiento pueden ser extendidas a artefactos externos, el desarrollo tecnológico se convierte en una importante herramienta de apoyo para la experiencia sensoriomotora ([3]). Estos artefactos tecnológicos se convierten entonces en un puente que sirve para la materialización de conceptos matemáticos y de pensamiento algorítmico, brindando una estructura más fuerte a las ideas y conceptos que son presentados en el proceso usual de aprendizaje.

A nivel filosófico creemos en la emancipación intelectual del alumnado [2], por lo que el punto de partida consta de un problema abierto: ¿Cómo crear una presentación escénica con los robots? Para enfrentar esta tarea, los elementos de los que disponía el alumnado fueron la librería online de Finch y un documento a modo de guía escrito por nosotras con ejercicios de programación y creación artística para explorar las capacidades del robot. Durante todo el taller contaron con el apoyo y guía dos de las autoras de este comunicado que fungieron como mentoras tanto en la parte artística como en la parte matemática y de programación de los robots. Este comunicado introduce a continuación la estructura del taller. Esta sección ofrece una detallada explicación de el robot utilizado y sus funciones, para así llegar a las conclusiones donde se detallan los aprendizajes obtenidos a partir de los talleres realizados.

Estructura del Taller

Con el propósito de que docentes con interés en profundizar más en nuestra propuesta, a continuación presentamos la estructura del taller y una breve introducción a los elementos utilizados.

La estructura del taller El taller se desarrolló durante una semana, con sesiones diarias de 8 horas. A continuación, se detalla la estructura de cada día:

Día 1: Introducción

  • Toma de contacto: Comenzamos con una actividad para conocernos y entender los intereses de las alumnas, además de reflexionar por qué eligieron nuestro taller entre todas las opciones disponibles.

  • Introducción técnica: Explicamos los componentes del robot Finch, como el Microbit, que es el microcontrolador responsable de ejecutar los comandos.

  • Primera tarea de programación: Las alumnas crearon líneas continuas con el Finch, reflexionando sobre su significado. Este ejercicio introdujo conceptos básicos de movimiento, bucles y comandos del Python Finch Library.

Día 2: Exploración y creatividad

  • Construcción geométrica: Las participantes aprendieron a programar una trayectoria que representa el “Das Haus von Nikolaus,ün grafo que se traza sin levantar el lápiz y sin repetir líneas.

  • Símbolo del infinito: Exploraron cómo crear un símbolo del infinito utilizando bucles y velocidades diferenciadas para las ruedas del Finch, experimentando con conceptos de continuidad y fluidez.

  • Dramaturgia inicial: Reflexionaron sobre cómo estos trazados podían formar parte de una narrativa coreográfica para los robots.

Día 3: Diseño escénico

  • Reflexión espacial: Las alumnas analizaron cómo disponer su dramaturgia en el espacio, considerando la transmisión del mensaje, la duración y la relación con el público.

  • Técnicas de acumulación: Se les introdujo a una técnica narrativa basada en acumulación progresiva en lugar de una narrativa lineal. Esto permitió revelar capas de información de manera gradual mediante movimientos repetitivos del robot.

  • Integración de música: Además de programar, exploraron el uso de música para enriquecer la narrativa.

Día 4: Práctica escénica

Las alumnas practicaron sus piezas finales, ajustando sus programas y mejorando la integración de elementos visuales, espaciales y musicales.

Día 5: Presentación final

Culminaron la semana con una presentación de sus trabajos, mostrando cómo combinaron programación, música, movimientos coreográficos y narrativas visuales. Las alumnas reflexionaron sobre el proceso creativo y técnico durante una sesión de evaluación.

Introducción al robot Finch

La guía mencionada contiene un conjunto de instrucciones para programar el robot para que realice distintas acciones. El robot Finch permite a uno controlar su movimiento, luces, sonidos, interacción con otros microcontroladores y con sus alrededores gracias a los sensores.

La guía contiene explicaciones y ejemplos de aplicación para usar los elementos más básicos del Finch: movimiento, dibujar figuras, luces y sonido, sensores y conexión por radio entre microcontroladores y robots. Después de cierta cantidad de instrucción de cómo usar y programar al robot, las estudiantes eran presentadas con tareas para usar las habilidades aprendidas, ejemplos de estas tareas son dibujar un símbolo de infinito y una casa. A pesar de que estas parezcan tareas triviales para cualquiera, programar estos dibujos con un robot, entender la estructura de las formas que componen una imagen, los comandos y el orden para obtener la figura que queremos, pueden ser tareas especialmente desafiantes para personas que no han trabajado con robots antes. Estos ejercicios y los ejemplos presentados en la guía sirvieron de fundamento para la creación de las presentaciones de las jovenes en el último día del Campamento, a pesar de que fueron mucho más allá eligiendo las formas que representar.

Antes de programar al robot Finch, es importante entender cómo funciona y sus com- ponentes. El cerebro del robot es el microcontrolador Microbit, este elemento es el que recibe los comandos y señales de radio. Este microcontrolador puede ser programado de dos maneras: vía archivos .hex o Bluetooth. Abajo tenemos una breve explicación de cómo funciona cada uno:

  • Vía archivos .hex: una vez que hayamos terminado de escribir el código para el robot Finch en el sitio de Makecode, el cual es la plataforma de Windows para programar al Microbit, podemos descargar el archivo .hex y subirlo como un archivo normal a la carpeta del robot Finch. Para ello, el robot Finch debe estar conectado a la computadora vía cable USB. Este método permitirá que el robot inicie el código cada vez que esté encendido, es por esto que es conveniente incluir comandos para acciones luego de una acción de activación. Esto podría ser, por ejemplo, la función se activa luego de presionar un botón, o si el robot recibe cierto número en el canal de radio. Subiendo el archivo .hex al robot nos permite que el robot funcione como imaginamos que un robot debería: de manera autónoma y con poca o nula asistencia humana para ejecutar acciones.

  • Vía Bluetooth: este método de subir códigos al microcontrolador es considerado adecuado especialmente para personas que están empezando a programar. El modo de operación es bastante sencillo: escribimos el código en Python en el sitio de BirdBrain Technologies, enviamos el código por Bluetooth al robot Finch y éste lo ejecutará instantáneamente. La rapidez de este método facilita el proceso de prueba-error, el cual es un elemento importante en el aprendizaje de un lenguaje de programación. Los usuarios pueden notar más rápidamente si es que hay un error en el código y esto incentiva a probar nuevas maneras de realizar una acción, analizar lo que estamos haciendo y planear de manera más eficiente.

Figura 1: Robot Finch.

Como se puede apreciar, cada vía para programar el robot tiene sus ventajas de acuerdo a lo que uno busca. El método vía Bluetooth está limitado en cuanto a los dispositivos, ya que presenta el problema mencionado anteriormente con dispositivos como Raspberry Pi o Macbooks. La plataforma de Makecode tiene comandos basados en Python pero limitaciones ya que sólo pueden usarse los comandos disponibles en su biblioteca. Esto no permite usar funciones de otras bibliotecas (time, numpy, etc.).

Las siguientes secciones en el manual presentan explicaciones paso por paso para realizar comandos de movimiento, uso de periféricos y conexión por señal de radio entre varios microcontroladores. En las siguientes líneas serán explicados a detalle ejemplos para programar al robot Finch utilizando el método vía archivos .hex, lo que implica que nuestros comandos provienen de la biblioteca de Makecode. La lista de comandos para programar vía Bluetooth está disponible en la librería Python del Finch. El sitio web de Birdbrain Technologies también ofrece explicaciones para poder preparar al robot Finch para programación vía Bluetooth, ya que es necesario instalar un archivo que servirá de identificador para conectar el robot (o el microcontrolador, este también puede trabajar independientemente de si está conectado a un robot o no).

Cuando trabajamos en la página de Makecode, es importante agregar la extensión de Finch a nuestra biblioteca. Como fue mencionado antes, solo podemos usar los comandos disponibles en el menú. Iniciando con los comandos de movimiento, debemos iniciar el Finch y luego determinar la dirección, distancia y velocidad de movimiento del robot. También es posible controlar de manera aislada los motores del robot, lo cual puede ser útil a la hora de dibujar curvas o circunferencias, estableciendo diferentes velocidades en cada una de las dos ruedas el robot no dibujará en línea recta y se desviará paulatinamente. Este puede ser un ejercicio de matemáticas y física básica para los usuarios, calcular cuántos segundos y a qué velocidades deben estar las ruedas del robot para poder dibujar una circunferencia o arco de determinado tamaño. Siguiendo este párrafo se encuentra un ejemplo de código que realiza las siguientes acciones: inicia el robot Finch, el robot se mueve hacia adelante 10 cm a 50 % de su velocidad máxima, luego gira hacia la derecha 90° a 50 % de su velocidad máxima, se mueve hacia atrás 10 cm a 80 % de su velocidad máxima y finaliza moviéndose para adelante formando una circunferencia, la rueda izquiera posee 30 % de la velocidad máxima y la rueda derecha 50 %.

finch.start_finch()
finch.set_move(MoveDir.FORWARD,10,50)
finch.set_turn(RLDir.RIGHT,90,50)
finch.set_move(MoveDir.BACKWARD,10,80)
finch.start_motors(30,50)

Una vez que se posee conocimiento sobre cómo mover el robot es cuestión de diseñar las figuras que se quieran dibujar para determinar los comandos necesarios. Estos comandos para dibujos pueden ser activados, por ejemplo, al presionar el botón A del microcontrolador. Adicionalmente, uno puede incluir en el código comandos para prender las luces del robot, que una melodía suene, presentar un texto o icono sencillo en la pantalla LED del microcontrolador. El microcontrolador cuenta con sensores de temperatura, luz, compás, giroscopio y sonido, los cuales pueden ser utilizados para activar comandos de acciones. Aquí presentamos un ejemplo: el robot Finch prende sus luces delanteras de color blanco y se mueve 20 cm hacia adelante a 50 % de su velocidad máxima, si es que presionamos los botones A y B al mismo tiempo.

finch.start_finch()

def on_button_pressed_ab() :
    finch.set_beak(100, 100, 100)
    finch.set_move(MoveDir.FORWARD, 20, 50)
    pass
input.on_button_pressed(Button.AB, on_button_pressed_ab)

Luego de familiarizarnos con el movimiento y uso de periféricos del robot Finch podemos comunicar microcontroladores y robots entre sí. Esto es posible con la emisión de radiofrecuencias en distintos canales. Debemos seleccionar un número para el canal (por ejemplo, 25) y éste será el canal al cual el receptor y emisor deberán estar conectados. A modo de ejemplo, podríamos tener un microcontrolador en un guante, y cada vez que rotamos la mano hacia la derecha, éste enviará una señal DERECHA al canal 25. Este ejemplo no fue elegido por las alumnas en el Campamento pero si fue desarollado con más profundidad en el proyecto Desprogramar para creación coreográfica en Ginebra, en Agosto 2024.

radio.set_group(25)

def on_gesture_right() :
    radio.send_string("DERECHA")
    pass
input.on_gesture(Gesture.TILT_RIGHT, on_gesture_right)

Ahora cualquier robot o microcontrolador receptor podrá recibir una señal DERECHA, en tanto esté conectado al canal 25. Digamos que tenemos un robot conectado a este mismo canal, y queremos que cada vez que giremos nuestra mano hacia la derecha, el robot dé una vuelta de 360° y dibuje una cara feliz en la pantalla LED del microcontrolador.

radio.set_group(25)
finch.start_finch()

def on_received_string(receivedString) :
    if receivedString == " DERECHA ":
      finch.set_turn(RLDir.RIGHT, 360, 50)
      basic.show_icon(IconNames.HAPPY)
    pass
radio.on_received_string(on_received_string)

Partiendo de aquí uno puede configurar las acciones a gusto para que el receptor y emisor trabajen en conjunto. Una de las limitaciones de la biblioteca de Makecode es que no cuenta con la función else if o elif, por lo que si tenemos distintas palabras o números enviados a través del canal será necesario usar una cadena de funciones if para abarcar todas las variables.

En esta sección de metodología nos hemos enfocado más en los elementos matemáticos y de programación. En cambio en las secciones de Resultados y Conclusiones haremos énfasis en el aspecto artístico del taller.

Resultados

El resultado del taller fue una coreografía con los robots finch. Se alcanzaron varios objetivos escénicos. Por ejemplo, las alumnas pudieron implicar su cuerpo ante un público sin vigilar como caminan o “performan”. Fueron capaces de no teatralizar sus movimientos disponiendo los elementos utilizados, cuando desplazaban robots o colocaban los papeles, los rotuladores en los finch, sincronizándose con la música y el momento de accionar. Todas las acciones tenían un fin performativo, por lo que no tenían que representar sus acciones sino presentarlas.

Pudieron aprender y probar cuestiones prácticas de forma más divergente que utilizando meramente la librería básica. Pudieron reflexionar a la disposición del receptor de su mensaje; en este caso dispusieron al público en un círculo alrededor de la escena. Durante la entrada de público están dispuestas en el espacio y deciden colocar el robot después de que todo el mundo esté sentado, cosa que permite dar la dimensión personal del acto y aumentar la idea de comunicación entre activos y públicos. La estructura que decidieron para la obra se basó en la repetición para subrayar el efecto sorpresa que generaban los movimientos de los robots. La primera coreografía fue sencilla, en ella toma relevancia el robot como personaje; en la segunda repetición, le colocan los rotuladores y los finch vuelven a realizar el mismo recorrido pero ahora podemos ver que además cobra importancia y otro significado el recorrido que dibujan estos robots-personajes. Previamente a la tercera escena presentan un interludio con un tercer robot que hace sonar la canción Para Elisa de Beethoven y comienza a dibujar la frase: 1+1=3, mientras se activa en el otro lado del escenario la tercera repetición. En esta última escena las alumnas deciden poner sobre los robots dos peluches de Marmotas, (el símbolo del campamento), con lo cual los robots adquieren otra significación más lúdica, haciendo un guiño a su propio público de complicidad, captando su atención. Para aumentar el ritmo, suena la verdadera Para Elisa lanzada desde un altavoz para hacer un aumento dramático de ritmo hasta el final. Lo importante de estas decisiones es que fueron la presentación de los elementos buscando una dramaturgia no explícitamente narrativa, sino trabajando otros aspectos sensibles de la creación escénica, además de ocuparse de la reiteración, y de presentar otra realidad.

Conclusiones

En este taller, las alumnas lograron conectar las matemáticas con la programación y la creación escénica, presentando al final un producto que combinaba estas disciplinas. Esto permitió mostrar cómo estas áreas pueden integrarse de manera creativa para enriquecer el aprendizaje.

Resultados principales

  • Fomento de la creatividad: Las alumnas exploraron cómo los movimientos del robot podían narrar historias o transmitir experiencias estéticas.

  • Refuerzo de conceptos matemáticos: La programación de trayectorias permitió aplicar conocimientos de geometría de forma práctica, consolidando aprendizajes a través de ejercicios interactivos.

  • Desarrollo de habilidades técnicas: Las participantes adquirieron competencias básicas en programación, lo que no solo facilitó su incursión en STEM, sino que también aceleró los tiempos de adqui- sición de conocimientos técnicos gracias al uso de herramientas visuales e inter- activas como el robot Finch.

  • Adquisición de habilidades como creadoras escénicas: Las alumnas aprendieron a transmitir información de manera escénica, reflexionando sobre aspectos clave como la disposición del público, los ritmos de los contenidos, el orden y la dramaturgia del taller, entre otros.

  • Generación de ideas propias en programación: Más allá de replicar modelos preestablecidos de la librería, las participantes diseñaron y personalizaron sus propios programas para resolver problemas específicos y crear representaciones únicas.

Esta experiencia interdisciplinaria no solo motivó a las alumnas a explorar áreas de conocimiento nuevas, sino que también las animó a trabajar de manera colaborativa, combinando rigor técnico con creatividad artística. Asimismo, se destacó la importancia de conectar los aprendizajes teóricos con experiencias prácticas que desarrollan competencias múltiples y fomentan la autonomía en el pensamiento creativo.

Figura 2: Representación grupo de almunado Les Marmottes. Diablerets, Suisse.

Referencias

[1] Les Marmottes - Filles et Maths. Consultado: 2024-07-20. URL: https://indico.cern.ch/event/1358301/overview.

[2] Jacques Rancière. El maestro ignorante. Mimesis, 2008.

[3] A. Shvarts, R. Alberto, A. Bakker et al. “Embodied instrumentation in learning mathe- matics as the genesis of a body-artifact functional system”. En: Educational Studies in Mathematics 107 (2021), págs. 447-469. DOI: 10.1007/s10649-021-10053-0.

[4] A. Shvarts, R. Bos, M. Doorman et al. “Reifying actions into artifacts: process-object duality from an embodied perspective on mathematics learning”. En: Educational Studies in Mathematics (2024). DOI: 10.1007/s10649-024-10310-y.

[5] Birdbrain Technologies. Finch Robot 2.0, Birdbrain Technologies. Consultado: 2024- 07-20. URL: https://store. birdbraintechnologies.com/collections/ finch-robot/products/finch2.