Академический Документы
Профессиональный Документы
Культура Документы
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/228841113
Article
CITATIONS READS
2 330
2 authors, including:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Julin Moreno Cadavid on 03 February 2015.
The user has requested enhancement of the downloaded file. All in-text references underlined in blue are added to the original document
and are linked to publications on ResearchGate, letting you access and read them immediately.
ProBot: Juego para el aprendizaje de lgica de
programacin
Julian Moreno Edgar Alberto Montao
Universidad Nacional de Colombia Universidad Nacional de Colombia
Colombia Colombia
jmoreno1@unal.edu.co eamontan@unal.edu.co
argumenta que utilizar videojuegos para el aprendizaje abre
ABSTRACT enormes oportunidades para llevar experiencias de la vida
In this paper ProBot is described, an educational game in cotidiana a la educacin de los alumnos, aumentando la
the field of programming logic in which students may motivacin y el compromiso con el aprendizaje.
reinforce and improve their abilities with regard to the En otros trabajos a lo largo de las dos ltimas dcadas [4-8,
concepts of sequencing, defined iteration and nesting. The 12, 16, 17] se presenta una visin general sobre el uso
game was implemented in Flash, it has an intuitive interface educacional de los videojuegos, describiendo su utilidad en
and it is aesthetically appealing. It owns several difficulty diversas reas del conocimiento
levels that are challenging for students and encourage them En el caso particular de la enseanza de las ciencias de la
to analyze their solutions looking for the ones that are more computacin, tal como lo menciona [3], el uso de software
efficient. educativo se encuentra rezagado respecto a otras disciplinas,
aunque el panorama ha ido cambiando en los ltimos aos.
RESUMEN Algunos ejemplos del uso de juegos para diferentes
En este artculo se describe ProBot, un juego educativo en el dominios de conocimiento dentro de las ciencias de la
campo de la lgica de programacin de computadores en el computacin se presentan en los trabajos [2, 9, 10, 14, 18,
que lo estudiantes pueden afianzar y mejorar sus habilidades 19].
respecto a los conceptos de secuenciacin, iteracin definida El trabajo presentado en este documento se enfoca en el
y anidacin. El juego fue implementado en flash, cuenta con campo especfico de la lgica de programacin sin hacer
una interfaz intuitiva y es estticamente llamativo. Posee nfasis en ningn lenguaje especfico si no abordando el
varios niveles de dificultad que son desafiantes para los problema general del diseo de algoritmos considerando la
estudiantes y que los incentiva a analizar sus soluciones en programacin estructurada [1]. Al menos en Colombia su
bsqueda de aquellas que sean ms eficientes. enseanza en los niveles de bsica secundaria no es
obligatoria aunque si lo es para la mayora de programas de
KEYWORDS pregrado en ingeniera y obviamente en los programas
Juego educativo, Lgica de programacin, Flash, tcnicos en el rea de informtica.
Compilador. Volviendo al tema, como pueden constatar los docentes
familiarizados con cursos relativos a este tema, la dificultad
INTRODUCCIN en su enseanza radica en que programar es parte ciencia y
parte arte, en el sentido que al estudiante se le pueden
El juego como mecanismo de aprendizaje y mejoramiento
ensear las instrucciones bsicas pero depende de l su
de habilidades es innato no slo para los humanos si no para
utilizacin de una u otra manera para la solucin de un
muchas otras especies.
problema especfico. Basta por ejemplo proponer un
En el contexto acadmico, tal como se menciona en [15] los
ejercicio simple en un aula de clase como: disear un
juegos pueden ser una herramienta auxiliar del alumno en la
algoritmo para leer tres valores numricos y determinar cul
construccin de su conocimiento sistematizado. Esta
es el mayor de los 3 para verificar que en un grupo de
sistematizacin, por medio del computador, posibilita un
digamos 100 alumnos pueden encontrarse al menos 10 tipos
mejor acompaamiento del alumno verificando sus errores
de soluciones diferentes. Tales soluciones se diferenciaran
ms frecuentes y presentndole recursos multimedia de
no slo en cuestiones estticas (el uso de ms o menos
manera diferente a como se hace en el modo convencional
instrucciones), si no en otras ms importantes desde el punto
usado en el aula de clase.
de vista de la computacin como la eficiencia respecto al
Una amplia variedad de estudios sealan la importancia de
uso de recursos (procesamiento y memoria).
la utilizacin de juegos, y particularmente videojuegos, para
Teniendo presente esta caracterstica y considerando que en
alcanzar objetivos de aprendizaje como el desarrollo verbal,
muchas ocasiones la dificultad en el aprendizaje de
matemtico, lgico, visual, motor-sensorial, as como
programacin radica en que algunos conceptos pueden ser
habilidades de resolucin de problemas [13]. Otros estudios
muy abstractos para muchos estudiantes, se propone en este
muestran que los videojuegos pueden aumentar dilogos
trabajo un juego educativo llamado ProBot con el que se
significativos entre los estudiantes y que tienen efectos
pretende que el estudiante afiance sus conocimientos
positivos en las habilidades sociales [11]. Este mismo autor
respecto a la secuenciacin y la iteracin definida (dos de
Moreno, J., Montao, E. (2009). ProBot: Juego para el aprendizaje de lgica de los pilares de la programacin de computadores). Este se
programacin. En J. Snchez (Ed.): Nuevas Ideas en Informtica Educativa,
Volumen 5, pp. 1-7, Santiago de Chile.
fundamenta en un juego de Boxeo en el que el estudiante presenciales como virtuales. La interfaz es completamente
debe competir contra una serie de oponentes que emplean visual y se divide bsicamente en 4 partes tal como se
cierta serie de movimientos. Para esto el estudiante debe muestra en la figura 1.
programar al ProBot definindole a manera de algoritmo En la parte superior izquierda se muestra el nivel en el que
cuales movimientos debe efectuar para contrarrestar los del se est jugando, mientras que en la parte superior izquierda
oponente y ganarle. se muestran las opciones para habilitar y deshabilitar los
sonidos del juego y de la msica de fondo. En la parte
DESCRIPCIN DEL JUEGO superior central se muestran las instrucciones que se
encuentran disponibles para el nivel correspondiente y que
Interfaz constituyen el conjunto de estructuras (hablando en el
El juego fue desarrollado completamente en flash con el fin contexto de los lenguajes de programacin estructurados)
que los estudiantes puedan acceder a l desde un navegador vlidas para los algoritmos que el estudiante puede definir.
Web luego de haberlo cargado a un servidor (local o de
Internet), por lo que puede ser utilizado tanto en cursos
En la parte izquierda se muestra el espacio de trabajo donde el tanto del oponente como del ProBot durante la pelea. Para el
estudiante puede definir su algoritmo de manera secuencial. primero se muestra el nivel de resistencia (como es comn en
Este espacio puede ser la analoga de el archivo fuente de la mayora de video juegos de lucha), mientras que para el
algn lenguaje de programacin, como por ejemplo el que se segundo adems de este nivel se muestra el de energa. Este
muestra en la figura 2, con la diferencia que el nmero de ltimo fue agregado al juego con el fin que los estudiantes
lneas de cdigo que pueden escribirse est limitado a una tengan en cuenta que algunos problemas pueden tener
cantidad determinada de casillas, donde cada casilla puede restricciones de recursos.
contener una nica instruccin. Finalmente en la parte central de la interfaz es donde se lleva
En la parte inferior se encuentran dos opciones: a la derecha a cabo el desarrollo del juego como tal y, aunque es
un botn con forma de guantes con el que se puede observar relativamente simple, fue diseado pensando en que fuera
el entrenamiento del oponente, es decir, los movimientos estticamente agradable y llamativo.
que este har durante la pelea; mientras que a la izquierda un
botn con forma de campana con el que puede iniciarse la
interaccin entre el ProBot (acorde con las instrucciones que
se le hayan programado) y el oponente. En la parte inferior
tambin se encuentran las variables que denotan el estado
Las funciones del parser para el ProBot se enfocan
bsicamente en dos aspectos. El primero es la traduccin de
las instrucciones, siempre y cuando estn bien escritas, en
cdigo que el ProBot pueda entender. Precisamente respecto a
ese concepto de bien escrito, el segundo aspecto es la
identificacin de los errores en el cdigo en cuanto al uso de
la iteracin definida. Estos errores pueden referirse a que el
orden de las instrucciones est equivocado (error tipo 1) o a
que no coincidan el nmero de inicio de las instrucciones de
iteracin con el nmero de cierres (error tipo 2). La figura 3
muestra dos ejemplos de estos errores, mientras que la figura
4 muestra la analoga del segundo error con el que un
estudiante podra cometer en un cdigo real en C++.
Figura 2. Ejemplo de archivo fuente en C++ empleando el IDE
Dev-C++
Compilador
En el contexto de la informtica, un compilador puede
definirse como un programa que permite traducir un cdigo
fuente definido en un lenguaje de alto nivel, a otro lenguaje
de nivel inferior (tpicamente lenguaje mquina).
Precisamente, esta es la funcin principal del motor de
ejecucin del ProBot que se encarga de traducir las
instrucciones que el jugador define en una secuencia de
acciones llevadas a cabo por el personaje.
Un compilador generalmente se compone de dos elementos
fundamentales: un analizador lexicogrfico (lexer) y un
analizador sintctico (parser). El primero se encarga de
validar la sintaxis de las instrucciones y el segundo de Figura 4. Error en C++
identificar la semntica del cdigo. En el caso del ProBot no
se hace necesario un lexer pues las instrucciones no se Niveles
escriben libremente si no que se escogen del men que
aparece en la parte superior de la interfaz. El juego cuenta en total con siete niveles de dificultad los
cuales van aumentando gradualmente a medida que los
(error tipo 1) (error tipo 2) jugadores van progresando. A parte de que esta mecnica es
obvia en los videojuegos de diferente ndole para mantener el
inters de los jugadores, tambin tiene una finalidad
pedaggica en el sentido que presenta un orden natural para
abordar los conceptos que buscan impartirse en este juego en
particular. Es decir, los primeros nivele tienen que ver con el
concepto de secuenciacin, los siguientes adicionan el
concepto de iteracin definida y los ltimos el de anidacin
de instrucciones.
Otra caracterstica fundamental de cada nivel, tal como se
muestra en la figura 5, es la incorporacin de nuevas
instrucciones disponibles as como de casillas en el rea de
trabajo que le permiten al estudiante definir algoritmos ms
complejos a medida que avanza. Esta caracterstica asemeja
lo que sucede en los juegos tipo RPG (sigla en ingls para
Role-Playing Game, que significa literalmente: juego de
interpretacin de papeles y que es un tipo de juego en el que,
uno o ms jugadores desempean un determinado rol y donde
generalmente sus habilidades se incrementan a medida que el
Figura 3. Errores semnticos que pueden presentarse en ProBot juego avanza).
Figura 5. Interfaz del juego
Figura 6. Oponentes