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