Esta página web parte de un primer Trabajo de Fin de Grado cuyo objetivo era desarrollar una herramienta que facilitase la comprensión del funcionamiento de los algoritmos presentando de forma visual cómo se modifican las estructuras de datos utilizadas. De esta forma, esta herramienta se podría utilizar como complemento al estudio teórico de forma que fuera más fácil entender los pasos que va dando cada algoritmo.
Como el sistema muestra el funcionamiento de los algoritmos presentando los cambios producidos en las estructuras de datos utilizadas, la primera parte del proyecto inicial se centró en diseñar la visualización de diferentes estructuras (como matrices uni y bidimensionales, árboles, grafos, listas…), diseñando una API para poder actualizar la vista de las estructuras a medida que van produciendo los cambios. Además, estas APIs permiten introducir valores iniciales en las estructuras para ejecutar los algoritmos sobre ellos.
La segunda parte del trabajo inicial consistió en el diseño de un marco genérico en el que se pudieran ejecutar algoritmos enriquecidos con llamadas a las APIs de visualización desarrolladas en la primera parte. Se añadió una estructura de paginación mediante la cual el usuario podrá navegar hacia adelante o atrás a través de los distintos pasos dados por el algoritmo.
Este marco genérico de visualización se alimentó con varios algoritmos que ilustraban el funcionamiento de la aplicación.
Todo esto se implementó en un entorno web, mediante JavaScript, que se ejecuta en el lado cliente, con el objeto de que esté pueda ser independiente de sistema operativo y dispositivo.
Posteriormente se inició un segundo Trabajo de Fin de Grado con el objetivo de añadir una mayor variedad de algoritmos, mejorar la implementación y visualización de los mismos y añadir nuevas funcionalidades.
Se han añadido diversos ejemplos de todas las categorías así como de las estructuras de datos más importantes (grafos y montículos), se ha completado la API con nuevos componentes necesarios para algunos de los ejemplos (colas, monticulos...), y se ha mejorado la página de visualización de cada algoritmo, manteniendo la estructura de paginación (avance y retroceso) de forma que ahora la visualización ha pasado de ser vertical a horizontal. Ahora es posible visualizar al mismo tiempo toda la información necesaria para comprender el algoritmo (datos de entrada, botones de control, avance del pseudocódigo y modificación de las estructuras de datos de salida).
Además, como funcionalidad extra, se ha implementado un botón que copia al portapapeles la url del algoritmo con parámetros de entrada. La página web de cada algoritmo podrá ser llamada con parámetros de entrada añadidos a la URL (formateados en un solo objeto JSON) y la página web mostrará directamente la implementación del algoritmo con los parámetros de entrada indicados. De esta forma, las páginas de nuestros algoritmos podrán ser llamadas desde otras webs externas.