Skip to main content

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.

GrafoRendimiento modela el flujo de estudiantes entre módulos de aprendizaje como un grafo dirigido ponderado. Cada nodo representa un módulo y cada arista lleva como peso la tasa de abandono (porcentaje de estudiantes que no llegan al módulo siguiente). La estructura interna es un diccionario de adyacencia anidado: {modulo_origen: {modulo_destino: tasa_abandono}}. La detección de cuellos de botella escanea todas las aristas del grafo y devuelve alertas para aquellas cuyo peso supera un umbral configurable, permitiendo identificar los puntos críticos del plan de estudios.

Constructor

GrafoRendimiento()
Inicializa el grafo con self.grafo = {}. No acepta parámetros.

Métodos

agregar_transicion(modulo_origen, modulo_destino, tasa_abandono)

Añade una arista dirigida y ponderada desde modulo_origen hacia modulo_destino. Si modulo_origen aún no existe como clave en self.grafo, lo crea con un dict vacío antes de registrar la arista.
modulo_origen
string
required
Nombre del módulo de origen (nodo de partida de la transición).
modulo_destino
string
required
Nombre del módulo de destino (nodo de llegada de la transición).
tasa_abandono
int | float
required
Porcentaje de estudiantes que abandonan entre modulo_origen y modulo_destino. Valor esperado en el rango 0–100.
return
None
No devuelve valor. La arista queda registrada en self.grafo.

detectar_cuellos_botella(umbral=50)

Itera sobre todas las aristas del grafo y recopila aquellas cuya tasa_abandono es mayor o igual al umbral. Devuelve una lista de cadenas de alerta listas para mostrar al usuario.
umbral
int | float
default:"50"
Porcentaje mínimo de abandono a partir del cual una transición se considera un cuello de botella. Por defecto es 50.
return
list[str]
Lista de mensajes de alerta con el formato "Alerta: {abandono}% de abandono entre '{origen}' y '{destino}'". La lista está vacía si ninguna arista supera el umbral.

Estructura interna

El atributo self.grafo es un diccionario de adyacencia de dos niveles. Tras llamar a agregar_transicion dos veces, su contenido luce así:
# Después de agregar_transicion("Módulo 1", "Módulo 2", 10)
# y agregar_transicion("Módulo 2", "Módulo 3", 65)
grafo.grafo == {
    "Módulo 1": {"Módulo 2": 10},
    "Módulo 2": {"Módulo 3": 65}
}

Ejemplo de uso

grafo = GrafoRendimiento()
grafo.agregar_transicion("Introducción", "Python Básico", 20)
grafo.agregar_transicion("Python Básico", "Estructuras de Datos", 72)  # Cuello de botella
grafo.agregar_transicion("Estructuras de Datos", "Algoritmos", 30)

alertas = grafo.detectar_cuellos_botella(umbral=50)
# ["Alerta: 72% de abandono entre 'Python Básico' y 'Estructuras de Datos'"]
Puedes pasar umbral=0 para obtener un listado de todas las transiciones registradas en el grafo (útil para auditorías o volcados de diagnóstico). A la inversa, umbral=100 suprime todas las alertas, ya que ninguna tasa de abandono puede superar el 100%.

Build docs developers (and LLMs) love