tiempo/
Núcleo compartido
Instante, Fase, LineaDeTiempo y Protagonista. Todos hablan el mismo idioma sobre t<0, t=0 y t>0.
Fundamentos
tiempo/
Núcleo compartido
Instante, Fase, LineaDeTiempo y Protagonista. Todos hablan el mismo idioma sobre t<0, t=0 y t>0.
ejecucion/
Motor
Ejecuta Python real con sys.settrace: pila de marcos, objetos con dirección, orden de evaluación y explicación de cada paso. El mismo archivo corre en el navegador con Pyodide.
ruta/
Contexto principal
16 lecciones de Hola mundo a un agregado con TDD. Una prueba verifica que cada predicción coincida con lo que Python imprime de verdad.
metodologias/
Cómo se aprende
El conocimiento como protagonista. 19 metodologías como planes en el tiempo y combinar() para tu mezcla.
decisiones/
Propuesta A
Una decisión técnica: fuerzas y opciones en t<0, elección justificada en t=0, consecuencias en t>0.
aprendiz · codigo/
Propuestas B y C
Quien aprende (acertar sin saber por qué suma poco) y un módulo cuyo costo de cambio crece con la deuda.
web/
Presentación
Exporta lecciones, trazas y trayectorias a JSON y copia motor.py para el navegador. La app no recalcula: muestra.
El protagonista
Event sourcing: nadie guarda «cómo estabas». Se guarda lo que te pasó, y cualquier instante del pasado o del futuro planificado se puede consultar sin copias desincronizadas.
tiempo/protagonista.py
1class Protagonista(ABC, Generic[S]): 2 """No guarda su estado: guarda lo que le pasó.""" 3 4 def estado_en(self, t: Instante) -> S: 5 return reduce(self._aplicar, self._linea.hasta(t), self._estado_inicial()) 6 7 def donde_esta(self, t) -> Ubicacion[S]: 8 return Ubicacion(instante=t, fase=t.fase, estado=self.estado_en(t))
TDD con evidencia
Los parámetros del modelo pueden cambiar; las comparaciones que la ciencia sostiene, no. Si un cambio contradice el efecto de prueba o el espaciado, CI falla.
tests/test_metodologias.py
1def test_efecto_de_prueba_recuperar_retiene_mas_que_releer(): 2 # Roediger y Karpicke (2006) 3 assert medir("recuperacion", 7).retencion > medir("relectura", 7).retencion 4 5def test_ilusion_de_fluidez_releer_da_la_mayor_confianza_sin_respaldo(): 6 brechas = {m.id: m.vivir().medir(7).brecha for m in METODOLOGIAS} 7 assert max(brechas, key=brechas.get) == "relectura" 8 9def test_espaciar_vence_a_concentrar_a_largo_plazo(): 10 # Cepeda et al. (2006) 11 assert medir("espaciada", 30).retencion > medir("recuperacion", 30).retencion
Supuestos del modelo, a la vista
Retención: curva del olvido exponencial; cada actividad multiplica la estabilidad (más si ya olvidaste un poco: dificultad deseable), y lo que se comprende se olvida más lento. Las demás dimensiones van de 0 a 100 con rendimientos decrecientes. Es un modelo ilustrativo para comparar, no una medición.
| Actividad | Fase | Min | Estab. × | Comp. | Transf. | Crit. | Conf. | Por qué |
|---|---|---|---|---|---|---|---|---|
| Pregunta previa | t<0 | 5 | prep +0.2 | · | · | +4 | · | Preguntarse antes activa lo que ya sabes y orienta la atención (efecto de pretest). |
| Predicción | t<0 | 5 | prep +0.25 | · | · | · | -2 | Comprometerse con una predicción crea una expectativa que el resultado confirma o rompe. |
| Intento sin instrucción | t<0 | 20 | prep +0.35 | · | +8 | · | -10 | Fallar antes de la explicación revela qué partes del problema importan (fracaso productivo). |
| Pre-mortem | t<0 | 10 | prep +0.15 | · | · | +10 | · | Imaginar que ya fracasó obliga a nombrar riesgos que el optimismo oculta. |
| Explicación | t=0 | 30 | — | +35 | +8 | +8 | +25 | El primer encuentro: alguien (o un texto) explica el concepto. |
| Ejemplo resuelto | t=0 | 30 | — | +45 | +8 | +6 | +25 | Ver un problema resuelto paso a paso reduce la carga cognitiva del principiante. |
| Relectura | t>0 | 10 | 1.1 | +2 | · | · | +12 | Releer da familiaridad, no recuerdo: se siente como aprender (ilusión de fluidez). |
| Recuperación | t>0 | 10 | 1.6 +1.8·olvido | +4 | · | · | +4 | Sacar de memoria sin mirar fortalece el recuerdo más que volver a ver (efecto de prueba). |
| Autoexplicación | t>0 | 15 | 1.4 | +12 | +4 | +10 | +3 | Explicar con tus palabras obliga a conectar ideas y expone huecos. |
| Aplicación | t>0 | 30 | 1.5 | +6 | +12 | +6 | +5 | Usar el concepto en un problema nuevo construye transferencia. |
| Práctica intercalada | t>0 | 15 | 1.4 +1.4·olvido | · | +12 | +8 | -2 | Mezclar tipos de problemas enseña a elegir qué técnica aplica; se siente más difícil. |
| Análisis de errores | t>0 | 15 | 1.3 | +8 | +4 | +10 | · | Encontrar y explicar un error enseña los límites de una regla. |
| Ordenar código | t>0 | 10 | 1.25 | +6 | · | · | +3 | Reordenar líneas dadas enfoca en la estructura sin el costo de escribir todo. |
| Práctica deliberada | t>0 | 25 | 1.45 | +4 | +10 | +4 | +4 | Repetir un ejercicio acotado con meta y retroalimentación, al borde de tu capacidad. |
| Enseñar | t>0 | 25 | 1.5 | +10 | +4 | +8 | +4 | Preparar y dar una explicación a otro organiza el conocimiento (efecto protegido). |
| Contrafactual | t>0 | 15 | 1.2 | · | +8 | +14 | · | Preguntar qué habría pasado con la otra opción hace visible el porqué. |
| Reflexión escrita | t>0 | 10 | 1.15 | +4 | · | +12 | · | Escribir qué esperabas y qué pasó convierte experiencia en criterio. |
Las tres primeras propuestas
A · La Decisión
Sin dos opciones no hay decisión; toda elección cita las fuerzas que la justifican. Alimenta la demo de pre-mortem.
B · El Aprendiz
Acertar y justificar suma 10; acertar sin saber por qué, 2; equivocarse razonando, 4. Inspira la valoración de cada metodología.
C · El Módulo de código
Refactorizar sin cobertura está prohibido por el dominio. Su simulación muestra el costo de cambio a la derecha.
terminal
1pip install -e ".[dev]" 2pytest 3criterio metodos 4criterio metodo espaciada --t 7 5criterio combinar espaciada feynman premortem 6criterio exportar
Propuesta C en simulación
1.0 es tocar código limpio y probado. Mueve t.
TDD
costo 1.00 · deuda 0 · riesgo bajo
Pruebas después
costo 3.05 · deuda 4 · riesgo alto
Sin pruebas
costo 7.60 · deuda 8 · riesgo alto