Simulación de ejecución de algoritmos utilizando a los estudiantes como actores Arturo Camacho Lozano Escuela de Ciencias de la Computación e Informática Universidad de Costa Rica arturo.camacho@ecci.ucr.ac.cr 1. Introducción Cuando se enseña un curso de estructuras de datos y algoritmos, es común que el docente simule la ejecución de los algoritmos en la pizarra o con diapositivas animadas. Sin embargo, es bastante aceptada la idea de que un estudiante aprende más a partir de lo que hace que de lo que escucha o ve. Bajo este enfoque, se propone una metodología para que los estudiantes aprendan algoritmos de ordenamiento, grafos y estructuras de datos mediante simulaciones, en las cuales ellos participan como actores. 2. 2.1. Metodología Algoritmos de ordenamiento El método propuesto consiste en que los estudiantes representen los elementos del arreglo a ordenar y simulen las comparaciones y movimientos que el algoritmo realiza. Primero, se le pide a un grupo de voluntarios que se dispongan en forma de arreglo. Posteriormente, se les explica la idea fundamental del algoritmo y se les pide que se comparen y se movilicen para implementar la idea eficientemente. A manera de ejemplo, para el algoritmo de ordenamiento por inserción se les indica que la idea fundamental del algoritmo es formar una secuencia de subarreglos a la que se le agrega un elemento a la vez, y que en cada iteración se debe garantizar que el subarreglo está ordenado. El estudiante recién incorporado al subarreglo se encarga de dirigir las comparaciones y movimientos para garantizar que al final de la iteración el subarreglo quede ordenado. Esta responsabilidad genera en el estudiante un nivel de atención alto, que le permita alcanzar el objetivo. Típicamente, el estudiante reconoce la mecánica del algoritmo después de unos pocos pasos. 2.2. Estructuras de datos Entre las estructuras de datos más utilizadas están los árboles de búsqueda binarios. Estos árboles se caracterizan porque sus elementos forman una jerarquía análoga a la de un árbol genealógico. Para simular estas estructuras, los enlaces padre-hijo se representan mediante cuerdas que los estudiantes colocan alrededor de su cintura y que entregan a su padre (o madre). Las operaciones de inserción y búsqueda son derivadas fácilmente por los estudiantes. El borrado es más complejo, pero después de un poco de discusión, los estudiantes suelen encontrar la solución. Una variación de esta estructura son los árboles rojinegros, en los que cada nodo tiene un atributo extra color, que puede ser rojo o negro. Durante la simulación, los estudiantes usan un sombrero rojo para indicar que son rojos. 1 Calificación 9,0 I ciclo II ciclo 8,0 7,0 2009 2010 2011 Año 2012 2013 Figura 1: Mediana de las calificaciones finales de los estudiantes en el curso, desde el 2009 hasta el 2013. 2.3. Algoritmos sobre grafos En un grafo, la cantidad de adyacentes a un nodo puede ser grande, por lo que el uso de cuerdas no es viable. En este caso se usa la pizarra, pero los estudiantes son quienes dibujan los nodos y actualizan sus atributos. Por ejemplo, para el algoritmo de Dijkstra, los estudiantes crean un nodo con su nombre y ponen como adyacentes a los nodos cuya inicial coincide con la de su apellido. La distancia entre los nodos se puede establecer de acuerdo a la diferencia de edad (en meses) entre los estudiantes involucrados. Durante la ejecución del algoritmo, cada estudiantes se encarga de desencolar su nodo cuando corresponde y de actualizar las distancias de sus adyacentes a la fuente. 3. Evaluación La metodología se introdujo en el curso Estructuras de Datos y Análisis de Algoritmos impartido por el autor en el II ciclo de 2010. Los primeros temas abordados con este método fueron los algoritmos de ordenamiento y las estructuras de datos. El tema de grafos se abordó en el II ciclo de 2012. La figura 1 muestra la mediana de las notas finales del curso a partir del II ciclo de 2009 (primera ocasión en que el autor impartió el curso). Debido a que las calificaciones del I y II ciclo del año lectivo no con comparables (usualmente los estudiantes que toman el curso en el I ciclo han sufrido un rezago ya que el curso está programado para el II ciclo), se comparan las calificaciones del II ciclo de 2009 y con las del II ciclo de 2010. Esta comparación muestra un incremento significativo en el ciclo en el que se introdujo la metodología. Cabe mencionar, sin embargo, que los promedios de matrícula de ambos grupos fueron bastante disparejos. Una comparación de las calificaciones del I ciclo de 2010 y de 2011 también muestra una mejora importante con la introducción de la metodología. Y en este caso, los grupos sí poseían características semejantes. Cabe aclarar que a partir del II ciclo de 2010 las calificaciones del curso han bajado, pero esto se debe al constante incremento en el nivel de dificultad de las evaluaciones del curso. 4. Conclusión Se introdujo una metodología para la enseñanza-aprendizaje de algoritmos y estructuras de datos en la que los estudiantes participan activamente en la simulación de la ejecución de los mismos. Los resultados sugieren que el uso de esta metodología produce un incremento en las calificaciones del curso. 2