Está en la página 1de 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
mirandamolina@gmail.com
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.
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
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


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) Cada línea de este código mueve el cursor


moveTo(100,100) a la coordenada indicada, dibujándose los
moveTo(0,100) segmentos que forman un cuadrado de lado
moveTo(0,0) 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) Este programa controla una imagen


If GetSpriteLeft("nave") > 640 Then llamada “nave”, según el vector (x,y).
x=-x Los comandos “getSpriteLeft” y
End If “getSpriteTop”, entregan sus distancias a
If GetSpriteLeft("nave") < 0 Then los bordes izquierdo y superior de la
x= - x pantalla.
End If Luego, si la imagen está a más de 640 ó
If GetSpritetop("nave") > 480 Then menos de 0 pixeles del borde izquierdo, la
y= - y componente horizontal del vector de
End If traslación cambia de signo.
If GetSpritetop("nave") < 0 Then Análogamente si está a más de 480 ó
y= - y menos de 0 pixeles del borde superior
End If cambia el signo de su componente vertical.
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.
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

También podría gustarte