Asistentes Interactivos para el Aprendizaje de Algoritmos Voraces
Transcription
Asistentes Interactivos para el Aprendizaje de Algoritmos Voraces
IEEE-RITA Vol. 4, Núm. 3, Ago. 2009 213 Asistentes Interactivos para el Aprendizaje de Algoritmos Voraces J. Ángel Velázquez Iturbide, Member, IEEE, Carlos A. Lázaro Carrascosa, e Isidoro Hernán Losada Title— Interactive Assistants for Learning Greedy Algorithms Abstract— The design of educational software must be based on clear pedagogical objectives. In this article we introduce two interactive assistants, each one intended to assist in a specific greedy algorithm: AMO for the knapsack problem and SEDA for the activity selection problem. We describe their educational objectives by means of the levels in Bloom’s taxonomy and the functions these assistants provide to support such levels. We also describe the method and results of several usability evaluations performed, which were highly positive. Index Terms— Algorithms, educational technology, interactive systems, user interface human factors. I. INTRODUCCIÓN L A informática en general y la informática educativa en particular han alcanzado niveles muy altos de sofisticación. Sin embargo, este alarde tecnológico no tiene porqué ir acompañado de su éxito educativo. Un ejemplo claro lo encontramos en las animaciones de algoritmos que, a pesar de su madurez y amplia oferta de sistemas, no ha alcanzado el éxito prometido. Una de las principales razones [1] de este relativo fracaso es la gran carga de trabajo que supone la construcción de animaciones (normalmente, para los profesores), pero también que su uso no siempre garantiza una mayor eficacia educativa [2]. El trabajo aquí presentado es una contribución dentro de una línea de investigación centrada en el desarrollo de aplicaciones educativas de animación de programas para técnicas de diseño de algoritmos. Dicha línea [3] comenzó con un estudio de las características de las visualizaciones de algoritmos, clasificadas por técnica de diseño. También partimos de nuestra experiencia en el uso de la taxonomía de Bloom [4] como marco educativo para el diseño de Manuscrito recibido el 28 de Febrero de 2009. J. Ángel Velázquez Iturbide pertenece al Departamento de Lenguajes y Sistemas Informáticos I, Universidad Rey Juan Carlos, C/ Tulipán s/n, Móstoles 28933, Madrid, España (autor de contacto, Tel.: +34 91 664 74 54; Fax: +34 91 488 85 30; e-mail: angel.velazquez@ urjc.es). Carlos A. Lázaro Carrascosa pertenece al Departamento de Lenguajes y Sistemas Informáticos I, Universidad Rey Juan Carlos, C/ Tulipán s/n, Móstoles 28933, Madrid, España (e-mail: carlos.lazaro@ urjc.es). Isidoro Hernán Losada pertenece al Departamento de Lenguajes y Sistemas Informáticos I, Universidad Rey Juan Carlos, C/ Tulipán s/n, Móstoles 28933, Madrid, España (e-mail: isidoro.hernan@ urjc.es). DOI (Digital Object Identifier) Pendiente. aplicaciones educativas [5]. Sobre estas bases, hemos desarrollado sistemas para la animación de la recursividad [6] y de algoritmos de divide-y-vencerás [7]. En este artículo se presentan dos aplicaciones educativas diseñadas para ayudar a los alumnos en el estudio de los algoritmos voraces. AMO [8] está concebido para ayudar al estudio del problema de la mochila [9] y SEDA [10], para el problema de la selección de actividades [11]. Ambas aplicaciones afrontan los dos retos antes citados para sistemas de animación. Por un lado, las animaciones se generan automáticamente, sin esfuerzo por parte del usuario. Por otro lado y lo más importante para el objetivo de esta comunicación, afrontamos la eficacia educativa mediante su diseño en el marco de la taxonomía de Bloom. La estructura del artículo es la siguiente. En el apartado siguiente describimos nuestros objetivos pedagógicos. El apartado tercero contiene una descripción detallada de ambas aplicaciones. En el apartado cuarto se describen los resultados de varias evaluaciones de usabilidad. Por último, comentamos algunos trabajos relacionados e incluimos nuestras conclusiones y líneas de trabajo futuro. II. OBJETIVOS PEDAGÓGICOS Hemos clasificado los objetivos educativos de nuestras aplicaciones según la taxonomía de Bloom [4]. Se trata de un marco, muy conocido, para medir el grado de conocimiento o aprendizaje de una materia por el alumno. La taxonomía establece una jerarquía de seis niveles: • Nivel de conocimiento. El estudiante puede recordar información, sin que sea necesario entender su contenido. • Nivel de comprensión. El estudiante puede entender y explicar el significado de la información recibida. • Nivel de aplicación. El estudiante puede seleccionar y utilizar datos y métodos para solucionar una tarea o problema. • Nivel de análisis. El estudiante puede distinguir, clasificar y relacionar hipótesis y evidencias de la información dada, así como descomponer un problema en sus partes. • Nivel de síntesis. El estudiante puede generalizar ideas y aplicarlas para solucionar un nuevo problema. • Nivel de evaluación. El estudiante puede comparar, criticar y evaluar métodos o soluciones para solucionar un problema. ISSN 1932-8540 © IEEE 214 IEEE-RITA Vol. 4, Núm. 3, Ago. 2009 Si buscamos objetivos de aprendizaje para las distintas técnicas de diseño de algoritmos, encontramos que todas ellas buscan los niveles de comprensión de la técnica y de análisis del comportamiento de los algoritmos desarrollados. Sin embargo, también encontramos diferencias entre las distintas técnicas. En concreto, en los algoritmos voraces, juegan el papel principal los niveles de aplicación (de patrón de código de muy alto nivel), síntesis (de demostración de optimidad y de programación del algoritmo) y evaluación (de estrategias alternativas). Conviene comentar una dificultad adicional. Los algoritmos voraces se basan en unos conceptos comunes y un patrón de alto nivel. Sin embargo, sus códigos fuentes son tan distintos a dicho patrón que resultan irreconocibles como instancias del mismo. La visualización de cada algoritmo voraz también es particular del mismo [3]. En consecuencia, propusimos diseñar una familia de asistentes, cada uno dedicado a un problema voraz diferente. Cada asistente debe ayudar en los siguientes niveles educativos: • Comprensión. El alumno comprenderá el problema planteado y el algoritmo voraz que lo resuelve. El algoritmo será independiente de la estrategia voraz elegida (es decir, del criterio de selección de los candidatos), por lo que puede contener fragmentos de pseudocódigo. • Análisis. El alumno analizará el efecto de aplicar a unos datos de entrada el mismo algoritmo voraz, pero con diversas estrategias voraces. • Evaluación. El alumno evaluará el efecto de cada estrategia voraz y seleccionará (empíricamente) la óptima. Obsérvese que la selección de la estrategia óptima se realiza a partir de los resultados obtenidos experimentalmente. A pesar de esta evidencia empírica, la optimidad de la estrategia correspondiente sólo puede afirmarse tras su demostración formal, que se realizará sin la ayuda del asistente. III. DESCRIPCIÓN DE LOS ASISTENTES INTERACTIVOS AMO y SEDA se han diseñado para ayudar al aprendizaje de los problemas de la mochila [9] y de la selección de actividades [11], respectivamente. La mayor parte de sus características son comunes. Sin embargo, SEDA se desarrolló tras AMO, por lo que contiene algunas mejoras introducidas tras una sesión de evaluación de usabilidad de AMO. Al estar más avanzado, comenzamos presentando SEDA, para exponer después las características específicas de AMO. A. Descripción de SEDA Podemos definir informalmente el problema de selección de actividades de la siguiente manera [11]. Dado un conjunto de n actividades, cada una con un instante de comienzo ci y un instante de fin fi, deseamos seleccionar un subconjunto de máximo tamaño de actividades que no se solapen. Por ejemplo, dado el conjunto de actividades de la Tabla I, el subconjunto compuesto por las actividades {0,6,9} es una solución válida, mientras que el subconjunto {2,7,6,3} es una solución de tamaño máximo. TABLA I. UN EJEMPLO DEL PROBLEMA DE SELECCIÓN DE ACTIVIDADES i 0 1 2 3 4 5 6 7 8 9 si 1 9 28 11 7 6 19 24 28 23 fi 14 17 29 15 14 26 23 28 29 30 La Fig. 1 muestra el aspecto de la interfaz de usuario de SEDA. Se distinguen claramente tres zonas, aparte del menú principal y la barra de iconos. En la parte superior se encuentra el panel del problema, que muestra gráficamente los datos de entrada (en la figura, tras ejecutar el algoritmo para el ejemplo anterior). En la parte inferior izquierda se encuentra el panel de teoría. Consta de dos pestañas: la pestaña del problema contiene su enunciado, y la del algoritmo (visible en la figura), su codificación en Java. Finalmente, la parte derecha contiene el panel de resultados, que a su vez contiene las pestañas de datos de entrada y de resultados (visible). Fig. 1. Interfaz de usuario de SEDA. El usuario puede consultar el enunciado del problema y el código del algoritmo voraz en cualquier momento. Sin embargo, sólo podrá usar el resto de funciones de SEDA tras introducir datos de entrada. Entonces, SEDA muestra gráficamente los datos en el panel del problema. A partir de este momento, el usuario puede seleccionar una estrategia voraz y ejecutar el algoritmo según el orden de selección dado por ésta. SEDA ofrece 9 estrategias: • Aleatoria. • Índice de la actividad en orden creciente/decreciente. • Comienzo de la actividad en orden creciente/decreciente. • Fin de la actividad en orden creciente/decreciente. • Duración de la actividad en orden creciente/decreciente. ISSN 1932-8540 © IEEE VELÁZQUEZ ITÚRBIDE et al.: ASISTENTES INTERACTIVOS PARA APRENDIZAJE DE ALGORITMOS... 215 Fig. 2. Visualización de actividades en SEDA en orden decreciente de comienzo. Fig. 3. Visualización de actividades en SEDA en orden decreciente de duración. Fig. 4. Tabla de evaluación de las estrategias en SEDA. SEDA visualiza las actividades en formato bidimensional sobre un eje temporal horizontal. La visualización muestra tantas filas como actividades hay. Cada actividad se representa mediante una barra comprendida entre los instantes de comienzo y fin. Las actividades se colorean con tonos según la estrategia voraz seleccionada, correspondiendo los tonos más oscuros a las actividades que antes se seleccionarán con dicha estrategia. Obsérvese que un número alto de objetos producen un problema visual ya que las personas somos incapaces de distinguir una gama de tantos tonos. Para que las visualizaciones (y el propio ejemplo) sean manejables, SEDA impone la restricción de un máximo de 12 actividades e instantes comprendidos entre 0 y 30. La Fig. 2 muestra el mismo ejemplo que la Fig. 1 (es decir, las diez actividades de la Tabla I según la estrategia de orden decreciente de comienzo), pero al comienzo de la ejecución. Obsérvese que la primera actividad en ser seleccionada será la tercera (situada en la parte superior derecha), mientras que la de la fila primera será la última. La Fig. 3 muestra las mismas actividades reordenadas (recoloreadas) en orden decreciente de duración. Una vez seleccionada una estrategia, el usuario puede ejecutar y animar el algoritmo mediante dos controles: paso a paso o de forma completa. En el primer caso, el usuario puede observar cómo se seleccionan actividades iteración tras iteración según la estrategia activa. Cada actividad seleccionada se colorea de gris si es válida (indicando que no puede volver a seleccionarse) o de rojo si es inválida (es decir, si se solapa con alguna seleccionada antes). El usuario también puede retroceder la animación para volver a examinar los pasos anteriores. El beneficio producido por las distintas estrategias se muestra en la tabla del panel de resultados. La Fig. 4 muestra dicha tabla tras aplicar 5 estrategias con los datos de entrada de las figuras anteriores. Cada fila contiene, de izquierda a derecha, columnas con la estrategia, el valor asignado a cada actividad, las actividades seleccionadas y valor de la función objetivo (en este problema, número de actividades). La tabla permite ordenar sus filas según la columna de número de actividades, conociendo inmediatamente las estrategias con mejor resultado. SEDA es un sistema sencillo, con sólo algunas facilidades más. El usuario puede introducir datos de entrada por teclado, generarlos aleatoriamente o leerlos de un fichero; también puede modificarlos interactivamente. Las visualizaciones individuales y las animaciones pueden almacenarse en ficheros de formatos gráficos estándar. La tabla de resultados puede exportarse en formato de texto. Por último, puede seleccionarse el idioma de la aplicación (español e inglés). ISSN 1932-8540 © IEEE 216 IEEE-RITA Vol. 4, Núm. 3, Ago. 2009 Fig. 5. Visualización de los objetos y la mochila en AMO. Fig. 6. Tabla de evaluación de las estrategias en AMO. Hagamos un resumen de las principales características de SEDA agrupadas por los objetivos educativos que soporta: • Nivel de comprensión. Está soportado por el panel de teoría (con sus pestañas de problema y de algoritmo). A su vez, las funciones de entrada de datos, selección de estrategia y avance/retroceso de la animación facilitan que el alumno analice el comportamiento del algoritmo con cada estrategia. • Nivel de análisis. Está soportado por las visualizaciones y la animación del panel del problema. La representación gráfica facilita identificar los límites de las actividades y sus solapamientos. Además, los tonos facilitan determinar el orden de selección de las actividades y el gris, descartar las ya consideradas. Los controles de avance/retroceso de la animación facilitan el análisis temporal de cada estrategia. Por último, la tabla de resultados permite conocer fácilmente el efecto de cada estrategia y analizarla de forma resumida. • Nivel de evaluación. Está soportado por la tabla de resultados. Su examen permite conocer qué estrategias maximizan el número de actividades y sus diferencias. Obsérvese que el soporte a un nivel refuerza el apoyo a otros. Por ejemplo, el soporte al análisis favorece la evaluación. B. Uso Educativo En general sugerimos el siguiente método de trabajo: 1. Leer el problema y el algoritmo incluidos. 2. Introducir datos de entrada. 3. Seleccionar diversas estrategias y ejecutar el algoritmo, analizando el efecto de utilizar cada una. 4. Evaluar el resultado de las distintas estrategias para determinar la óptima. Para el paso 2, cada fuente de entrada tiene sentido en situaciones distintas: el teclado se usa para introducir un ejemplo concreto, el azar para crear un ejemplo rápidamente y los ficheros para reproducir ejemplos concretos o de tamaño grande. Es muy probable que varias estrategias produzcan el mismo resultado para unos datos de entrada. Por tanto, rara vez se seguirá linealmente el método propuesto y habrá que repetir los pasos 2-4 varias veces, cada vez con datos nuevos. C. Descripción de AMO AMO es igual que SEDA, salvo en detalles propios del problema abordado, como la visualización de los datos, las estrategias, el formato de la tabla de resultados y otros detalles menores (p.ej. el diálogo de entrada de datos). Además, debido a las fechas de desarrollo, AMO carece de algunas funciones de SEDA. Comencemos por enunciar el problema de la mochila [12]. Sea una mochila de capacidad c y n objetos, tales que la suma de todos sus pesos excede la capacidad de la mochila. Cada objeto i, 0≤i≤n-1, tiene un peso pi y un beneficio asociado bi. Cada objeto puede partirse, de forma que si se introduce una fracción xi en la mochila, se consigue la parte proporcional de su beneficio xi·bi. El objetivo consiste en llenar la mochila de forma que se maximice el beneficio conseguido. Por ejemplo, sea una mochila de capacidad c=162 y siete objetos con pesos {90,74,31,42,59,56,14} y beneficios {72,66,21,8,100,27,26}. Si introducimos los objetos en la mochila en orden creciente de peso, caben enteros los objetos 2,3,5,6 y 19/59 del objeto 4, produciendo un beneficio 114’203. En cambio, si seleccionamos los objetos en orden decreciente de la tasa beneficio/peso, se introducen enteros los objetos 1,4,6 y 15/90 del objeto 0, produciendo el beneficio máximo 204. Las visualizaciones de AMO muestran los objetos y la mochila. Los objetos se muestran en formato vertical, de manera que el ancho es proporcional a su peso y la altura a su beneficio. Asimismo, la mochila es un recipiente de anchura proporcional a su capacidad (en peso). La Fig. 5 ilustra estas ISSN 1932-8540 © IEEE VELÁZQUEZ ITÚRBIDE et al.: ASISTENTES INTERACTIVOS PARA APRENDIZAJE DE ALGORITMOS... visualizaciones para el ejemplo anterior. Como en SEDA, los candidatos exhiben distintos tonos de color según la estrategia voraz seleccionada y los candidatos ya seleccionados se presentan en gris. Para que los problemas y las visualizaciones sean manejables, AMO impone la restricción de un máximo de 10 objetos. Por otro lado, AMO ofrece 11 estrategias: • Aleatoria. • Índice en orden creciente/decreciente. • Beneficio en orden creciente/decreciente. • Beneficio/peso en orden creciente/decreciente. • Peso en orden creciente/decreciente. • Peso/beneficio en orden creciente/decreciente. La última diferencia destacable es el formato de la tabla de resultados. En AMO consta de cinco columnas. Las columnas primera, segunda y última son iguales que en SEDA: estrategia, valores de selección y valor de la función objetivo (en el caso de la mochila, el beneficio conseguido). Las columnas tercera y cuarta contienen, respectivamente, el orden de selección de los objetos y el porcentaje introducido de cada uno. La Fig. 6 muestra una tabla para los datos del ejemplo. IV. EVALUACIÓN DE LOS ASISTENTES INTERACTIVOS Hemos realizado diversas evaluaciones de ambos asistentes, cuya organización y resultados presentamos en este apartado. A. Diseño y Evaluaciones de Experto El diseño de ambos asistentes ha sido una tarea laboriosa, especialmente de AMO, que fue el desarrollado en primer lugar. Se realizó un primer diseño de la interfaz de usuario para dar soporte a los objetivos educativos. Este primer diseño ya incluía el formato de visualización, que es una mejora del propuesto en Sedgewick [9]. Posteriormente, fueron realizándose evaluaciones de experto para garantizar la usabilidad, coherencia y calidad de la interfaz. En total, se realizaron cinco evaluaciones de experto. El desarrollo de SEDA fue similar, con la ventaja de que se basó en AMO. En consecuencia, sólo se realizaron dos evaluaciones de experto. La visualización es una simplificación de la ilustración encontrada en Cormen, Leiserson y Rivest [11], que consigue el mismo efecto gracias a la dimensión del tiempo en la animación. B. Protocolo de Sesiones de Evaluación Se han realizado dos evaluaciones experimentales con usuarios finales. La sesión de evaluación de AMO se realizó en enero de 2008 en la asignatura troncal “Diseño y Análisis de Algoritmos”, de tercer curso de Ingeniería Informática. Participaron 40 alumnos. La sesión de SEDA se realizó en mayo de 2008 en la asignatura optativa “Estructuras de Datos y Algoritmos Avanzados”, también de tercer curso de Ingeniería Informática. Participaron 11 alumnos. Ambas sesiones se integraron en una sesión de laboratorio. Cada sesión duró dos horas. Los alumnos se descargaron de la web de la asignatura (con la que ya estaban familiarizados) 217 todo el material necesario para realizarla: enunciado, asistente y modelo de informe. Además, se les entregó en papel un cuestionario de opinión sobre el asistente. El cuestionario constaba de preguntas abiertas y preguntas tipo test, con valores en una escala de Linkert de 1 (muy mala) a 5 (muy buena). El enunciado de la práctica contenía la especificación del problema y una breve descripción del asistente a evaluar. Se pedía que realizaran tres tareas: 1. Utilizar el asistente para determinar una estrategia óptima entre las ofrecidas por el asistente. 2. Rellenar y entregar electrónicamente un breve informe, siguiendo el modelo proporcionado. Su estructura era muy sencilla: estrategia seleccionada, justificación razonada y ejemplos que proporcionan evidencia. 3. Rellenar y entregar por escrito el cuestionario de opinión sobre el asistente. En la primera sesión se les permitió realizar la práctica y entregar el informe en parejas, pero el cuestionario debía ser individual. En la segunda evaluación, todo el trabajo se realizó individualmente. En los apartados siguientes presentamos los resultados de usabilidad y de eficacia obtenidos en estas sesiones. C. Usabilidad de AMO En Tabla II incluimos los resultados de las preguntas tipo test sobre AMO. Omitimos la opinión sobre la calidad de algunos elementos rutinarios de la interfaz de usuario. TABLA II. RESULTADOS DE LA EVALUACIÓN DE AMO Pregunta Fácil de usar Ha ayudado a analizar el efecto de cada estrategia voraz Ha ayudado a identificar la estrategia óptima Calidad general Calidad de panel de datos de entrada Calidad de panel de datos de salida Calidad de pestaña de problema Calidad de pestaña de código Calidad de pestaña con datos de entrada Calidad de pestaña con tabla de resultados Calidad de introducción/generación de datos Calidad de formato de almacenamiento En conjunto ha gustado 4’54 Desv. típica 0’64 4’20 0’99 4’55 4’19 4’05 4’28 3’60 3’80 4’03 4’18 4’30 3’48 4’25 0’75 0’95 0’88 0’85 1’03 0’94 0’92 1’01 0’76 1’01 0’87 Media La facilidad de uso de AMO obtuvo una calificación media de 4’54, resultado de ser calificada de buena o muy buena por parte de 36 alumnos, neutral por parte de 3 y una respuesta en blanco. Esta opinión se corrobora con la falta de preguntas durante la sesión. Asimismo, 36 respuestas abiertas no citaron ningún aspecto de difícil uso o elogiaron su sencillez de uso. Las cuatro críticas recibidas son: incomprensión de algunos iconos, formato de la tabla de resultados, imposibilidad de suprimir filas en la tabla de resultados y falta de una función para ejecutar todas las estrategias. ISSN 1932-8540 © IEEE 218 IEEE-RITA Vol. 4, Núm. 3, Ago. 2009 Preguntados sobre su utilidad tanto para analizar el efecto de seleccionar cada estrategia como para identificar la estrategia óptima, hubo un consenso en su utilidad alta o muy alta. Con respecto al análisis de cada estrategia, solamente 4 la calificaron de forma neutral y 2 de muy mala. Con respecto a la identificación de la estrategia óptima, el resultado fue aún mejor: sólo 2 respuestas la calificaron de mala. En cuanto a su calidad general para analizar el efecto de distintas estrategias, la media de AMO fue de 4’19, con sólo una respuesta neutral y dos muy malas; hubo 4 respuestas en blanco. Se obtienen resultados similares sobre la calidad de elementos concretos. La mayor parte de las opiniones fueron buenas o muy buenas (297 de 400, frente a 66 respuestas neutrales y 37 negativas). Como puede observarse en Tabla II, los aspectos mejor valorados fueron la visualización de la mochila, los diálogos de entrada de datos y la pestaña de resultados. Por el contrario, los peor valorados fueron las pestañas de problema y código y el formato de almacenamiento en fichero. Por último, AMO gustó bastante o mucho a casi todos los alumnos, salvo a uno neutral, a otro que le gustó poco y a otro nada; hubo 4 respuestas en blanco. Recurrimos a las respuestas abiertas para tener su opinión detallada sobre los aspectos positivos y negativos de AMO. Los elementos que más comentaron haberles gustado fueron el diseño de visualización de los datos, la tabla de evaluación y el almacenamiento de datos en fichero. También encontramos algunas respuestas que muestran que no se ha comprendido la utilidad o el formato de algunas funciones, por lo que deberán explicarse mejor en el futuro: • Formato de almacenamiento de datos de entrada. • Utilidad de la generación aleatoria y la lectura de fichero de datos de entrada. • Dinámica a seguir con el asistente. • Dinámica de ejecución de distintas estrategias. Sin calificarlos de negativos, algunos alumnos suprimirían las siguientes funciones: • La configuración del color de los objetos. • Las pestañas de problema y de algoritmo. También encontramos sugerencias de mejorar algunas funciones: • Facilitar el paso de una estrategia a la siguiente con un icono específico. • Mejorar la pestaña de problema, haciendo que desaparezca tras la lectura inicial. • Mejorar la pestaña de código, haciéndola interactiva (p.ej. mostrando su ejecución paso a paso). • Mejorar la calidad de la visualización: representación gráfica, información de la ventana que emerge al situar el ratón sobre un objeto, mayor número de colores de configuración. • Aumentar la flexibilidad del control de la animación, permitiendo que una estrategia pueda ejecutarse varias veces o permitiendo pasos hacia atrás. • Revisar el formato de la tabla de evaluación y añadir operaciones: suprimir filas, y que al situarse sobre una fila, se muestre el resultado de su estrategia asociada. • Revisar el formato de almacenamiento en fichero de la tabla de evaluación. • Explicar los menús y las estrategias. • Incluir más formatos de almacenamiento en fichero, compatibles con presentaciones (DOC, RTF, PDF). • Cuestiones menores de comprensión (iconos) o coherencia de la interfaz. Por último, hay sugerencias para añadir funciones nuevas: • Exportación de visualizaciones. • Función de ejecución de varias o todas las estrategias. • Identificación final y justificación de la estrategia óptima. • Asistente más genérico para algoritmos voraces. Algunas de estas sugerencias se recogieron durante el desarrollo de SEDA: • Se simplificó el control de animación. • Se flexibilizó el control de la animación, permitiendo que una estrategia pueda ejecutarse varias veces, que la ejecución retroceda o incluso que se abandone. • Se añadieron varias facilidades sobre la tabla de evaluación: operación de suprimir una fila y que, al seleccionar una fila, se visualice el resultado de ejecutar su estrategia asociada. • Se añadió la facilidad de exportar a un fichero la visualización presente en pantalla. Por último, y para facilitar su uso académico, se internacionalizó la interfaz de usuario. El usuario puede seleccionar inglés o español como idioma de interacción. Su extensión a otros idiomas es sencilla puesto que sólo hay que incorporar los textos de la interfaz en un fichero. D. Usabilidad de SEDA En Tabla III incluimos los resultados de las preguntas tipo test sobre SEDA. Omitimos la opinión sobre la calidad de algunos elementos rutinarios de la interfaz de usuario. TABLA III. RESULTADOS DE LA EVALUACIÓN DE SEDA Pregunta Fácil de usar Ha ayudado a analizar el efecto de cada estrategia voraz Ha ayudado a identificar la estrategia óptima Calidad general Calidad de panel de visualización de datos Calidad de pestaña de problema Calidad de pestaña de código Calidad de pestaña con datos de entrada Calidad de pestaña con tabla de resultados Calidad de introducción/generación de datos Calidad de formato de almacenamiento En conjunto ha gustado 4’64 Desv. típica 0’50 4’50 0’53 3’60 4’00 4’18 3’91 4’09 4’18 4’18 4’45 4’00 4’27 0’84 0’67 0’98 0’70 0’83 0’87 0’87 0’69 1’18 0’47 Media La facilidad de uso de SEDA obtuvo una calificación de buena o muy buena por parte de todos los alumnos. Al igual ISSN 1932-8540 © IEEE VELÁZQUEZ ITÚRBIDE et al.: ASISTENTES INTERACTIVOS PARA APRENDIZAJE DE ALGORITMOS... que en AMO, esta opinión se corrobora con la falta de preguntas durante la sesión. Además, tres de los 11 alumnos citaron la facilidad de uso entre los aspectos positivos de SEDA. Solamente un alumno citó un elemento de difícil uso: distinguir los tonos de las distintas actividades. Preguntados sobre su utilidad concreta para analizar el efecto de seleccionar cada estrategia, hubo un consenso en su utilidad alta o muy alta para analizar el efecto de cada estrategia. Sin embargo, no la veían tan útil para identificar la estrategia óptima, ya que 6 consideraban que les había ayudado bastante o mucho, 3 que les había ayudado regular y uno que le había ayudado poco. En cuanto a su calidad general para analizar el efecto de distintas estrategias, la media de SEDA fue de 4’00, con sólo dos respuestas neutrales. Se obtienen resultados similares sobre la calidad de elementos concretos. La mayor parte de las opiniones fueron buenas o muy buenas (79 de 99). Sólo hubo dos opiniones negativas, sobre una característica secundaria: el formato del fichero donde se guarda la tabla de evaluación. La puntuación más alta se concede a los diálogos de generación de datos de entrada. Por último, SEDA gustó bastante o mucho a todos los alumnos. De nuevo, recurrimos a las respuestas abiertas para tener su opinión detallada sobre los aspectos positivos y negativos de SEDA. Los elementos que más les gustaron fueron: • El diseño de visualización de los datos. • La tabla de evaluación. • El almacenamiento de datos en fichero. También encontramos algunas respuestas que muestran que no se ha comprendido la utilidad o el formato de algunas funciones, por lo que deberán explicarse mejor en el futuro: • Función para almacenar los datos de entrada. • Posibilidad de ordenar la tabla de resultados según el número de actividades. Sin calificarlos de negativos, algunos alumnos suprimirían las siguientes funciones: • La configuración del color de los objetos. • La pestaña con datos de entrada, por redundante. También encontramos algunas sugerencias de mejora: • Ampliar el número máximo de actividades y su duración (ahora son 10 y 20, respectivamente). • Mejorar la calidad de la visualización: aumentar el contraste de tonos, reforzar los tonos con índice del orden de selección de candidatos, mostrar el tiempo ocupado por las actividades seleccionadas. • Destacar la estrategia seleccionada. • Revisar el formato de la tabla de evaluación y el nombre dado a sus columnas (p.ej. “valores de selección”). • Revisar el formato de almacenamiento en fichero de la tabla de evaluación. • Incluir más formatos de almacenamiento en fichero (texto, XML, Excel, compatibles con páginas web). • Errores menores de coherencia o eficiencia. Por último, hay sugerencias para añadir funciones nuevas: 219 • Edición visual de los datos de entrada. • Función de ejecución de todas las estrategias. • Comparación de los resultados de distintos datos de entrada. E. Resultados de Eficacia Ambas sesiones se realizaron en una clase de prácticas. En ambos casos, la práctica planteada era sencilla, supuesto que se comprenden los fundamentos de los algoritmos voraces. En la sesión con AMO se permitió que entregaran el informe en el plazo de una semana, por lo que lo entregaron más alumnos que los que participaron en la sesión. En total, se entregaron 28 informes, 25 realizados en parejas y 3 individuales. Los informes entregados obtuvieron la calificación de sobresaliente en 6 casos, notable en 13, aprobado en 6 y suspenso en 3. Los alumnos con sobresaliente identificaron dos estrategias óptimas; su justificación era aceptable y la evidencia se basaba en ejemplos ejecutados con bastantes estrategias e ilustrados con volcados de la tabla de resultados o con el fichero de resultados. Los alumnos con notable también identificaron dos estrategias óptimas, pero apenas las justificaron o evaluaron los ejemplos con pocas estrategias. Al otro extremo, los suspensos ni incluían justificación ni sus ejemplos estaban mínimamente desarrollados. En conjunto puede observarse que AMO les ayudó a realizar la práctica y que los alumnos fallaron en la parte no soportada por AMO, es decir, la justificación de que una estrategia es óptima. En la evaluación de SEDA los alumnos entregaron el informe al final de la sesión. Se obtuvieron 3 sobresalientes, 4 notables, 3 aprobados y 1 suspenso. Los alumnos con sobresaliente eligieron dos estrategias equivalentes y óptimas con justificación y respaldo empírico buenos. Los alumnos con notable acertaron con ambas estrategias pero apenas las justificaron o acertaron con solo una que estuvo correctamente justificada. Los aprobados propusieron una estrategia incorrecta junto a otra correcta, mientras que el suspenso propuso una sola estrategia incorrecta (y confundía el sentido de cada apartado). V. CONCLUSIONES Y TRABAJOS FUTUROS Hemos presentado dos asistentes interactivos para el aprendizaje de algoritmos voraces. Se han presentado los niveles educativos de la taxonomía de Bloom a los que están orientados y las características desarrolladas para soportar estos niveles. Ambos asistentes son análogos, pero SEDA incluye algunas facilidades adicionales por haberse diseñado tras la experiencia de AMO. También hemos presentado los resultados de dos evaluaciones con usuarios finales realizadas con ambos asistentes. Los resultados de usabilidad han sido muy favorables y han permitido identificar bastantes mejoras. Los resultados de eficacia también han sido positivos. En la documentación científica sobre enseñanza de la Informática encontramos numerosos sistemas de apoyo al ISSN 1932-8540 © IEEE 220 IEEE-RITA Vol. 4, Núm. 3, Ago. 2009 aprendizaje de algoritmos. Sin embargo, apenas hemos encontrado uno que tenga en cuenta las peculiaridades de los algoritmos voraces, el sistema PathFinder [12]. Sus objetivos y funciones difieren bastante de los nuestros, ya que se centran en la comprensión de algoritmos correctos (en este caso, el algoritmo de Dijkstra). Conviene destacar que estos asistentes deben utilizarse de forma adecuada. Por ejemplo, el profesor debe explicar las características de los asistentes y el método de indagación antes de su uso por los alumnos. El método de indagación es especialmente importante porque conviene orientar al alumno en su aprendizaje activo. El uso de estos asistentes también plantea retos nuevos, que no encontramos en ningún libro de texto. Por ejemplo, una cuestión interesante es la existencia y descubrimiento de estrategias equivalentes en estos problemas. Otra cuestión interesante es el uso de resultados obtenidos empíricamente como indicio, pero no como justificación de resultados teóricos. Esta cuestión enlaza con la formación de los alumnos en la experimentación y el método científico [13]. Durante el curso 2009-2010 se han utilizado ambos asistentes. También se ha usado otro asistente, llamado TuMisT [14], para el problema del árbol de recubrimiento de coste mínimo (que incluye los algoritmos de Prim y Kruskal). AMO y TuMisT los ha utilizado el profesor en el aula, mientras que SEDA se ha usado para una sesión de prácticas de laboratorio. Por otro lado, se están realizando la mayor parte de las mejoras identificadas en los apartados IV.C y IV.D. Finalmente, se está modificando SEDA para convertirlo en un único asistente, llamado GreedEx, que soporte los tres algoritmos voraces mencionados. AGRADECIMIENTOS Este trabajo se ha financiado con el proyecto TIN200804103/TSI del Ministerio de Ciencia e Innovación. Los autores quieren agradecer el trabajo de Jesús Gila Blázquez y Miriam Pablo García en el desarrollo respectivo de AMO y SEDA, así como de Asunción Aldave Izaguirre en la tabulación de los datos de las evaluaciones. REFERENCES [1] [2] [3] [4] [5] T. Naps, G. Roessling, V. Almstrum, W. Dann, R. Fleischer, C. Hundhausen, A. Korhonen, L. Malmi, M. McNally, S. Rodger, y J. Á. Velázquez Iturbide, “Exploring the role of visualization and engagement in computer science education”, SIGCSE Bulletin, vol. 35, no. 2, pp. 131-152, junio 2003. C. Hundhausen, S. Douglas, y J. Stasko, “A meta-study of algorithm visualization effectiveness”, Journal of Visual Languages and Computing, vol. 13, no. 3, pp. 259–290, 2002. L. Fernández Muñoz, y J. Á. Velázquez Iturbide, “Estudio sobre la visualización de las técnicas de diseño de algoritmos”, en Actas del VII Congreso Internacional de Interacción Persona-Ordenador, Interacción 2006, pp. 315-324. B. Bloom, E. Furst, W. Hill, y D. R. Krathwohl, Taxonomy of Educational Objectives: Handbook I, The Cognitive Domain. AddisonWesley, 1956. I. Hernán Losada, J. Á. Velázquez Iturbide, y C. A. Lázaro Carrascosa, “Programming learning tools based on Bloom’s taxonomy: Proposal and [6] [7] [8] [9] [10] [11] [12] [13] [14] accomplishments”, en Proc. VIII International Symposium of Computers in Education, SIIE 2006, pp. 325-334. J. Á. Velázquez Iturbide, A. Pérez Carrasco, y J. Urquiza Fuentes, “SRec: An animation system of recursion for algorithm courses”, en Proc. 13rd Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE 2008, pp. 225-229. J. Á. Velázquez Iturbide, A. Pérez Carrasco, y J. Urquiza Fuentes, “A design of automatic visualizations for divide-and-conquer algorithms”, Electronic 7otes in Theoretical Computer Science, no. 224, pp. 159167, enero 2009. J. A. Gila Blázquez, “AMO: Asistente interactivo para el aprendizaje del algoritmo de la mochila”, proyecto de fin de carrera, Universidad Rey Juan Carlos, Móstoles, Madrid, España, 2008. R. Sedgewick, Algorithms in Java, Addison-Wesley, 2002. M. Pablo García, “SEDA: Asistente interactivo para el aprendizaje del problema de selección de actividades”, proyecto de fin de carrera, Universidad Rey Juan Carlos, Móstoles, Madrid, España, 2008. T. H. Cormen, C. E. Leiserson, y R. L. Rivest, Introduction to Algorithms. The MIT Press, 2ª ed., 2001. M.G. Sánchez Torrubia, C. Torres Blanc, y M. A. López Martínez, “PathFinder: A visualization eMathTeacher for actively learning Dijkstra’s algorithm”, Electronic 7otes in Theoretical Computer Science, no. 224, pp. 151-158, enero 2009. P. Denning et al. “Computing as a discipline”, Communications of the ACM, vol. 32, no. 1, pp. 9-23, enero 1989. O. Debdi, y J. D. Granada, “Tutor interactivo para el aprendizaje del algoritmo voraz del árbol de recubrimiento de coste mínimo”, proyecto de fin de máster, Universidad Rey Juan Carlos, Móstoles, Madrid, España, 2008. J. Ángel Velázquez Iturbide es Licenciado en Informática (1985) y Doctor en Informática (1990) por la Universidad Politécnica de Madrid, España. Ha sido profesor desde 1985 en la Facultad de Informática de la Universidad Politécnica de Madrid. En 1997 se incorporó a la Universidad Rey Juan Carlos, donde actualmente es Catedrático de Universidad y director del Laboratorio de Tecnologías de la Información en la Educación (LITE). Sus áreas de investigación son innovación docente y software educativo para la enseñanza de la programación, visualización del software, visualización de la información, e interacción persona-ordenador. El Dr. Velázquez es miembro de IEEE Computer Society, ACM y ACM SIGCSE. También es secretario de la Asociación para el Desarrollo de la Informática Educativa (ADIE) y vocal de la Junta Directiva de la Asociación Interacción Persona-Ordenador (AIPO). Carlos A. Lázaro Carrascosa es Licenciado en Informática (2000) por la Universidad Politécnica de Madrid, España. Desde 2001 es profesor de la Universidad Rey Juan Carlos, donde actualmente es Profesor Colaborador. Sus áreas de investigación son innovación docente y software educativo para la enseñanza de la programación, y procesamiento de señal de voz. El Prof. Lázaro es miembro de la Asociación de Enseñantes Universitarios de la Informática (AENUI). Isidoro Hernán Losada es Licenciado en Ciencias Físicas (1995) por la Universidad Complutense de Madrid, España. En 1997 se incorporó al Instituto de Automática Industrial (CSIC) donde participó en el desarrollo de varios proyectos de investigación. Desde 2000 es profesor de la Universidad Rey Juan Carlos, donde actualmente es Profesor Colaborador. Sus áreas de investigación son innovación docente y software educativo para la enseñanza de la programación (informática educativa). ISSN 1932-8540 © IEEE