Experiencia RAIS en el aprendizaje de Programación

La estrategia RAIS

RAIS (acrónimo de Reproducción del Ambiente de Innovación en el Salón de clases) es una estrategia que se enfoca en la utilización integral de los conocimientos para construir, crear, hacer, producir e innovar en el salón de clases. Esta estrategia se ha implementado en la Universidad de Los Andes desde el año 2009, con la intención de formar estudiantes con un pensamiento emprendedor.

En esta entrada está inspirada en el ensayo “Una experiencia RAIS en el aprendizaje de Programación” de Mujica et al, escrito para el 1er congreso del Estado Mérida en el cual se habla sobre la experiencia RAIS en Programación 3 en el semestre U-2016. Aquí se añade también la experiencia en el semestre U-2017 en Programación 3 y en Diseño y Análisis de Algoritmos.

Programación 3

Programación 3 es un curso perteneciente al cuarto semestre de la carrera Ingeniería de Sistemas de la Universidad de Los Andes (EISULA por sus siglas) como parte del ciclo básico. Este curso se consagra en el estudio de las primeras técnicas de diseño y análisis de algoritmos y de estructuras de datos, cuyo problema fundamental es el conjunto. En este problema fundamental se estudian las diferentes maneras de instrumentarlo y de resolver sus operaciones básicas, tales como la inserción de un elemento; verificación de la existencia de un elemento, lo cual conlleva a la búsqueda; eliminación de un elemento; y unión, intersección y particiones de conjuntos.

Entre las aplicaciones de los conocimientos con las que se trabaja en esta asignatura se encuentran la instrumentación de compiladores e intérpretes de programas, desarrollo de agentes inteligentes, desarrollo de buscadores, instrumentación de sistemas de gestión de bases de datos, desarrollo de videojuegos, simulación a eventos discretos, entre otras.

El curso Diseño y Análisis de Algoritmos

Diseño y Análisis de Algoritmos es un curso perteneciente al sexto semestre de la EISULA, como parte del ciclo formativo de la carrera. En éste se consolida el estudio de las estructuras de datos y algoritmos necesarios para soportar los problemas más complejos de las ciencias de la Computación y la Investigación de Operaciones. En este curso se estudian técnicas avanzadas de análisis y diseño de algoritmos, teoría de grafos y sus aplicaciones para problemas de optimización y combinatoria y una introducción a la Geometría Computacional.

De los campos de aplicación a los que hace referencia los conocimientos del área, vale mencionar los siguientes: Desarrollo de agentes inteligentes; algoritmos de enrutamiento en Redes de Computadores; modelado de entornos para la robótica móvil; análisis y optimización de problemas que pueden ser modelados por redes de flujo, tales como las redes eléctricas, redes hidráulicas, redes de producción de alimento y redes de transporte; búsqueda de rutas óptimas para problemas como vialidad, gestión de proyectos, mapeado y búsqueda de rutas en videojuegos; Computación Gráfica, entre otras.

Otros cursos de la EISULA

En la EISULA existen cursos, tanto obligatorios como electivos, que se consagran en la enseñanza de casos particulares en los cuales se aplican los conceptos aprendidos en los previamente mencionados para la resolución de los problemas en los cuales se especializan. Entre estos cursos cabe mencionar: Bases de Datos, Compiladores, Inteligencia Artificial, Computación Gráfica, Investigación de Operaciones, Modelado y Simulación de Sistemas, Robótica, entre otros. Estos cursos son impartidos en el ciclo profesional de la carrera entre el séptimo y el noveno semestre.

A pesar de que estas asignaturas están en un nivel más avanzado en la carrera, no ha sido impedimento para que los estudiantes de Programación 3 y Diseño y Análisis de Algoritmos estén en capacidad de enfrentar problemas complejos de aplicaciones y los resuelvan de manera exitosa.

Estrategia RAIS semestre U-2016

Para el semestre U-2016 en el curso Programación 3, fue aplicada la estrategia RAIS, basada en la formación de equipos de trabajo y elección de un producto. El curso estaba integrado por 42 estudiantes, para lo cual cada equipo debía estar conformado por un máximo de 5 miembros. Cabe señalar que la formación de los equipos de trabajo quedó al libre albedrío de los estudiantes, así como el elegir el nombre para su equipo o compañía. De igual manera, cada equipo debía elegir el producto a desarrollar, de modo que sintieran una gran motivación para lograrlo. La elección del producto debía cumplir con ciertas condiciones: 1) El producto debía tener un nombre; 2) El producto debía aplicar lo aprendido en el curso; 3) El producto debía ser algo que se pudiese vender a futuro; es decir, del curso debía salir un producto mínimo viable para un potencial emprendimiento; y 4) El alcance del producto debía ser realizable en el tiempo estipulado para el semestre.

Se les hizo énfasis a los estudiantes en que el cómo resolver el problema, objeto del producto, no debía ser una limitante para seleccionar el producto. Lo importante era tener claridad en lo que querían lograr, sin importar qué tan complejo fuese resolverlo, debido a que el conocimiento lo adquirirían, tanto en las clases como en libros, artículos, blogs, etc. Esto significó el primer reto para los equipos. Pensar en un producto que fuese lo más original posible; de no ser así, pensar en cuál sería el valor agregado que ofrece su producto respecto a otros similares; pensar en cómo venderlo, etc.

Como primer compromiso, a cada equipo de trabajo se les asignó como tarea describir su producto, de manera tal que si un inversionista lo leyera, éste sintiese el interés de financiarlo. Esto llevó a algunas fases de entrega y correcciones de cómo escribir una propuesta de valor que fuese interesante para individuos que quieran invertir en proyectos de este estilo. Una vez que se logró que las propuestas habían alcanzado el nivel deseado, se procedió a asignarles la siguiente tarea, que consistió en definir el plan de trabajo para lograr desarrollar el producto. Este plan de trabajo permitió a su ver la asignación de las tareas subsecuentes, tales como investigar cómo se resolverían cada una de las partes del producto. A medida que el desarrollo del producto avanzaba, se fue ejecutando la evaluación del producto, la cual se llevó a cabo en varios avances, uno semanal.

El primer avance de la evaluación del desarrollo del producto consistió en que cada equipo debía presentar, ante los demás, su producto y especificar qué aspectos técnicos utilizarían para resolverlo, entre los que debían estar los relacionados con las estructuras de datos y algoritmos, y finalizar con una propuesta del alcance para los siguientes avances. En cada avance semanal, los equipos debían haber alcanzado lo propuesto en el avance anterior, explicar cómo solucionaron el problema, cuáles fueron sus dificultades y retos para solucionarlo y mostrar la solución al problema. En cada uno de los avances, los evaluadores dieron sugerencias a los equipos en cómo mejorar las propuestas de valor y como venderla (speech). De esta manera, además de formarse como programadores y emprendedores, reciben orientación en cómo hacer buenas exposiciones.

El proceso de desarrollo del producto abarcó seis (6) semanas del semestre. Durante las otras semanas se trabajó en la capacitación de los conocimientos a través de la investigación y las clases magistrales, además de las prácticas de laboratorio de la asignatura. Al final del semestre, se hizo una exposición, en la que cada equipo de trabajo debió presentar sus productos, ante un jurado profesoral encargado de evaluar los productos. En esta evaluación no entraban los aspectos técnicos. Esta actividad pretendió emular un ambiente de feria o festival, en el cual un grupo de emprendedores presentan sus productos a un grupo de empresarios e inversionistas.

Como resultados de la aplicación de la estrategia RAIS en la asignatura Programación 3, durante el semestre U-2016, se desarrollaron nueve (9) productos, en los cuales se abordaron problemas propios del curso, como problemas de cursos más avanzados, a los cuales los estudiantes aún no habían enfrentado. Es notable señalar como los estudiantes aceptaron los retos y vencieron la complejidad a la que enfrentaban en los diversos problemas. Todos los productos fueron completados de acuerdo a la propuesta inicial.

Entre los productos más destacados, desarrollados en el semestre U-2016, cabe mencionar una versión del juego llamado “Dots and boxes y una versión del juego denominado “Tic tac toe”, también conocido como “Tres en línea”, o como se conoce en nuestro argot popular “La vieja”.

La versión de “Dot and boxes” fue desarrollada por el equipo “Codemakers”, el cual estuvo conformado por Juan Morón, Javier Mérida, Jesús Rojas y Marco Sandoval. En este producto juega una persona en solitario, de modo que fue necesario implementar un agente inteligente que fungiera de otro jugador. Esta inteligencia artificial fue desarrollada con una adaptación del algoritmo “Minimax basada en la estructura de datos Árbol, estudiada en Programación 3. La adaptación al algoritmo se debió a que éste originalmente funciona para juegos en los cuales no se repiten turnos. Este equipo se enfrentó a retos tales como el desarrollo de la interfaz gráfica para poder jugar, la creación del agente inteligente y aprender a jugar bien para poder hacer que el agente inteligente supiera hacerlo también. A continuación se muestran tres capturas de pantalla de este juego.

805513083_50798 805513427_50091 805513858_49894

Capturas de pantalla del juego Dot and Box de Codemakers.

La versión de “Tic tac toe” fue desarrollada por el equipo “Apamate Games”, conformado por Paola Ocando, Mar Albarrán, Karen Escalante y Elías Guillén. Este producto tiene dos modalidades de juego, de un solo jugador o de dos jugadores. Este producto presentó retos relacionados con la necesidad de desarrollar una interfaz gráfica que fuese lo suficientemente agradable y llamativa para que el usuario se sintiera cómodo al jugarlo, así como diseñar una inteligencia artificial que jugara contra el jugador humano, y poder tener un oponente automático al jugar en la modalidad de un solo jugador. Esta inteligencia fue desarrollada mediante el algoritmo “Minimax”. El último reto planteado para este equipo fue convertir el clásico juego de una matriz de tres filas por tres columnas, a una matriz de cinco filas y cinco columnas, lo cual generó una complicación del algoritmo “Minimax”, para lo cual tuvieron que aplicar otra técnica denominada “Poda Alpha-Beta. A continuación se muestran dos capturas de pantalla de este juego. 

tictactoe1 tictactoe2

Capturas de pantalla del juego Tic Tac Toe de Apamate Games.

Además de los dos proyectos mencionados, se desarrollaron otros productos interesantes que cubrían las expectativas del curso entre los cuales cabe mencionar los siguientes: “Text Predictor”, un editor de textos predictivo basado en la estructura de datos Árbol instrumentado como un diccionario de prefijos desarrollado por Astrid Rodríguez, Jesús Pernía, Roberto Blanco, Luis Lezama y Miguel Méndez;  “Championship”, un herramienta para la gestión de eventos deportivos desarrollada por Eduardo Pérez; “Tree Viewer”, una herramienta orientada a la enseñanza de los algoritmos sobre árboles binarios de búsqueda en la cual se muestra todo el proceso que ejecutan algunos de los algoritmos de manera gráfica desarrollada por Gerardo Montes, Boaly Yance, David Calderón, Luis Reyes y Argenis Rivas; y el equipo “PCJOKA” conformado por Katherin Candia, José Gregorio Suárez, Patricia Gómez y Charles Benítez desarrollaron una herramienta que sirve como diccionario de sinónimos para ayudar al entendimiento del significado diverso de algunas palabras para los sordo-mudos. Es importante señalar que de los productos desarrollados durante este semestre, varios han evolucionado en emprendimientos reales. Algunos de estos emprendimientos están orientados a mejorar los productos desarrollados en aula de clase para obtener un producto mínimo viable que sea comercializable; en otros casos, los productos desarrollados permitieron que los estudiantes aplicaran todo el conocimiento que adquirieron en el desarrollo de otros productos de emprendimiento.

Estrategia RAIS semestre U-2017

Para el semestre U-2017 se aplicó la estrategia RAIS en los cursos Programación 3 y Diseño y Análisis de Algoritmos. En este semestre se siguieron los mismos lineamientos en el semestre anterior en lo que refiere a la formación de equipos, elección de productos y trabajos de avance. En este semestre hubo un poco más de rigurosidad en las presentaciones, pues tenían limitación de tiempo intentando poner en práctica el clásico discurso del elevador.

Programación 3 estuvo conformado por un grupo de 40 estudiantes mientras que Diseño y Análisis de Algoritmos estuvo conformado por 50. En ambos cursos los equipos de igual manera tenían un máximo de 5 miembros. En ambos cursos se desarrollaron 8 y 9 productos respectivamente. En algunos productos se intentó llevar a cabo innovación sobre productos similares y hubo otros bastante originales. Entre los productos más destacados tenemos los siguientes: “Starving Hamster“, “Holzen the Hunter“, “OSO“, “Cribers“,  “BalTree“, “Maze Out” y “Greedy Spider“.

Starving Hamster” es un videojuego de plataforma 2D que consiste en un pequeño hamster que decide recorrer todo un parque en la búsqueda de su amada, para esta misión debe evitar ser comido por criaturas como serpientes, águilas y gatos y, además, debe alimentarse constantemente para no morir de hambre. Este juego fue desarrollado por el equipo del mismo nombre (“Starving Hamster”) conformado por Jul Ramírez, Eugimar Carrera, María José Dávila y Dunia Marquina. Este juego insturmenta modelos de autómatas para el comportamiento de las criatuas. A continuación algunas capturas de pantalla de este juego.

804729850_59366 804729380_58883

Capturas de pantalla de Starving Hamster.

Holzen the Hunter” es un videojuego del estilo ARPG 2D desarrollado por el equipo “Nightvision Designs” conformado por Jorge Rodríguez, Luis Silva, Héctor Sulbarán y Josmar Muñoz. Este juego instrumenta modelos autómatas para las criaturas básicas y árboles de decisión para los jefes. A continuación algunas capturas de pantalla de este producto.

804722551_82875 804725869_81308

Capturas de pantalla de Holzen the Hunter de Nightvision Designs.

“OSO” es una versión del juego de papel y lápiz llamado juego del oso eel cual consiste en un tablero rectangular en el cual se puede elegir entre escribir una letra “O” o una letra “S” para completar la palabra “OSO” la mayor cantidad de veces posible. Este juego tiene una adaptación del algoritmo “Minimax” semejante a la desarrollada en el juego “Dot and Box” para una inteligencia artificial. Fue desarrollado por el equipo “Richard Games” conformado por Oscar Albornoz, Lewis Ochoa y Luis Manuel Sandia. A continuación algunas capturas del juego.

OSO1 OSO2

Capturas de pantalla del juego del OSO de Richard Games.

Cribers” es un entorno de programación orientado al trabajo en equipo el cual permite crear proyectos de grupo en el cual todos los miembros de un equipo pueden aportar. El computador donde se crea al proyecto es el servidor mientras que los otros miembros acceden como clientes. El editor cuenta con un sistema de mensajería instantánea para la comunicación del los miembros del equipo y permite editar el código de otro mientras éste observa los cambios en línea. Este producto fue desarrollado por el equipo “Cribers’ Crew” conformado por René Peña, Fernando Carrillo, Andrea Briceño, Juan Borges y Carlos Silva. A continuación una captura de pantalla del producto.

804726446_60176 804726340_59951

Capturas de pantalla de Cribers.

BalTree” es una herramienta orientada a la enseñanza de resolución de operaciones aritméticas paso a paso en la cual el usuario podrá introducir una expresión y la herramienta le dirá todos los pasos para resolverla. Este trabajo se basa en el uso de Árboles Binarios para la resolución de las operaciones. Este producto fue desarrollado por el equipo BalTree conformado por Abraham Mousalli, Argenis Rivas, Émily Araque y Génesis Uzcátegui.

Maze Out” Es un videojuego cuyo objetivo es resolver laberintos basado en la historia de un chico. Cada laberinto tiene un objetivo diferente. Este producto fue desarrollado por el equipo Maze Out conformado por Sarait Hernández, Ángely Contreras, Gustavo Mejía y Víctor Rojas.

Greedy Spider” es un juego que consiste en impedir que una araña se coma sus presas atrapadas en la tela de araña. Para impedirlo, el jugador se encargará de cortar algunos hilos de la tela, quemarlos, congelar la araña, colocar señuelos etc. Es un juego por turnos y la idea es quitarle a la araña toda posibilidad de alcanzar la presa. Este producto fue desarrollado por el equipo Greedy Squad conformado por Daniela Baptista, Isamar Benítez, Josué Díaz, Carmen León y Migdalia Valero.

 

Conclusión

La implementación de la estrategia RAIS en estas asignaturas, condujo a los estudiantes a desarrollar las habilidades y competencias propias de un programador, así como destrezas en el trabajo en equipo y aspectos comunicacionales. Además, a través del desarrollo del producto y el trabajo colaborativo se promovieron elementos actitudinales que les permitirán tener una personalidad de individuos emprendedores y retadores.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Posted in Aleph-w, C++, PR3, Programación, Qt, Videojuegos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*