GID2017-1 | Estructuras de Datos y Algoritmos (INEDA)
Recursos
Aplicaciones desarrolladas
Esta es una herramienta de autoevaluación que permite a los estudiantes conocer su nivel de aprendizaje en los diferentes temas de la asignatura. Permite seleccionar un concepto a partir de la jerarquía de los conceptos del temario de la asignatura y se muestra una lista de todas las preguntas de test de autoevaluación sobre el concepto seleccionado.
Los estudiantes reciben como feedback si han respondido correcta o incorrectamente a las diferentes preguntas y, además, se construyen de forma automática consultas a Google a partir de la terminología extraída de los enunciados de las preguntas, lo que permite obtener feedback adicional sobre cada pregunta en particular o sobre los conceptos de la asignatura.
La acogida de esta herramienta por parte de los estudiantes fue muy positiva.
Este bot es una evolución de la herramienta anterior. Al igual que aquella, los estudiantes pueden seleccionar un concepto del temario de la asignatura, pero en lugar de ver simultáneamente todas las preguntas que tratan sobre el concepto seleccionado, éstas se muestran de forma ordenada por dificultad creciente (obtenida de forma automática según los resultados obtenidos por quienes respondieron a cada pregunta en los exámenes donde aparecieron).
Al ser un bot de Telegram, la interacción se produce en forma de conversación en la que se muestran las opciones disponibles mediante diferentes botones de selección. Además, como cada usuario mantiene una conversación única con el bot, éste almacena el estado de cada conversación, permitiendo personalizar el progreso de cada usuario de forma independiente.
-
Personalized Self-Assessment Tool Using a Telegram Bot: A Case Study on Data Structures and Algorithms (PDF, 629 KB)
Presentation for the EDUCON 2024 "Personalized Self-Assessment Tool Using a Telegram Bot: A Case Study on Data Structures and Algorithms"
-
Analysis of the Generation of Explanations for Self-assessment Exercises on Algorithm Schemes and Data Structures (PDF, 2 MB)
Poster for the INTED 2023 article "Analysis of the Generation of Explanations for Self-assessment Exercises on Algorithm Schemes and Data Structures"
-
Self-Assessment Tool with Topic-Driven Navigation for Algortithms Learning (PDF, 897 KB)
Presentation for the EDUCON 2022 "Self-Assessment Tool with Topic-Driven Navigation for Algortithms Learning"
-
Use of Advanced Natural Language Processing Techniques for the Automatic Recommendation of Reinforcement Activities (PDF, 353 KB)
Presentation for the INTED 2021 article "Use of Advanced Natural Language Processing Techniques for the Automatic Recommendation of Reinforcement Activities"
-
NLP for Data Mining In Computer Science Education
Video presentation for the EDULEARN 2020 article "Natural Language Processing for Data Mining in Computer Science Education"
-
Automatic labelling of topics in University subjects to detect which topics are more difficult to learn (PDF, 3 MB)
Presentation for the EDULEARN 2020 article "Automatic labelling of topics in University subjects to detect which topics are more difficult to learn"
-
Identifying the most difficult topics in a computer science subject taught with distance methodology (PDF, 126 KB)
Presentation for the ICERI 2018 article "Identifying the most difficult topics in a computer science subject taught with distance methodology"
ESTRUCTURAS DE DATOS Y ANÁLISIS DEL COSTE
Vídeos docentes sobre estructuras de datos y análisis del coste
-
Introducción al análisis de algoritmos
Análisis básico de algoritmos (1/4): Introducción al análisis de algoritmos
-
Métricas y órdenes de complejidad
Análisis básico de algoritmos (2/4): métricas y órdenes de complejidad
-
Cálculo del coste para algoritmos iterativos
Análisis básico de algoritmos (3/4): cálculo del coste para algoritmos iterativos.
-
Cálculo del coste para algoritmos recursivos
Análisis básico de algoritmos (4/4): Cálculo del coste para algoritmos recursivos.
-
Implementación de colecciones y secuencias.
Explicación de la implementación de las colecciones y secuencias usadas en la asignatura de EPED.
-
Implementación de listas.
Explicación de la implementación de las listas usadas en la asignatura de EPED.
-
Implementación de pilas
Explicación de la implementación de las pilas usadas en la asignatura de EPED.
-
Implementación de Colas
Explicación de la implementación de las colas usadas en la asignatura de EPED.
-
Implementación de árboles
Explicación de la implementación de los árboles usados en la asignatura de EPED.
-
Implementación de Árboles Generales
Explicación de la implementación de los árboles generales usados en la asignatura de EPED.
-
Implementación de Árboles Binarios.
Explicación de la implementación de los árboles binarios utilizados en la asignatura de EPED.
-
Recorrido de Árboles en Profundidad
Truco intuitivo para no liarnos a la hora de recorrer a mano árboles en profundidad.
ALGORITMOS
Vídeos docentes sobre diferentes algoritmos.
-
Ejecución del Algoritmo de PRIM
Ejecución del Algoritmo de PRIM para obtener el árbol de recubrimento mínimo de un grafo.
-
Ejecución del Algoritmo de KRUSKAL
Ejecución del Algoritmo de KRUSKAL para obtener el árbol de recubrimento mínimo de un grafo.
-
Ejecución del Algoritmo de DIJKSTRA
Ejecución del Algoritmo de DIJKSTRA para obtener los caminos mínimos desde un nodo a todos los demás en un grafo.
-
Programación Dinámica: Introducción
Introducción a la técnica de Programación Dinámica.
-
Programación Dinámica: Cálculo de los Coeficientes Binomiales
Ejemplo de aplicación de la Programación Dinámica al cálculo de los Coeficientes Binomiales.
-
Programación Dinámica: Devolución de Cambio de Monedas
Ejemplo de aplicación de la Programación Dinámica al problema de Devolución de Cambio de Monedas.
-
Programación Dinámica: El problema de la Mochila
Ejemplo de aplicación de la Programación Dinámica al Problema de la Mochila con objetos indivisibles.
-
Programación Dinámica: Cálculo de la Distancia de Edición
Ejemplo de aplicación de la Programación Dinámica al problema del Cálculo de la Distancia de Edición entre dos cadenas de caracteres.
-
Algoritmo de la Raíz Cuadrada en Haskell
Cómo programar en Haskell el algoritmo clásico de cálculo de la raíz cuadrada dígito a dígito.
-
Coeficientes Binomiales con el Triángulo de Pascal en Haskell
Cómo programar en Haskell el cálculo de los Coeficientes Binomiales empleando el Triángulo de Pascal.
-
Árboles, pilas y subprogramas
Relación entre el uso de subprogramas con los árboles y las pilas.
-
Boggle en Haskell
Resolución del juego Boggle en Haskell.
-
La sucesión de Kolakoski en Haskell
Ejemplo de código en Haskell para tratar con listas potencialmente infinitas
-
La Sucesión de Collatz en Haskell
Pequeño vídeo para introducir algunos conceptos básicos de la programación en Haskell
-
Transformación de un bucle a Haskell
En este vídeo se explica cómo transformar un bucle escrito en Java a una función recursiva en Haskell.
-
Case in Case en Haskell
Traducción de una estructura switch...case de Java a Haskell mediante expresiones case
-
El tipo de las funciones en Haskell
En este vídeo se explica cómo deducir de forma razonada el tipo de una función en Haskell.