Experimentacion Algoritmos Angel Velazquez PDF
Experimentacion Algoritmos Angel Velazquez PDF
Experimentacion Algoritmos Angel Velazquez PDF
algoritmos – herramientas
informáticas y evaluación de
dificultades de los alumnos
BANCO DE BUENAS PRÁCTICAS DOCENTES
J O SÉ Á NGE L V E LÁ ZQ UE Z
1. La práctica
• Título: Experimentación con algoritmos – herramientas informáticas y evaluación de dificultades de
los alumnos
• Curso Académico: 2014-15
• Asignatura: Algoritmos Avanzados
• Área/Titulación: Grado en Ingeniería Informática
• Grupo de Estudiantes: Grupo presencial del campus de Móstoles y grupo online
Se presenta un método didáctico diseñado para una asignatura de algoritmos. La experiencia consta de dos
elementos:
2. Justificación
Nuestro trabajo se inscribe dentro del campo de investigación en enseñanza de la informática, que ha sido
muy activo en años recientes (Fincher & Petre, 2004), principalmente sobre el aprendizaje de la programación.
Sin embargo, la atención dedicada al aprendizaje de los algoritmos ha sido escasa, y aún más lo es la
dedicada al aprendizaje de los algoritmos de optimización (Velázquez-Iturbide et al., 2012). Consultando
libros de texto sobre algoritmos, puede observarse que las actividades propuestas suelen consistir en diseñar
o analizar un algoritmo para un problema dado, sin distinguir niveles de aprendizaje (Anderson et al., 2001)
ni promover el uso de métodos didácticos activos. El método didáctico aquí presentado propone prácticas
de carácter innovador y contiene varias contribuciones a la didáctica de los algoritmos (aunque buena parte
de la propuesta y de la metodología de investigación puede adaptarse a otras disciplinas).
La experimentación es una de las tres tradiciones intelectuales de la informática, inspirada en las ciencias
experimentales (las otras dos tradiciones son la matemática y la ingenieril, véase Denning et al., 1989). Puede
destacarse que la experimentación con algoritmos suele limitarse a las propiedades de corrección o
eficiencia, sin medirse su optimidad (Velázquez et al., 2012). Nuestra propuesta cuenta con el antecedente
de la herramienta GreedEx, que permite experimentar con varios algoritmos voraces (Velázquez et al., 2013a).
GreedEx se utiliza en la asignatura de “Diseño y Análisis de Algoritmos” de segundo curso de los grados en
Ingeniería Informática e Ingeniería del Software. La herramienta se acompaña de materiales didácticos y una
organización precisa de las clases (Velázquez, 2013b). Este método didáctico se ha evaluado con respecto
al rendimiento académico de los alumnos (Esteban, Pizarro & Velázquez, 2014), con resultados positivos, y
se ha utilizado para identificar concepciones erróneas de los alumnos sobre optimidad (Velázquez, 2013a).
Hemos buscado generalizar el ámbito de aplicabilidad de GreedEx a cualquier algoritmo de optimización
mediante el desarrollo de una nueva herramienta interactiva, llamada OptimEx. La herramienta tiene una
interfaz de usuario muy parecida a la de GreedEx, de forma que los alumnos que han utilizado GreedEx
1
pueden aprender el uso de OptimEx con poco esfuerzo. Ambas herramientas pueden usarse de forma
combinada, primero GreedEx y luego OptimEx.
Ambas herramientas proporcionan entornos para experimentar con algoritmos de optimización. Sus
posibilidades didácticas son similares a las proporcionadas en otros campos por los micromundos (Laurillard,
2012), con la salvedad de que su componente gráfico es limitado. También pueden considerarse
herramientas cognitivas (Kommers, Jonassen & Mayes, 1992) ya que permiten una interacción activa (la
experimentación), con creación de productos (las medidas obtenidas) y el control lo tiene el usuario (el
alumno).
Una precaución importante al incorporar una nueva herramienta en la práctica docente es comprobar su
usabilidad. Una herramienta puede estar diseñada según unos objetivos educativos claros pero, si su
usabilidad es baja, los alumnos no la encontrarán adecuada para realizar las tareas docentes previstas. Si
quieren evaluarse los efectos de la herramienta, como su eficiencia educativa, conviene que antes se haya
evaluado su usabilidad y se hayan mejorado sus puntos débiles para que no interfieran en la medición
pedagógica (Velázquez, Pérez & Debdi, 2013b).
Desde un punto de vista pedagógico, la experimentación es respaldada por el constructivismo. Esta teoría
sostiene (Ben-Ari, 2001) que las personas no son pizarras en blanco donde se va grabando la información
que reciben por sus sentidos, por ejemplo, en una clase magistral o leyendo un libro. Según el
constructivismo, el conocimiento lo construye cada persona a partir de sus conocimientos previos y de la
instrucción que recibe. Los métodos activos de aprendizaje buscan que el alumno tenga un papel más activo
en la construcción del conocimiento que con las clases presenciales tradicionales. En particular, la
experimentación proporciona a los alumnos la oportunidad de contrastar personalmente resultados prácticos
con predicciones teóricas.
Según el constructivismo, podemos distinguir entre modelos conceptuales y mentales (Norman, 1983). Un
modelo conceptual es una representación del conocimiento construida por el profesor para presentársela a
los alumnos y transmitirles su conocimiento. Por tanto, un modelo conceptual debe ser preciso, completo y
coherente. Por otro lado, un modelo mental es la representación que el alumno construye sobre un modelo
conceptual, es decir, su comprensión real del mismo. Por tanto, un modelo mental con frecuencia es
incompleto y ambiguo. No existen modelos mentales correctos, ya que varían con cada persona, pero sí
podemos hablar de modelos viables o inviables, según sean capaces de explicar y comprender los
fenómenos observados. Podemos hablar de malentendidos, errores conceptuales o malas concepciones
(misconceptions) para referirnos a aspectos clave de un modelo mental que dificultan o imposibilitan su
viabilidad. Desde el punto de vista del constructivismo las malas concepciones pueden ser aprovechadas
por el profesor para ayudar a los alumnos a construir un conocimiento viable.
Uno de los resultados del trabajo aquí presentado es la identificación de dificultades y malas concepciones
de los alumnos sobre algoritmos de optimización. Dentro de la enseñanza de la informática, se han realizado
estudios muy variados sobre las dificultades de los alumnos, sobre todo en el aprendizaje de la programación
(Clancy, 2004). Sin embargo, no existen apenas trabajos sobre las malas concepciones de los alumnos sobre
algoritmos, destacando un trabajo nuestro sobre optimización y algoritmos voraces (Velázquez, 2013a).
La experiencia presentada propone una organización precisa de las prácticas, consistente en pedir a los
alumnos la resolución del mismo problema mediante distintas técnicas de diseño. De esta forma, los alumnos
no tienen que esforzarse en comprender un nuevo problema con cada práctica, facilitando que se concentren
en la técnica de diseño correspondiente. Además, disponen de un intervalo de tiempo razonable para
recopilar un conjunto de algoritmos diferentes. Esta revisita de contenidos ya conocidos tiene cierta relación
con la técnica didáctica en espiral (Powers & Powers, 1999) y, sobre todo, con la teoría de la variación (Marton
& Booth, 1997).
En nuestro caso, cada práctica permite estudiar el diseño e implementación de cada técnica, mientras que
en la última práctica de la asignatura se estudia cada técnica solamente desde el punto de vista de su
resultado, resaltando su carácter de técnica exacta (es decir, óptima) o inexacta (es decir, subóptima). La
última práctica es distinta porque su objetivo principal no es desarrollar un algoritmo sino comparar los
algoritmos desarrollados en prácticas anteriores. Se permite y fomenta que realicen la práctica en pareja para
que disfruten de los beneficios del debate en el aprendizaje colaborativo. Una buena parte de la práctica
consiste en la comparación de datos y obtención de conclusiones. Esta actividad permite de forma natural el
debate entre los dos miembros de un equipo.
2
3. Desarrollo
Objetivos
El objetivo principal de la actividad didáctica propuesta es:
“Mejorar la comprensión de las técnicas de diseño de algoritmos de optimización más comunes mediante la
experimentación.”
Los objetivos parciales de la realización de la actividad son:
3
Materiales
Los alumnos se podían descargar del campus virtual el material necesario:
- Enunciado de la práctica.
- Herramienta interactiva OptimEx y una pequeña guía de usuario (de 2 páginas).
- Parte de los materiales necesarios para la experimentación: una clase Java con un algoritmo voraz y
un fichero con 100 datos de entrada.
La memoria de la práctica debía entregarse en el plazo de una semana y debía tener la siguiente estructura:
- Los pasos que el alumno debe seguir para realizar un experimento pedido en una práctica son:
- Editar o cargar de fichero una clase de Java y compilarla.
- Seleccionar el problema que resuelven los algoritmos a comparar.
- Introducir los datos de entrada.
- Ejecutar los algoritmos sobre los datos de entrada.
- Comparar los resultados mostrados en la tabla de resumen y, quizá en la tabla histórica.Exportar
tablas en ficheros gráficos para documentar la memoria de la práctica.
4
Fig 1. Interfaz de usuario de OptimEx tras experimentar con cuatro algoritmos para el problema de la selección de
actividades ponderada
Los resultados se presentan en tres tablas: de resultados, histórica y de resumen. La primera muestra el
resultado de ejecutar los algoritmos seleccionados sobre el último juego de datos de entrada. La tabla
histórica (véase la Fig 1) muestra el resultado obtenido por cada algoritmo para cada juego de datos de
entrada. Por último, la tabla de resumen da ciertos estadísticos que resumen el comportamiento de cada
algoritmo. La Fig 2 muestra la tabla de resumen correspondiente a la ejecución mostrada (parcialmente) en
la Fig 1.
Fig 2. Tabla de resumen tras experimentar con 4 algoritmos y 100 datos de entrada para el problema de la selección de
actividades ponderada
4. Resultados
Metodología de análisis
Las memorias entregadas se analizaron de forma cualitativa según los principios de la teoría fundamentada
(Glaser & Strauss, 1967). Se realizaron tres rondas de análisis:
1. Ronda exploratoria. Se analizaron solamente los cinco informes del grupo on-line para identificar los
elementos destacados de cada práctica.
2. Se diseñó una tabla donde registrar los elementos que se consideraron importantes para el análisis.
Aunque el análisis procedió de forma secuencial, de vez en cuando se retrocedía a informes
anteriores para comprobar que un elemento nuevo o importante se había tenido en cuenta, o para
consultar en qué columna de la tabla se había anotado algún elemento.
3. A partir de la información contenida en la tabla, se elaboró una lista de preguntas que podían tener
respuesta. También se reestructuró la tabla. Por último, se hizo una última ronda de análisis. Al igual
que en la segunda ronda, el proceso de análisis fue secuencial pero con frecuentes retrocesos.
5
Los aspectos analizados finalmente fueron: errores y dificultades de los alumnos, actitudes y
autoconocimiento, y malas concepciones sobre la materia (algoritmos de optimización)..
Resultados
Se recogieron un total de 30 memorias de la práctica 5. Dos memorias (correspondientes a dos individuos
del grupo presencial) aclaraban que habían tenido dificultades graves para utilizar OptimEx, por lo que no
pudieron contestar a lo pedido en la práctica. Los 28 grupos restantes se distribuyen de la siguiente forma:
22 del grupo presencial, 5 del grupo on-line y 1 de alumnos “oyentes”.
Presentamos los resultados obtenidos desglosados en tres apartados: errores y dificultades, actitudes y
autoconocimiento, y malas concepciones.
Errores y dificultades
La primera cuestión que hemos analizado es si los grupos realizaron la experimentación de forma
satisfactoria. La Tabla I muestra los resultados globales de la práctica, distinguiendo entre quienes
identificaron correctamente los algoritmos óptimos, quienes lo hicieron parcialmente y quienes no lo
consiguieron. Decimos que un grupo identificó parcialmente los algoritmos óptimos si identificaron algunos
pero no todos (normalmente identificaron a uno entre dos).
Correcto 8 28'6%
Parcial 2 7'1%
Incorrecto 18 64'3%
- Un grupo realizó bien la experimentación pero no identificó ningún algoritmo como óptimo, ni siquiera
el algoritmo que resultó mejor en el 100% de los casos.
- Cuatro grupos marcaron como óptimo un algoritmo que es subóptimo. Como consecuencia, otros
algoritmos produjeron resultados mayores (“superóptimos”) para algunos juegos de datos.
- Trece grupos han realizado una experimentación abierta en la que ningún algoritmo ha producido
resultados óptimos.
Analizando las condiciones de experimentación utilizadas por algunos grupos, identificamos dos factores que
influyeron en algunos resultados negativos:
- Seis grupos no usaron exclusivamente los datos de entrada suministrados. Dadas las limitaciones de
OptimEx para generar datos aleatorios, algunos datos generados eran inválidos.
- Dos grupos no marcaron la casilla de maximizar.
Actitudes y autoconocimiento
Si analizamos las actitudes de los grupos ante las dificultades encontradas, hay que señalar primero que no
ha sido frecuente encontrar grupos que hayan advertido problemas. Entre estos, sólo estamos seguros de un
grupo que haya corregido los problemas. Otros dos grupos informan de que han realizado mejoras tras
detectar problemas, pero no hay constancia de estas mejoras en sus memorias.
Otros cuatro grupos detectan resultados erróneos pero los atribuyen a un algoritmo suyo, al del profesor o
incluso cambian lo aprendido para adaptarse al nuevo hallazgo.
El enunciado de la práctica sugería a los alumnos que realizaran comentarios de valoración de la práctica.
La Tabla II muestra el número de grupos que indicaron que la práctica era fácil, que expresaron su
6
satisfacción por realizar esta práctica como colofón de la asignatura (al englobar todas las técnicas de diseño
anteriores) o que fueron conscientes de algunas dificultades con la práctica.
Correcto 2 3 1
Parcial - 1 -
Incorrecto 4 5 2
Malas concepciones
Una dificultad frecuente es el propio concepto de “óptimo”. Conviene que distingamos dos usos del término:
- “Resultado óptimo” significa el máximo valor que puede obtenerse para unos datos dados (o valor
mínimo si el problema es de minimización).
- “Algoritmo óptimo” es un algoritmo que devuelve el resultado máximo (“óptimo”) siempre, es decir,
para unos datos de entrada válidos cualesquiera.
Ambos significados los han usado correctamente diversos grupos de las tres categorías de resultados
globales. Otros grupos no comentan sus hallazgos o los describen de manera trivial, de forma que no es
posible conocer su uso del lenguaje.
Sin embargo, hay algunos grupos que utilizan el término “algoritmo óptimo” para referirse al algoritmo que
calcula un resultado óptimo en un porcentaje mayor de casos. Este uso suele encontrarse en grupos que
hicieron la práctica mal (6 grupos), pero también en algunos grupos que la hicieron bien (dos). Por ejemplo:
“Según se puede ver en la tabla, el algoritmo recursivo (con poda) es un 94% óptimo en comparación con los
otros dos algoritmos, (...)”. Este uso de la palabra “óptimo” suele venir expresado como “más óptimo” o
“menos óptimo”.
Tres grupos alternan usos correctos e incorrectos del término en la memoria. Quizá esta imprecisión sea la
razón de algunas de las propuestas erróneas detectadas: que un algoritmo voraz obtenga resultados mejores
que un algoritmo exacto para el mismo problema o que ningún algoritmo obtenga resultados mejores en el
100% de los casos.
Resumen de resultados
Podemos resumir los hallazgos realizados:
- Son mayoría los grupos que han realizado mal la experimentación, aunque la frontera entre prácticas
bien y mal realizadas es difusa. Algunos grupos que la hicieron bien utilizan un lenguaje equívoco o
algoritmos que no son correctos del todo, otros grupos han encontrado un algoritmo óptimo pero no
otro que también lo es, y algunos grupos cuyos resultados son erróneos tienen soluciones cercanas
a la correcta.
- Algunos grupos realizaron mal la experimentación por no dedicar suficiente atención a las
condiciones de realización del experimento indicadas en el enunciado.
- La mayor parte de las prácticas mal realizadas no han interpretado bien los resultados mostrados en
las tablas o han utilizado algoritmos subóptimos. Lo primero puede deberse al propio formato de las
tablas o a un conocimiento superficial y frágil de la materia. Cuando se detectan errores, no se
corrigen, e incluso se hacen propuestas contradictorias con lo explicado en la asignatura.
7
- Numerosos grupos declaran su satisfacción con la organización de prácticas y su percepción de la
práctica como sencilla.
- Es bastante frecuente un uso impreciso del término “óptimo”.
Hay que añadir que OptimEx es valorado de forma muy positiva, aunque se han recogido numerosas
sugerencias de mejora.
Evaluación
Al evaluar la experiencia, primero valoramos de los resultados obtenidos (desglosados según los 3 objetivos
parciales identificados) y después hacemos algunas recomendaciones de mejora de la actividad.
- Algoritmos exactos y heurísticos, junto con las técnicas de diseño estudiadas que corresponden a
cada categoría.
- Dificultades de los alumnos para interpretar los resultados de una experimentación, sobre todo
aquellos resultados que son inadmisibles si un algoritmo es exacto o inexacto.
Diversos usos del término “óptimo”.
8
Mejoras realizadas y futuras
En el curso 2014-15 se sigue una planificación parecida de la asignatura, con la misma organización de
prácticas obligatorias. Se tiene previsto volver a realizar la experiencia completa, incorporando varias
mejoras. Ya se han incorporado varias mejoras en la práctica 5:
9
En segundo lugar, debería mejorarse OptimEx con las sugerencias recogidas en la evaluación de usabilidad
y con otras mejoras identificadas por el profesor. Aunque puede haber algunas dificultades técnicas, el
problema principal es la falta de recursos humanos. En tercer lugar, sería interesante medir si OptimEx
incrementa la motivación de los alumnos. Finalmente, quedan numerosas oportunidades para mejorar la
didáctica de los algoritmos de optimización. Dos ejemplos de retos pendientes son: dar un planteamiento
global al razonamiento de optimidad (que agrupe demostraciones formales y experimentos) o elaborar un
inventario estandarizado de conceptos sobre la materia.
5. Equipo docente
J. Ángel Velázquez 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. Actualmente está adscrito a la Escuela
Técnica Superior de Ingeniería Informática, siendo Catedrático de Universidad y
director del Laboratorio de Tecnologías de la Información en la Educación (LITE). Es
autor de más de un centenar de publicaciones nacionales e internacionales en libros,
revistas y congresos. Sus áreas de investigación son innovación docente en
programación, software educativo para la enseñanza de la programación y
visualización del software. El Prof. Velázquez es miembro de IEEE Computer Society, IEEE Education Society,
ACM y ACM SIGCSE. Actualmente es Presidente de la Asociación para el Desarrollo de la Informática
Educativa (ADIE), sociedad científica integrada en la Confederación de Sociedades Científicas de España
(COSCE).
Publicaciones y bibliografía
Publicaciones
La experiencia presentada había dado lugar, en el momento de presentar esta práctica docente, a varias
publicaciones:
J. Ángel Velázquez Iturbide, Roberto Martín Torres y Noé González Rabanal, “OptimEx: un sistema para la
experimentación con algoritmos de optimización”, SIIE’13 XV International Symposium on Computers in
Education – Proceedings, Maria José Marcelino, Maria Cristina Azebedo Gomes y António José Mendes
(eds.), 2013 (ISBN 978-989-96261-3-3), pp. 30-35.
J. Ángel Velázquez Iturbide, “Difficulties, attitudes and misconceptions on experimenting with optimization
algorithms”, Proceedings of the 2014 International Symposium on Computers in Education (SIIE'14), IEEE
Xplore, 2014 (ISBN 978-1-4799-4428-6), pp. 17-22.
J. Ángel Velázquez Iturbide, “Una evaluación de usabilidad de OptimEx”. En Serie de Informes Técnicos
DLSI1-URJC (ISSN 1988-8074), nº. 2014-02, Universidad Rey Juan Carlos.
J. Ángel Velázquez Iturbide, “Una evaluación cualitativa de la comprensión de la optimidad”. En Serie de
Informes Técnicos DLSI1-URJC (ISSN 1988-8074), nº. 2014-03, Universidad Rey Juan Carlos.
Bibliografía
ACM and IEEE Computer Society, The Joint Task Force on Computing Curricula (2013). Computer Science
Curricula 2013. http://www.acm.org/education/CS2013-final-report.pdf.
L. W. Anderson, D. R. Krathwohl, P. W. Airasian, K. A. Cruikshank, P. R. Pintrich, J. Raths y M.C. Wittrock
(2001). A Taxonomy for Learning, Teaching and Assessing: A Revision of Bloom’s Taxonomy of Educational
Objectives. Nueva York, NY: Addison Wesley Longman.
M. Ben-Ari (2001). “Constructivism in computer science education”. Journal of Computers in Mathematics and
Science Teaching, 20(1):45-73.
M. Clancy (2004). “Misconceptions and attitudes that interfere with learning to program”. En Computer Science
Education Research, S. Fincher y M. Petre (eds.), Londres: Routledge, pp. 85-100.
10
T. H. Cormen, C. E. Leiserson, R. L. Rivest y C. Stein, (2009). Introduction to Algorithms, 3ª ed. Massachusetts,
MA: The MIT Press.
P. J. Denning, D. E. Comer, D. Gries, M. C. Mulder, A.B. Tucker, A.J. Turner y P.R. Young (1989). “Computing
as a discipline”. Communications of the ACM, 32(1):9-23.
N. Esteban-Sánchez, C. Pizarro y J. Á. Velázquez-Iturbide (2014). “Evaluation of a didactic method for the
active learning of greedy algorithms”, IEEE Transactions on Education, 57(2):83-91.
S. Fincher y M. Petre (eds.) (2004). Computer Science Education Research. Londres: Routledge Falmer.
B. Glaser y A. Strauss (1967). The Discovery of Grounded Theory: Strategies for Qualitative Research.
Chicago, IL: Aldine.
J. Kleinberg y É. Tardos (2006). Algorithm Design. Cambridge, MA: Addison-Wesley.
P. A. M. Kommers, D. H. Jonassen y T. M. Mayes (eds.) (1992). Cognitive Tools for Learning, Berlín: Springer-
Verlag.
D. Laurillard (2012). Teaching as a Design Science. Nueva York, NY: Routledge.
F. Marton y S. A. Booth (1997). Learning and Awareness. Mahwah, NJ: Lawrence Erlbaum.
D. Norman (1983). “Some observations on mental models”. En Mental Models, D. Gentner y A. Stevens (eds.),
Hillsdale, NJ: Erlbaum, pp. 7-14.
K. D. Powers y D.T. Powers (1999). “Making sense of teaching methods in computer science”. 29th ASEE/IEEE
Frontiers in Education Conference – Conference Proceedings, Stipes Publishing, pp. 11b3 30-35.
J. Á. Velázquez-Iturbide (2013a). “Identification and removal of misconceptions about optimization concepts
underlying greedy algorithms”, Journal of Research and Practice in Information Technology, 45(3/4):203-217.
J. Á. Velázquez-Iturbide (2013b). “An experimental method for the active learning of greedy algorithms”, ACM
Transactions on Computing Education, 13(4):artículo 18.
J. Á. Velázquez-Iturbide, O. Debdi, N. Esteban-Sánchez y C. Pizarro (2013a). “GreedEx: A visualization tool
for experimentation and discovery learning of greedy algorithms”. IEEE Transactions on Learning
Technologies, 6(2):130-143.
J. Á. Velázquez-Iturbide, C. Pareja-Flores, O. Debdi y M. Paredes-Velasco (2012). “Interactive experimentation
with algorithms”. En Computers in Education – Volume 2, Sergei Abramovich (ed.), Nova Science Publishers,
pp. 47-70.
J. Á. Velázquez-Iturbide, A. Pérez-Carrasco y O. Debdi (2013b). “Experiences in usability evaluation of
educational programming tools”. En Student Usability in Educational Software and Games: Improving
Experiences, Carina González (ed.), Hershey, PA: IGI Global, pp. 241-260.
L. E. Winslow (1996). “Programming pedagogy - A psychological overview”. SIGCSE Bulletin, 28(3):17-22 y
25.
11