Software, variables, codificación, palabras que para muchos representan una verdadera tortura. En la Universidad de Antioquia hay una gran cantidad de carreras, además de las ingenierías, que incluyen dentro de sus planes de estudio uno o varios cursos de algoritmos y programación. Hablar con la máquina no es una tarea fácil, y mucho menos cuando las herramientas que se usan para esto son complejas, cargadas de texto, con menús llenos de opciones y largos mensajes de error. Parece que todo el conocimiento de la humanidad se centrara en la punta de un alfiler y esta se clavara en nuestro cerebro, provocándonos gran dolor y estrés.
Si bien la tecnología ha avanzado significativamente, pasando de codificar en placas perforadas a hacerlo en un computador personal, en las universidades la enseñanza no ha tenido la misma evolución. Los docentes enseñan programación de la misma forma en que ellos aprendieron, lo que cambia es el lenguaje o el paradigma; sin embargo, todos debemos ver los mismos temas (condicionales, ciclos, arreglos, matrices, etc.), e incluso, muchas veces, los mismos ejercicios.
Existen personas, organizaciones, y empresas que se han cuestionado por el uso de las nuevas tecnologías en el marco de la enseñanza, y es aquí donde nace la alternativa del uso de los videojuegos como herramienta de acercamiento a la programación. No obstante, esta estrategia no es del todo nueva, pues en el 2011, Valve Corporation empezaba a explorar la enseñanza de la física, las matemáticas, y la química usando su motor Source, a través del proyecto “Learn with Portals”.
A continuación, te presentamos dos ejemplos de videojuegos hechos para aprender sobre programación.
- Rabbids coding!
Nota: para empezar, es necesario aclarar que este videojuego no pretende enseñarnos un lenguaje concreto de programación (Java, C++, Python), sino acercarnos a la lógica que está detrás de estos y que es común en todos ellos.
Creado por la empresa Ubisoft, en octubre del 2019, se trata de un personaje, en la mayoría de los casos un conejo, que debe resolver un problema de lógica para avanzar al siguiente nivel. En principio, los problemas son tan sencillos como hacer que el conejo avance o dé la vuelta. Sin embargo, poco a poco se van complejizando hasta llegar al punto donde es necesario sentarse a pensar en la solución.
Esta dinámica de avanzar y agregar complejidad, nos proporciona la experiencia de aprender la lógica de la codificación en una dimensión diferente. También nos enseña estructuras complejas de entender, como los ciclos, y hace especial énfasis en la utilización de estos para mejorar nuestros algoritmos.
Cuando iniciamos un nivel, en la parte izquierda de la pantalla tenemos la zona donde iremos desarrollando nuestro algoritmo. A diferencia de las interfaces tradicionales de texto, en este aplicativo las instrucciones se desarrollan uniendo cajas de forma secuencial. Cada caja representa una instrucción, y el objetivo es crear un conjunto de estas que den solución al problema. Las directrices son variadas, pues podemos tener, por ejemplo, “avanzar hacia adelante”, “recoger objetos”, “voltear a la izquierda”, etc.
La puntuación está basada en estrellas, donde tres representan una solución óptima; y una significa que el problema tuvo solución, pero esta pudo ser mejor. Lo anterior se traduce en un problema común en la programación y es que, si bien no existe algoritmo perfecto, hay soluciones más eficaces que otras, bien sea porque su tiempo de ejecución es más corto o porque tiene menos pasos.
2. Code combat
Este videojuego es un proyecto opensource, con un equipo base de 31 personas y más de 450 contribuyentes, y busca enseñarnos el lenguaje JavaScript y Python, dos de los más usados e importantes en la actualidad. A diferencia del anterior, este funciona a través del navegador. Hasta el momento de esta publicación, cuenta con nueve mundos, los cuales tienen entre 12 y 109 niveles cada uno y que abren la posibilidad de aprender desde sintaxis y variables, hasta técnicas avanzadas de interacción con la máquina.
Cuenta con un personaje, Hero, que a lo largo del juego —y de forma gradual— nos va introduciendo conceptos importantes como son cadenas de texto, métodos, parámetros, ciclos, entre otros.
Al iniciar un nivel, nos aparece una ventana que indica los temas que vamos a aprender en este.
La metodología es similar a la de Rabbids coding!, pues en la parte derecha de la pantalla tenemos un editor de texto en el que escribiremos nuestro algoritmo. Una vez lo completemos, presionamos “Run” para ejecutarlo y visualizar, en la parte izquierda de la pantalla, a nuestro personaje realizar lo que le indicamos.
Por último, existe una sección en cada escenario donde podemos ver la teoría tras los algoritmos que estamos escribiendo. Lo cual es importante, dado que amplía y da fundamentos teóricos a las acciones que estamos tomando.
A manera de conclusión, es importante reconocer que vivimos en una era digital y, por tanto, debemos perder el miedo a explorar nuevos horizontes. Asimismo, en el ámbito educativo, más áreas del saber están integrando la programación en sus pensum, ya que herramientas como estas podrían ayudar a los estudiantes a aprender sobre algoritmos con mayor facilidad.
Sigifredo Escobar
Desarrollador Front-end de Ude@
Interesantes juegos e interesante método de aprendizaje, esto es muy útil y a la vez divertido y creo que nos quita complejidades para entender un poco mas del tema
Saludos,
Así es, este tema es muy interesante porque es una manera diferente de aprender sobre programación. Nos alegra que este contenido le haya resultado útil, esperamos seguir abordando estos temas en próximas publicaciones.
¡Muchas gracias por leernos!