Problemas matemáticos en un curso de programación de videojuegos

6
PROBLEMAS MATEMÁTICOS EN UN CURSO DE PROGRAMACIÓN DE VIDEOJUEGOS Rafael Miranda Molina Universidad Católica de Chile, Programa de estudios y desarrollo de talentos PENTA UC [email protected] Tecnología y Ed. Matemática, Educación básica Resumen En el contexto del Programa Educacional para Niños y jóvenes con Talento Académico, Penta UC, un programa de enriquecimiento extracurricular de la Universidad Católica de Chile, se analizan los problemas matemáticos que surgen en un curso de programación de videojuegos. A partir de la revisión de los juegos programados en las primeras 10 versiones del curso, se extraen problemas matemáticos y categorizan, para luego relacionarlos con estándares de educación matemática y así delinear estimar su potencial para el desarrollo del pensamiento matemático.

Transcript of Problemas matemáticos en un curso de programación de videojuegos

Page 1: Problemas matemáticos en un curso de programación de videojuegos

PROBLEMAS MATEMÁTICOS EN UN CURSO DE PROGRAMACIÓN DE VIDEOJUEGOS Rafael Miranda Molina Universidad Católica de Chile, Programa de estudios y desarrollo de talentos PENTA UC [email protected] Tecnología y Ed. Matemática, Educación básica Resumen En el contexto del Programa Educacional para Niños y jóvenes con Talento Académico, Penta UC, un programa de enriquecimiento extracurricular de la Universidad Católica de Chile, se analizan los problemas matemáticos que surgen en un curso de programación de videojuegos. A partir de la revisión de los juegos programados en las primeras 10 versiones del curso, se extraen problemas matemáticos y categorizan, para luego relacionarlos con estándares de educación matemática y así delinear estimar su potencial para el desarrollo del pensamiento matemático.

Page 2: Problemas matemáticos en un curso de programación de videojuegos

1. Antecedentes Este trabajo se desarrolla en el Programa para Niños y Jóvenes con Talentos

Académicos de la Universidad Católica de Chile, PENTA UC, en un curso de programación de videojuegos. El curso “Jugando con la programación”, se ha dictado en 15 versiones desde el año 2007, con estudiantes de 6º básico, como una oportunidad enseñarle programación estudiantes del segundo ciclo básico, sin considerar prerrequisito alguno (informático o matemático) para su participación. De tal forma, la opción de orientar la programación a los videojuegos cumple el rol vincular problemas matemáticos con situaciones usualmente gráficas y relacionarla con temas que son motivantes para los niños; ambos elementos facilitadores de aprendizajes.

Usualmente un videojuego se describe como “un juego electrónico que involucra la interacción con un usuario para generar una respuesta gráfica” (Barrionuevo, 2009), y por tanto es posible reducirlos a un conjunto de animaciones controladas por ciertas condiciones, ya sea, acciones del usuario o reglas predefinidas. Esta descripción permite estimar que los principales temas matemáticos involucrados en este tipo programación, son los que permiten describir movimientos de objetos en pantalla, es decir, métodos asociados a la geometría analítica y transformacional (Begel, 2004; Kodicek, 2005).

La innovación principal que se reporta en este curso, aborda la problemática de enseñarle a programar a niños con talento académico, sin seguir las secuencias usuales de la enseñanza de la programación, como son los contenidos de la programación estructurada, y hacerlo de manera entretenida y desafiante para ellos. Para lograr tales objetivos, en los 7 años de esta experiencia, sus actividades y contenidos se fueron ajustando, especialmente debido a la necesidad de resolver problemas asociados a los cálculos de pendientes y distancias, usos de coordenadas polares e incluso lógica proposicional, entre otros. En general los estudiantes tuvieron muchas oportunidades para elegir los juegos que quisieron programar, y de esta flexibilidad van surgiendo diversas situaciones problemáticas que no estaban consideradas en el diseño inicial del curso. Luego, a partir de las propuestas de los estudiantes, las contenidos y actividades se fueron diversificando.

En este contexto, y a pesar de que los contenidos del curso no eran explícitamente matemáticos, los diversos desafíos que surgen de los juegos que eligen los estudiantes, son problemas o situaciones problemáticas matemáticamente interesantes, especialmente dado a que los recursos matemáticos principales que se usan son coordenadas en el plano cartesiano. En un análisis retrospectivo, este trabajo da cuenta de los principales problemas matemáticos que surgieron en este curso, muchos de los cuales no fueron resueltos por los estudiantes debido a su nivel de dificultad, pero que permiten estimar el potencial que la programación de videojuegos tiene para el desarrollo del pensamiento matemático.

2. Descripción de curso

El curso “Jugando con la programación” se implementa por primera vez en la temporada

de verano 2007 del Penta UC. El lenguaje de programación seleccionado fue KPL, Kids Programming Languaje, creado en 2005 con el propósito introducir la programación de manera motivante a niños y jóvenes (Schwartz, 2005). Este lenguaje tiene ciertas similitudes con Visual Basic, admitiendo además métodos y estructuras, pero principalmente orientado a la enseñanza.

La primera versión del curso fue una experiencia exploratoria, que permitió construir una secuencia didáctica cuya estructura se mantiene hasta la fecha, y que responde a

Page 3: Problemas matemáticos en un curso de programación de videojuegos

describir un videojuego como un conjunto de animaciones que dependen condiciones, como el que el usuario presione ciertas teclas, la interacción con otros elementos o reglas predefinidas. Dado que estas animaciones dependen coordenadas y vectores en el plano, tales ideas matemáticas son abordadas al inicio del curso, pero en el contexto de realizar dibujos o animaciones. De esta forma, las unidades del curso son: (1) Dibujos en el plano cartesiano, (2) Animaciones de imágenes y (3) Control de animaciones y videojuegos.

Al final de la tercera unidad ya es posible contar con un prototipo de videojuego, esto es, un programa en el que una imagen se mueve según las teclas que presione el usuario. En suma, esta secuencia permite conectar ideas intuitivas como las de dibujos en el plano cartesiano con el propósito de diseñar un videojuego.

Objetivo General del curso Resolver problemas asociados a la funcionalidad e interactividad de juegos, diseñando, probando e implementando soluciones algorítmicas en el computador. Objetivos Específicos - Programar dibujos con formas geométricas en función de las coordenadas de

vértices, centros y dimensiones de figuras. - Programar animaciones a partir de la iteración de movimientos rígidos y

controlarlas a partir de condiciones propias de juegos. - Describir las condiciones necesarias para resolver problemas que involucran

algoritmos secuenciales y condicionales. Aprendizajes esperados - Dibujos en el plano cartesiano: Describen las instrucciones que permiten construir

un dibujo de KPL basado en segmentos. - Dibujos con figuras: Describen y ejecutan las instrucciones que permiten construir

un dibujo de KPL basado en segmentos, rectángulos, elipses y círculos. - Dibujos iterativos: Construyen diseños basados en la iteración de transformaciones

isométricas de líneas y figuras. - Animaciones con dibujos: Construyen animaciones basadas en la iteración de

transformaciones isométricas de líneas y figuras. - Animaciones de imágenes: Construyen animaciones basadas la aplicación de

transformaciones isométricas a imágenes. - Animaciones fluidas de imágenes: Construyen animaciones fluidas, basadas en la

iteración de transformaciones isométricas. - Prototipo inicial de juego: Construyen un programa en el que se puede controlar la

posición de una imagen, en cuatro direcciones, con el teclado. - Prototipos de juegos: Construyen programas en los que se pueden controlar

imágenes de diversas formas, según las reglas de los juegos a programar. - Tareas comunes de juegos (proyecto de programación): Construyen videojuegos en

los que se cuenta con reglas bien definidas para jugar y ganar o perder.

3. Naturaleza de los problemas detectados

Page 4: Problemas matemáticos en un curso de programación de videojuegos

Todos los aprendizajes antes descritos, se desarrollan en un entorno de programación, es decir, corresponden a escribir códigos que KPL interpreta y ejecuta. Por ejemplo, es un resultado usual de la primera clase, es escribir códigos como el siguiente ejemplo:

moveTo(100,0) moveTo(100,100) moveTo(0,100) moveTo(0,0)

Cada línea de este código mueve el cursor a la coordenada indicada, dibujándose los segmentos que forman un cuadrado de lado 100 (pixeles).

Este tipo de códigos son los que los estudiantes aprenden a leer, modificar y escribir,

aumentando en complejidad clase a clase, para describir soluciones algorítmicas a problemas esencialmente gráficos.

Una decisión fundamental, fue la de utilizar una metodología personalizada, condición a veces compleja para cursos con más de 20 estudiantes, muy activos y que se motivan con los desafíos. Como consecuencia de esto, el trabajo se estructuró mediante la resolución dialogada de los problemas que iban surgiendo, y en este diálogo que se da una interesante conexión entre el lenguaje natural y el lenguaje matemático. Así, frecuentemente los estudiantes planteaban problemas haciendo referencia a la metáfora del juego, por ejemplo, para simular el rebote de una pelota con los bordes de la pantalla a veces preguntaban “¿cómo le pongo murallas al juego?”. Tal lenguaje en el que los estudiantes hacían sus preguntas, involucra menciones a ideas como “naves”, “misiles”, “disparos”, “choques”, “rebotes”, etc., pero que en realidad se refieren a condiciones matemáticas.

Dado que los problemas subyacentes no cuentan con una formulación, sino más bien ocurren de manera gráfica cuando se nota que algo no funciona como esperaba, surge la necesidad del estudiante de formularlos para pedir ayuda. Siguiendo la caracterización de problemas matemáticos de Borasi (Alfaro, 2008), estos surgen de manera natural, su formulación está en gran medida implícita y su reformulación es parte la etapa inicial de “comprender el problema”. Es por tal razón, que para este análisis se entenderá como problema, lo que Borasi denomina ya sea “situaciones problemáticas” o “situaciones”.

La presencia de problemas matemáticos es consecuencia de la necesidad de describir en un determinado lenguaje de programación, condiciones matemáticas que frecuentemente involucran coordenadas y vectores. En gran medida la relación entre estos entornos de programación y la matemática, es a través de la geometría transformacional para describir movimientos. Tómese el siguiente código como ejemplo:

MoveSpriteBy("nave",x,y) If GetSpriteLeft("nave") > 640 Then x = - x End If If GetSpriteLeft("nave") < 0 Then x= - x End If If GetSpritetop("nave") > 480 Then y= - y End If If GetSpritetop("nave") < 0 Then y= - y End If

Este programa controla una imagen llamada “nave”, según el vector (x,y). Los comandos “getSpriteLeft” y “getSpriteTop”, entregan sus distancias a los bordes izquierdo y superior de la pantalla. Luego, si la imagen está a más de 640 ó menos de 0 pixeles del borde izquierdo, la componente horizontal del vector de traslación cambia de signo. Análogamente si está a más de 480 ó menos de 0 pixeles del borde superior cambia el signo de su componente vertical.

Page 5: Problemas matemáticos en un curso de programación de videojuegos

En algunos casos, como el ejemplo anterior, la formulación no existe y en gran medida

se debe partir por formular el problema. Desde tal perspectiva, el problema del rebote es más bien una situación. Sin embargo una vez formulado el problema, es necesario lograr que la pelota efectivamente rebote, problema que podría catalogarse de situación problemática.

Luego, podría entenderse que algunos problemas son situaciones y otras situaciones problemáticas, lo importante es que pareciera ser que la formulación del problema es el primer paso para enfrentarlo, y difícilmente surgirán en este contexto problemas ya formulados; salvo por aquellos propuestos en guías de ejercicios.

4. Categorización de problemas

De todos los trabajos entregados por los estudiantes de las primeras 10 versiones del

curso, es posible identificar 30 problemas, que se organizan en seis categorías.

• Dibujos en el plano cartesiano: Este primer grupo de problemas consiste en aquellos que involucran dibujos en el plano cartesiano a partir de las coordenadas de vértices o centros, y dimensiones de las figuras a utilizar como círculos, elipses o rectángulos. Además entran en esta categoría, diseños que involucran iteraciones.

• Animación de imágenes: Consideran animaciones de imágenes en el plano, lo que involucra controlar la posición y su cambio dentro de ciertos intervalos de tiempo. Los aspectos geométricos de los dibujos que involucran iteraciones y las animaciones suelen ser equivalentes, con la diferencia que una animación muestra un objeto en cada instante y los dibujos muestran todos estos objetos al mismo tiempo.

• Rebotes: Un tipo particular de animación, es la que se puede describir en la metáfora de distintos juegos como “rebote”, en el que busca simular el movimiento de un objeto real y su interacción con otro, lo que involucra ideas como las de ángulos de incidencia y reflexión y vectores de traslación.

• Controlar imágenes con el teclado: La base de la mayoría de los juegos desarrollados, está controlar con el teclado el movimiento de uno o varios objetos. Los distintos movimientos posibles involucran distintos tipos de problemas, como el mover una imagen en 4 u 8 direcciones posibles (coordenadas cartesianas), o controlando independientemente el giro y avance (coordenadas polares).

• Disparos: Los “disparos” son una característica usual de muchos juegos, cuyo comportamiento tiene relación directa con cómo se mueven las “naves” desde donde se disparan. Simular un disparo requiere de varias consideraciones, como de donde debe partir, en qué dirección debe avanzar, si se intersecta con otra imagen y qué acciones debe originar en tal evento.

• Animaciones con condiciones: En esta última categoría se agrupan problemas que tienen el que involucran definir condiciones en las que, ya sea, se realiza una cierta animación, o bien, se impide. Estos problemas están asociados a rutas que un determinado objeto debe seguir, e incluso movimientos más sofisticados como el de un proyectil o el salto de un personaje.

Page 6: Problemas matemáticos en un curso de programación de videojuegos

5. Conclusiones Si bien la literatura establece que los principales contenidos involucrados en la

programación de videojuegos son de Geometría y Álgebra, (Kodicek, 2005), si se atiende a estándares de educación matemática, como los mapas de progreso de aprendizaje (MINEDUC, 2010), las competencias de la prueba PISA (Rico, 2006) o los del National Council of Teachers of Mathematics (NCTM, 2000), en general se observa una clara relación con la geometría analítica y transformacional, presente en el currículum chileno (MINEDUC, 2010), una relación menor con el álgebra en términos del contenido típicamente descrito como lenguaje algebraico (o traducción de) y secuencias numéricas, y una relación ocasional con la lógica proposicional.

De manera similar, se da la relación con los estándares de contenido del NCTM, aunque en estos la presencia de las coordenadas cartesianas es más explícita, al indicar “especificar posiciones y describir relaciones espaciales usando geometría de coordenadas y otros sistemas de representación” (NCTM, 2000).

En cuanto a competencias, para efectos de la prueba PISA (Rico, 2006) y estándares de proceso del NCTM, la relación que se da con los problemas identificados es transversal, destacando la competencia de comunicar, modelar, usar lenguaje formal y plantear y resolver problemas. En muchas ocasiones estas competencias se requieren prácticamente en esta misma secuencia, para comunicar un problema, formularlo y elaborar un plan; y de usar lenguaje formal para ejecutar el plan (Rico, 2006).

Es claro, entonces, que existen una relación sistemática en cuanto a los estándares de proceso, más que a los de contenido, y por tal razón es posible estimar que este tipo de experiencias educativas revisten mayor potencial en la medida que se orientan a instancias de aprendizaje extracurricular, que supeditadas al servicio del currículum escolar.

6. Bibliografía

Alfaro, C., & Barrantes, H. (2008). ¿Qué es un problema matemático Cuadernos de investigación y formación en educación matemática. Barrionuevo, A. (2009). “Lenguajes de programación para niños”. Revista digital enfoques educativos No 51, 2009: 29-39. Borasi, R. (1986). On the nature of problems. Educational studies in Mathematics. Kodicek (2005). Mathematics and Physics for Programmers. Charles River MINEDUC. (2010). “Mapas de progreso del aprendizaje - Sector matemática”. National Council of Teachers of Mathematics NCTM, (2000). Principles and Standards for School Mathematics. Reston, Va. Rico, L. (2006). Marco teórico de evaluación en PISA sobre matemáticas y resolución de problemas. Revista de Educación, 275-294. Ministerio de Educación y Ciencia. España. Schwartz, J. (2005). Empezando a programar con KPL, 1–26. Retrieved from http://www.kidsprogramminglanguage.com