Вы находитесь на странице: 1из 8

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/228841113

ProBot: Juego para el aprendizaje de lgica de


programacin

Article

CITATIONS READS

2 330

2 authors, including:

Julin Moreno Cadavid


National University of Colombia
64 PUBLICATIONS 167 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Bayesian Network Model applied to a vocational guidance game's View project

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

Figura 1. Interfaz del juego

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

retomarlo desde el punto donde lo haba dejado y no tener


Personajes que empezar siempre desde el inicio.
Como puede observarse en las figuras 1 y 3 todos los Esta caracterstica esconde otra funcionalidad adicional y es
personajes a excepcin del protagonista tienen figuras la de identificar el puntaje acumulado que el jugador tiene
humanas caricaturizadas. Cada nivel cuenta con un hasta el momento, estos se hace de una manera encriptada
oponente diferente, los cuales se muestran en la figura 4, y como se muestra en la figura 5 para evitar manipulaciones
que poseen su propio un nivel inicial de resistencia y fuerza en dichos valores.
en los golpes.

Figura 6. Oponentes

Cada uno de estos oponentes tiene sus propias


caractersticas de sonidos, gestos y mensajes, las dos
primeras tienen el fin de entretener al jugador, mientras que
la ltima busca alentarlo avivando su deseo de ganarle.
Como se muestra en las figuras 1 y 3, el pblico tambin va
cambiando incorporndole los oponentes vencidos as como Figura 7. Presentacin de clave de nivel
nuevos espectadores.
Para utilizar esta clave se emplea la ltima opcin de la
Puntuacin
pantalla inicial del juego, como se muestra en la figura 6.
Como tambin es comn en muchos videojuegos se
incorpor el elemento de claves de nivel con el objetivo
de que cuando un estudiante supere un nivel pueda guardar
esta clave para ingresar al juego en otro momento y
usan sus conocimientos informticos y su tiempo para
detectar errores en el software y as poder informar de stos
para que los desarrolladores los corrijan). En total fueron 58
estudiantes de los semestres cuarto al dcimo quienes
probaron el juego y a quienes luego de interactuar con l se
les solicit llenar la encuesta que se presenta a continuacin.

Nombre Nivel Puntuacin


Yosel Del Valle 6 770
Figura 8. Seccin de la pantalla inicial Daniel Correa Botero 6 635
Diego Luis Garavito 6 575
Para este juego la puntuacin de un nivel se defini como la Sebastian Gomez 6 525
suma entre el nivel de resistencia y energa restantes luego Johnny Montoya Franco 6 435
de ganarle al oponente, y por tanto la puntuacin acumulada Juan Pablo Palacio Isaza 5 335
en el nivel n corresponde a la sumatoria de la puntuacin
Tatiana Chamat Cujia 5 305
obtenida en los niveles n, n-1, n-2, , hasta el 1.
Carlos Andres 4 240
Como ya el lector podr intuir, esta puntuacin da cuenta de
la eficiencia de los algoritmos definidos por el jugador pues Willington Vega 4 225
al igual que en una situacin de clase o real, para un Edward Munoz 3 220
determinado problema pueden haber muchas maneras de Andres Felipe Sossa 3 215
resolverlo, pero no todas ser igual de eficientes. Con esta Sebastian Munera Alvarez 4 185
caracterstica lo que se pretendi fue promover por medio Juan Camilo Osorio 4 120
de la sana competencia buenas prcticas en el mbito de la Carolina Rincon Lopez 3 120
programacin, pues en su afn de obtener un puntaje alto se Juan Jose Perez 3 105
fuerza al estudiante a pensar en el rendimiento de las Bryan Zapata Ceballos 3 100
soluciones que proponen en vez de simplemente cumplir Henry Alberto Pineros 2 90
con el problema que se le pone. Cristian David Mazo 2 70
Este fenmeno fue validado durante las pruebas con David Saldana 2 60
estudiantes reales que se describen en la siguiente seccin,
Katerine Villamizar Suaza 2 45
donde se observ que muchos estudiantes al notar que su
Elizabeth Toro 1 45
solucin aunque satisfaca el problema (permita ganarle al
oponente), poda ser mejor, preferan volver a jugar el nivel Nathalia Meneses Piedrahita 2 35
en vez de avanzar, permitindoles mejorar sus habilidades. Sonia Maria Berrio Valencia 1 35
Para que los estudiantes tuvieran conocimiento de dichas Andres Felipe Gonzalez 2 30
puntuaciones se implement una aplicacin Web donde se Andres De Leon 2 25
podan ingresar los nombres y las claves de nivel con el fin Tabla 1. Listado de puntuaciones
de validarlas y mostrar un ranking de manera dinmica.
La tabla 1 muestra el tipo de informacin que se les Pregunta Calificacin
presentaba, donde es claro que ellos mismos pueden medir 1. De manera general, Cmo calificara el 1-10
la eficiencia de sus soluciones respecto a la de los dems juego?
compaeros. 2. Desde el punto de vista acadmico, Qu 1-10
calificacin de dara al juego como
instrumento para fortalecer los conceptos de
secuenciacin e iteracin definida?
PRUEBAS 3. Desde el punto de vista de grficos, 1-10
Dado que al momento de la presentacin de este artculo el animacin, sonidos, efectos, etc., Cmo
desarrollo del juego descrito apenas est terminando, se calificara el juego?
decidi hacer una prueba con estudiantes de la Universidad 4. Sobre a la interfaz del juego, Qu 1-10
Nacional de Colombia Sede Medelln, no del curso de calificacin le dara respecto a la facilidad de
Fundamentos de programacin impartido en los primeros su manejo, su claridad, etc.?
semestres que sera el pblico objetivo, si no con estudiantes 5. Le pareci adecuado el grado de dificultad Si/No
de semestres ms avanzados que ya lo cursaron. La idea de de los niveles?
esta prueba fue usar esta poblacin a manera de Beta 6. Si tiene algn comentario sobre el modo Libre
testers (en el contexto de la informtica se consideran de juego, la interfaz, los niveles, los
usuarios de software pendiente de terminar su fase de personajes, el diseo o cualquier otro aspecto
desarrollo, o alcanzar un alto nivel de funcionamiento, pero del juego, por favor escrbalo a continuacin.
que an no son completamente estables. Los beta testers Tabla 2. Encuesta
CONCLUSIONES
La figura 9 muestra una fotografa de algunos de los El uso de videojuegos educativos ha ido tomando fuerza en
estudiantes mientras probaban el juego, mientras que la las ltimas dcadas e incluso hay numerosos trabajos que
tabla 2 presenta el resumen de la encuesta. validan su utilizacin en aulas de clase. En este contexto, el
trabajo presentado en este artculo es un aporte importante
en cuanto apunta a un dominio de conocimiento especfico
como es la lgica de programacin en el cual no existen
muchos desarrollos y menos an con las caractersticas
didcticas y emotivas con las que cuenta ProBot.
En particular, el juego explora los conceptos de
secuenciacin, iteracin definida y anidacin, hacindolo de
una manera amena y desafiante.
La prueba realizada con estudiantes que ya haban tomado el
curso de fundamentos de programacin en la Universidad
Nacional de Colombia dio cuenta del inters que despierta
el juego no slo por su atractivo visual y auditivo si no
tambin por su filosofa de niveles con incremento de
dificultad. Igualmente valid su utilidad para afianzar
conocimientos en el dominio de conocimiento para el que
fue creado y para incentivar el anlisis de la eficiencia de las
soluciones propuestas. Un descubrimiento adicional con
esta prueba fue el juego incentiva el desarrollo de otras
habilidades cognitivas generales aparte de la lgica y el
razonamiento abstracto como es la memoria. Esto sali a la
luz al observar que muchos estudiantes preferan memorizar
los movimientos de los oponentes en vez de escribirlos para
posteriormente traducirlos en las instrucciones requeridas
correspondientes.
Como trabajo futuro inmediato es necesario volver a probar
el juego, pero esta vez con estudiantes que estn en un curso
de programacin, esto con el fin de validar de una manera
Figura 9. Estudiantes durante la prueba realista el impacto que su proceso de aprendizaje tendra. En
particular, seria de inters analizar como ProBot puede
ayudar a estudiantes de rendimiento bajo para afianzar los
conceptos explorados.
Pregunta Promedio Desviacin
estndar
1 8.12 1.41 REFERENCIAS
2 8.56 1.57
3 8.67 1.33 [1] Antonakos, J; Mansfield, K. (1998) Programacion
4 7.67 2.25 Estructurada En C. Pearson Educacin.
Tabla 3. Resultados de la encuesta
[2] Baker, A., Navarro, E., & van der Hoek, A. (2005). An
En la pregunta 5 la totalidad de los encuestados experimental card game for teaching software
respondieron afirmativamente, mientras que el comentario engineering processes. The Journal of Systems and
ms comn en la pregunta 6 tuvo que ver con la finalizacin Software, 75, 316.
de cada nivel puesto que el juego no muestra el puntaje [3] Becker, K. (2001). Teaching with Games: The
acumulado si no solamente la clave para almacenarlo junto Minesweeper and Asteroids Experience. Journal of
con el nivel alcanzado. Aunque la gran mayora de los Computing in Small Colleges, 17(2), 2232
estudiantes pudieron jugar intuitivamente sin mayores [4] Bergman, P. (2003). Digital Games and Learning: A
explicaciones previas, el segundo comentario ms comn se Research Overview. Unpublished manuscript.
refiri a la falta de instrucciones al inicio del juego (esta
funcionalidad no estaba lista al momento de la prueba). [5] Cavallari, J., Hedberg, J., & Harper, B. (1992).
Ambos aspectos fueron considerados en una nueva versin Adventure games in education: A review. Australian
del juego. Journal of Educational. Technology, 8(2), 172184.
[6] De Freitas, S. (2005). Learning through Play. Using
educational games and simulations to support post-16
learners. London: London Learning and Skills [14] Lawrence, R. (2006). Teaching data structures using
Research Centre. competitive games. IEEE Transactions on Education,
[7] Dempsey, J. V., Rasmussen, K., & Lucassen, B. 49(1), 459466.
(1996). The Instructional Gaming Literature: [15] Lewandowski, F., Soares, A. (2008). Desenvolvimento
Implications and 99 Sources. University of South de Jogos Educacionais Apoiados por um Agente Tutor
Alabama. Pedaggico. En J. Snchez (Ed.): Nuevas Ideas en
[8] Egenfeldt-Nielsen, S. (2006). Overview of research on Informtica Educativa, Volumen 4, pp. 7-14, Santiago
the educational use of video games. Digital de Chile.
Kompetanse, Volume: 1 Issue: 3 Pages: 184-213. [16] McGrenere, J. L. (1996). Design of Educational
[9] Gander, S. (2002). Does Learning Occur through Electronic Multi-player Games: A literature Review.
gaming. Electronic Journal of Instructional Science Vancouver: Department of Computer Science.
and Technology, 3(2). [17] Mitchell, A., & Savill-Smith, C. (2004). The use of
[10] Gorriz, C. M. and Medina, C. Engaging Girls with computer and video games for learning: A review of
Computers through Software Games", the literature. London: Ultralab: Learning and Skills
Communications of the ACM, Vol.43 #1 Jan. 2000 Development Agency.
p42. [18] Moser, R. (1997) A Fantasy Adventure Game as a
[11] James, J., Beaton, B., Csete, J., Vogel, D. (2003). Learning Environment: Why Learning to Program is
Mobile educational games. In: Lassner, D., McNaught, so Difficult and What can be Done about it.
C. (eds.) Proceedings of ED-MEDIA 2003, pp. 801 Proceedings of the Conference on Integrating
802. Technology in Computer Science Education, June
15, Uppsala, Sweden p114116.
[12] Kirriemuir, J., & McFarlane, A. (2002). The use of
computer games in the classroom. Coventry: Becta. [19] Zapata, C. M. (2009). Teaching software development
by means of a classroom game: The software
[13] Klopfer, E., & Yoon, S. (2005). Developing Games development game. Developments in Business
and Simulations for Today and Tomorrows Tech Simulation and Experiential Learning, Volume 36.
Savvy Youth TechTrends. Linking Research &
Practice to Improve Learning, 49(3), pp. 33-41.

View publication stats

Вам также может понравиться