El módulo de Historial cierra la plataforma con una visualización que comunica al estudiante toda la ruta de aprendizaje que ha completado, incluyendo las relaciones jerárquicas entre módulos y sus prerrequisitos. En lugar de una lista plana, el módulo reconstruye un árbol de dependencias usando un algoritmo recursivo de traversal en profundidad (depth-first), produciendo una representación indentada que hace evidente la estructura de prerequisitos de cada logro.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/carlosgomezc7/plataforma_aprendizaje/llms.txt
Use this file to discover all available pages before exploring further.
Algoritmo recursivo
La funciónrecuperar_historial_recursivo recibe el nombre de un módulo de partida, el diccionario completo de dependencias y el nivel de indentación actual. Trabaja de la siguiente manera: formatea el módulo actual con el sangrado correspondiente a su nivel y luego se llama a sí misma para cada sub-módulo dependiente, incrementando el nivel en 1 en cada llamada. El resultado de cada llamada recursiva se concatena al texto acumulado, generando naturalmente la estructura de árbol indentado.
| Parámetro | Tipo | Descripción |
|---|---|---|
modulo_actual | str | Nombre del módulo que se procesa en la llamada actual. |
historial_completo | dict | Diccionario {módulo: [lista de sub-módulos]} con toda la jerarquía. |
nivel | int | Profundidad actual en el árbol. Controla la cantidad de espacios de sangría. |
Árbol de dependencias simulado
La aplicación utiliza el siguiente diccionario precargado enmostrar_historial() para simular las relaciones completadas por el estudiante:
Bases de Datos, Lógica de Programación y Diseño UI/UX — no aparecen como claves en el diccionario, por lo que la recursión se detiene naturalmente al alcanzarlos.
Salida esperada
Al presionar “Generar Árbol de Módulos Completados”, la aplicación llama arecuperar_historial_recursivo("Proyecto Final", dependencias_completadas) y muestra el texto resultante en el área de historial:
" " * nivel), lo que produce el sangrado progresivo que permite leer de un vistazo la jerarquía de prerrequisitos.
Diagrama de flujo
El siguiente diagrama muestra el recorrido completo del algoritmo recursivo, desde la llamada inicial hasta el retorno del texto acumulado: El caminoC -- No representa el caso base: cuando modulo_actual no es una clave en historial_completo, la función sabe que ha alcanzado un nodo hoja y simplemente retorna el texto acumulado hasta ese punto sin realizar ninguna llamada adicional.
El algoritmo utiliza traversal en profundidad primero (depth-first): para cada rama del árbol desciende hasta el nodo hoja más profundo antes de pasar a la siguiente rama. Si un módulo no aparece como clave en
historial_completo, se trata automáticamente como un nodo hoja y la recursión se detiene en él sin error.Para la referencia completa de la función consulta: