• No se han encontrado resultados

Capítulo 2. Concepto y especificaciones eMathTeacher

2.4. Primeros ejemplos de aplicación de estas especificaciones

Al comienzo del capítulo 1 se mencionó una aplicación desarrollada por Samuel Gutiérrez Revenga, siguiendo el diseño y la dirección de la autora de este trabajo. Esa aplicación (ver Figura 1.0.1) simulaba los algoritmos de búsqueda en profundidad y en anchura y fue la primera de una serie de applets construidos cumpliendo todos los requisitos mínimos del

Primera parte. Herramientas informáticas de ayuda al aprendizaje de algoritmos y conceptos matemáticos

- 22 -

conjunto de especificaciones eMathTeacher, entre las que se encuentran el que simulaba el algoritmo de Fleury o el que simulaba los algoritmos de Prim y Kruskal (ver Figura 2.4.1).

Figura 2.4.1 Applet de Java para el aprendizaje de los algoritmos de Prim y Kruskal.

Estos applets eran muy básicos y sólo cumplían los requisitos mínimos, pero su utilización en el aula nos dio pistas sobre cuál era la dirección que deberíamos seguir para mejorar la eficacia de las aplicaciones. Fue entonces cuando comenzamos a investigar sobre las especificaciones que debería tener una aplicación para lograr la máxima eficacia.

La segunda generación de aplicaciones cumple los requisitos mínimos y parte de los adicionales. Entre las aplicaciones desarrolladas en ese periodo cabe destacar tres: dos de ellas dedicadas a los algoritmos de grafos y una tercera al método de Mamdani de inferencia borrosa.

La tercera es un tutorial dedicado al aprendizaje del método de Mamdani [62] y fue desarrollado por Sanjay Krishnankutty como proyecto fin de carrera de Ingeniería Informática de la Universidad Politécnica de Madrid, bajo la dirección de la autora de este trabajo. Esta aplicación (ver [98]), contiene, además de una introducción teórica, dos ejemplos de aplicación del método de Mamdani. Cada uno de estos ejemplos está formado por una serie de páginas web, diseñadas de manera que cada una de ellas contiene uno de los pasos de este método. El paso mostrado en cada página está implementado, de forma totalmente interactiva, mediante varios applets de Java encastrados en la página (ver Figura 2.4.2).

Capítulo 2. Concepto y especificaciones eMathTeacher

Figura 2.4.2 Evaluación de los antecedentes en el método de Mamdani.

La aplicación que simula el algoritmo de Fleury fue desarrollada por Leila Navascués Galante como proyecto fin de carrera de Ingeniería Informática de la Universidad Politécnica de Madrid, bajo la dirección de la autora de este trabajo. Esta aplicación (ver [100]) ya no es un applet como en los casos anteriores, sino una aplicación Java que arranca mediante Java WebStart. Eso mejora mucho su funcionalidad, permitiendo, entre otras cosas, la edición, el guardado y la recuperación de los grafos. Además cumple, aparte de los requisitos mínimos de la definición eMathTeacher, muchos de los adicionales (ver Figura 2.4.3). Como se puede apreciar en la figura, la ventana de la aplicación está dividida en cuatro paneles. Uno de ellos dedicado a la visualización del grafo, otro a la representación del algoritmo, que cambia de color mostrando el paso actual (en azul) o indicando el paso en el que se ha cometido un error (en rojo), el tercero, en ciertos momentos editable, dedicado a las estructuras de datos del algoritmo, y el cuarto el panel de mensajes.

Primera parte. Herramientas informáticas de ayuda al aprendizaje de algoritmos y conceptos matemáticos

- 24 -

La última aplicación de esta serie es la que simula el algoritmo de Dijkstra (ver Figura 2.4.4) y fue desarrollada por Miguel A. López Martínez como proyecto fin de carrera de Ingeniería Informática de la Universidad Politécnica de Madrid, bajo la dirección de la autora de este trabajo. Esta aplicación (ver [99]), que también arranca en Java Web Start, es bastante similar a la mostrada en la Figura 2.4.3, ya que fueron desarrolladas de forma paralela.

Figura 2.4.4 PathFinder, simulador del algoritmo de Dijkstra.

Después de ellas, decidimos ir un paso más allá comenzando la construcción de un entorno de aprendizaje de algoritmos de grafos que reuniera en una misma aplicación diferentes algoritmos de grafos, permitiendo la simulación de diferentes algoritmos sobre el mismo grafo y dentro de la misma aplicación.

De esta manera, y como resultado final de todo el trabajo descrito en esta sección, el conjunto de especificaciones eMathTeacher se materializó en el diseño y desarrollo del entorno de aprendizaje GRAPHs, así como del conjunto de algoritmos que en él están integrados y que serán descritos en el capítulo 3. El entorno fue diseñado por la autora de este trabajo y su directora, con la colaboración de Sonia Escribano Blanco y desarrollado por esta última como proyecto fin de carrera de Ingeniería Informática de la Universidad Politécnica de Madrid bajo la dirección de las primeras [29]. En la actualidad, Raúl Picón sigue trabajando en la mejora del sistema dentro de su proyecto fin de carrera de la misma titulación. Los algoritmos integrados en el sistema han sido desarrollados por diversos alumnos de esta misma titulación, que serán mencionados en la sección 3.7, también dentro de sus proyectos fin de carrera o como proyecto de la asignatura de sistemas informáticos, y bajo la dirección y supervisión de las ya mencionadas autora y directora de este trabajo. Por último, se debe mencionar, como aplicación del conjunto de especificaciones eMathTeacher a un tema distinto del aprendizaje de los algoritmos de grafos, un entorno de aprendizaje de álgebra lineal, en el que, por el momento, sólo ha sido integrado el método de Gauss de resolución de sistemas de ecuaciones lineales (ver Figura 2.4.5). Este entorno, así como el método de Gauss integrado en él, fue desarrollado por Raúl Selas Hernando

Capítulo 2. Concepto y especificaciones eMathTeacher

como proyecto fin de carrera de Ingeniería Informática de la Universidad Politécnica de Madrid (ver [110]), bajo la dirección de la autora de este trabajo.

Capítulo 3.

GRAPHS DESCRIPCIÓN Y

CARACTERÍSTICAS

GRAPHs es un entorno concebido para facilitar el aprendizaje activo y autónomo de los algoritmos de grafos por medio de la simulación visual de la ejecución de un algoritmo sobre un grafo. El sistema ha sido diseñado específicamente para que en él se integren aplicaciones que cumplen el conjunto de especificaciones eMathTeacher. Desde sus orígenes, GRAPHs fue proyectado como un sistema ampliable, formado por un núcleo que implementa las funcionalidades generales y una colección de algoritmos que las utilizan. El núcleo controla la interfaz gráfica, las representaciones no persistente (durante la ejecución del algoritmo) y persistente (en formato XML) del grafo, el almacenamiento del log de interacción entre el usuario y la aplicación y, además, proporciona las estructuras de datos necesarias para la ejecución del algoritmo que se está simulando.

El entorno arranca en JavaWeb Start, lo que significa que es accesible vía Web pero se comporta como una aplicación de escritorio. Además, gracias a esto, puede utilizar todo el potencial de una aplicación Java con la facilidad de uso de un applet pero sin las restricciones inherentes a éste.

La herramienta selecciona automáticamente el idioma que utiliza el sistema operativo como idioma de trabajo, eligiendo inglés en caso de no estar disponible el idioma del sistema operativo y, además, permite al usuario el cambio de idioma durante la ejecución. En la actualidad están disponibles inglés y español, pero el diseño de esta funcionalidad permite añadir fácilmente nuevos idiomas.

3.1.

Funciones de edición del grafo

GRAPHs permite la creación, edición, guardado y recuperación de grafos mediante sencillas operaciones con el ratón. Gracias a esta funcionalidad, los usuarios pueden elegir sobre qué grafo van a simular un algoritmo. En particular, la posibilidad de recuperar grafos guardados permite que el usuario ejecute directamente el algoritmo sobre un grafo creado anteriormente o descargado de algún repositorio sin necesidad de crear el grafo cada vez que desee utilizarlo.

El sistema está preparado para trabajar con grafos dirigidos y no dirigidos, con pesos o sin ellos e incluso con bucles y aristas múltiples. Las funciones de edición del grafo incluyen creación y borrado de aristas y vértices (en este último caso, el sistema borra

Primera parte. Herramientas informáticas de ayuda al aprendizaje de algoritmos y conceptos matemáticos

- 28 -

automáticamente todas las aristas incidentes con él) (ver Figura 3.1.1), cambio de posición de un vértice mediante arrastre con el ratón, cambio de peso de una arista, cambio de color de vértices y aristas y funciones de deshacer y rehacer. También permite la conversión de un tipo a otro de grafos con las correspondientes modificaciones.

Figura 3.1.1. Menú contextual que permite eliminar o renombrar un nodo durante la edición del grafo en GRAPHs.

3.2.

Interfaz gráfica

El objetivo principal en el diseño de la interfaz gráfica fue crear un entorno visualmente agradable, intuitivo y fácil de usar. Por tanto, además de la barra de menú, la aplicación dispone de una barra de herramientas y de menú contextual durante la edición del grafo (ver Figura 3.1.1).

La ventana de la aplicación está dividida en cuatro áreas o paneles: Lienzo interactivo, área de mensajes, área de estructuras de datos y panel del algoritmo (ver Figura 3.2.1). Todos ellos son ajustables, desplazables mediante scroll (que aparece automáticamente en caso de necesidad) y pueden ocultarse según las preferencias del usuario (ver Figura 3.1.1). Las áreas de trabajo principales son el lienzo interactivo y el área de estructuras de datos. En el primero se edita y visualiza el grafo y, durante la simulación de un algoritmo, permite la selección de vértices y aristas mediante clic de ratón. La segunda presenta tablas que muestran la situación actual de las estructuras de datos que maneja el algoritmo. Durante la simulación, dependiendo del algoritmo y nivel elegidos, puede permitir la edición directa para reflejar los cambios producidos en las estructuras en el paso actual.