CRITERIO

Con otros · ejemplo: Agregado Pedido

Enseñar: pato de goma y diálogo socrático

Explica tu código línea por línea a alguien (o algo) que solo hace preguntas.

Evidencia moderada90 min en total

Explicar a un pato de goma qué hace cada línea revela supuestos que no sabías que tenías. El diálogo socrático lo lleva más lejos: alguien que no da respuestas, solo pregunta qué pasaría si. Prepararse para enseñar ya mejora el aprendizaje.

Para quién
Todos.
Fuente
Fiorella y Mayer (2013), The Relative Benefits of Learning by Teaching; Hunt y Thomas (1999), The Pragmatic Programmer
Estudios controlados con resultados favorables, con matices según contexto.
Probar el ejemplo

El plan en el tiempo

Qué haces antes, durante y después. Mueve t y mira qué ya ocurrió.

Antes de encontrar el concepto t<0

Esta metodología no prepara nada antes: llegas en frío al concepto.

El encuentro t=0

  1. t=0

    Lees o escuchas la explicación del concepto

    Explicación · 30 min · El primer encuentro: alguien (o un texto) explica el concepto.

Después: consolidar t>0

  1. t=+1

    Explicas tu agregado al pato, línea por línea

    Enseñar · 25 min · Preparar y dar una explicación a otro organiza el conocimiento (efecto protegido).

  2. t=+4

    Respondes las preguntas socráticas de un compañero

    Enseñar · 25 min · Preparar y dar una explicación a otro organiza el conocimiento (efecto protegido).

  3. t=+10

    Explicas de memoria, sin código delante

    Recuperación · 10 min · Sacar de memoria sin mirar fortalece el recuerdo más que volver a ver (efecto de prueba).

Trayectoria frente al método de control

0255075100-30+3+7+14+21+30
Enseñar: pato de goma y diálogo socráticoReleer y subrayar (control)

Se aplica en la ruta

Úsala programando, no solo leyendo

Pruébalo ahora

Agregado Pedido

Explica el agregado al pato de goma. Solo hace preguntas.

pedido.py · explícalo línea por línea

1class Pedido:
2    def __init__(self, id: PedidoId, limite: Monto):
3        self.id = id
4        self._lineas: list[Linea] = []
5        self._limite = limite
6        self._confirmado = False
7
8    def agregar(self, linea: Linea) -> None:
9        if self._confirmado:
10            raise PedidoYaConfirmado(self.id)
11        if self.total() + linea.subtotal > self._limite:
12            raise LimiteExcedido(self._limite)
13        self._lineas.append(linea)
14
15    def confirmar(self) -> None:
16        if not self._lineas:
17            raise PedidoVacio(self.id)
18        self._confirmado = True

El pato pregunta · 1/5

¿Qué problema resuelve esta clase? Dilo sin nombrar ningún patrón.

El pato no da respuestas. Solo pregunta. Lo que descubras al explicar es tuyo.

Aplícalo esta semana

Con tu propio código de Python

Cuándo no usarla

Para memorizar detalles: enseñar organiza, no reemplaza a la recuperación.

Señal de que funciona

Encuentras el error a mitad de la explicación, antes de que te respondan.

Tu decisión

¿Enseñar: pato de goma y diálogo socrático te hizo aprender?

Responde después de probar el ejemplo. Se guarda solo en este navegador.