Skip to content
Tecnología · 3o de Preparatoria

Ideas de aprendizaje activo

Introducción a la Recursividad

Los estudiantes de preparatoria aprenden mejor la recursividad cuando ven su efecto visual e interactivo. Trabajar con ejemplos concretos como el factorial o las Torres de Hanoi evita que confundan el concepto con abstracciones teóricas. La manipulación directa de funciones que se llaman a sí mismas convierte una idea compleja en un proceso tangible y repetible.

Aprendizajes Esperados SEPSEP EMS: Resolución de Problemas ComplejosSEP EMS: Lógica de Programación
25–45 minParejas → Toda la clase4 actividades

Actividad 01

Enseñanza entre Pares30 min · Parejas

Enseñanza entre Pares: Codificación del Factorial Recursivo

Los estudiantes trabajan en parejas para escribir una función recursiva del factorial en Python. Primero definen la condición base (factorial de 0 o 1 es 1), luego agregan la llamada recursiva (n * factorial(n-1)). Prueban con valores pequeños y trazan la pila en papel.

¿Cómo identificar la condición base en un problema recursivo para evitar bucles infinitos?

Consejo de FacilitaciónDurante la actividad de pares de 'Codificación del Factorial Recursivo', pide a los estudiantes que escriban manualmente cada llamada en papel antes de codificar para reforzar la visualización del proceso.

Qué observarPresenta a los estudiantes el siguiente pseudocódigo: `funcion calcular(n): si n == 0: retornar 1; sino: retornar n * calcular(n-1);`. Pide que escriban en un papel la salida esperada si se llama a `calcular(3)` y que identifiquen la condición base y el paso recursivo.

ComprenderAplicarAnalizarCrearAutogestiónHabilidades de Relación
Generar Clase Completa

Actividad 02

Cabezas Numeradas Juntas45 min · Grupos pequeños

Grupos Pequeños: Torres de Hanoi Simplificadas

En grupos de 3-4, simulan el problema de las Torres de Hanoi con 3 discos usando bloques. Identifican la recursión: mover n-1 discos, mover el disco grande, mover n-1 de nuevo. Codifican una versión simple y discuten la pila de llamadas.

¿De qué manera la recursividad simplifica la expresión de soluciones para problemas con estructura auto-similar?

Consejo de FacilitaciónEn 'Torres de Hanoi Simplificadas', usa un tablero físico con discos de distintos tamaños para que los grupos repliquen el movimiento identificado en el algoritmo recursivo.

Qué observarEntrega a cada estudiante una tarjeta con un problema simple (ej. calcular el 4to término de Fibonacci). Pide que escriban la definición de la función recursiva en Python y que describan en una oración cómo la pila de llamadas ayuda a obtener el resultado final.

RecordarComprenderAplicarHabilidades de RelaciónAutogestión
Generar Clase Completa

Actividad 03

Cabezas Numeradas Juntas35 min · Toda la clase

Clase Completa: Trazado de Fibonacci Recursivo

Proyecta un código de Fibonacci recursivo. La clase traza colectivamente las llamadas para fib(5), dibujando la pila en la pizarra. Discuten ineficiencias y proponen mejoras como memoización básica.

¿Por qué es crucial gestionar el uso de la pila de llamadas en funciones recursivas?

Consejo de FacilitaciónDurante el 'Trazado de Fibonacci Recursivo', asigna a cada estudiante un paso específico de la serie para que lo calcule y comparta en voz alta, creando una narrativa colectiva de la ejecución.

Qué observarPlantea la siguiente pregunta al grupo: '¿Qué sucedería si olvidamos definir la condición base en una función recursiva?'. Guía la discusión hacia el concepto de bucle infinito y el desbordamiento de la pila de llamadas, pidiendo ejemplos concretos.

RecordarComprenderAplicarHabilidades de RelaciónAutogestión
Generar Clase Completa

Actividad 04

Cabezas Numeradas Juntas25 min · Individual

Individual: Depuración de Recursiones Erróneas

Cada estudiante recibe código recursivo con errores (falta base, pila desbordada). Identifican y corrigen, ejecutan en su computadora y comparan resultados con pares cercanos.

¿Cómo identificar la condición base en un problema recursivo para evitar bucles infinitos?

Qué observarPresenta a los estudiantes el siguiente pseudocódigo: `funcion calcular(n): si n == 0: retornar 1; sino: retornar n * calcular(n-1);`. Pide que escriban en un papel la salida esperada si se llama a `calcular(3)` y que identifiquen la condición base y el paso recursivo.

RecordarComprenderAplicarHabilidades de RelaciónAutogestión
Generar Clase Completa

Plantillas

Plantillas que acompañan estas actividades de Tecnología

Úsalas, edítalas, imprímelas o compártelas.

Algunas notas para enseñar esta unidad

La recursividad se enseña mejor comenzando con problemas simples y aumentando gradualmente la complejidad. Evita introducir múltiples conceptos simultáneamente, como condiciones base múltiples o memorización, hasta que los estudiantes dominen el flujo básico. La investigación muestra que los estudiantes comprenden mejor el concepto cuando primero resuelven problemas donde la recursión es obvia (como factorial) antes de abordar problemas más abstractos (como árboles binarios).

Los estudiantes demuestran comprensión al identificar correctamente la condición base y el paso recursivo en funciones propias o ajenas. Explican cómo la pila de llamadas gestiona la memoria durante la ejecución y comparan la eficiencia de soluciones recursivas versus iterativas usando datos empíricos.


Cuidado con estas ideas erróneas

  • Durante la actividad 'Pares: Codificación del Factorial Recursivo', escucha afirmaciones como 'si no ponemos un return en el paso base, el programa no para'. Usa el código que escriben para mostrar que la condición base es una rama que devuelve un valor concreto, no solo un 'parar'.

    Guía a los estudiantes a agregar impresiones en pantalla antes y después de cada llamada recursiva en su código. Así visualizan cómo la condición base corta el flujo y evita el infinito, comparando ejecuciones con y sin esta condición.

  • Durante la actividad 'Grupos Pequeños: Torres de Hanoi Simplificadas', algunos estudiantes pensarán que la recursión es siempre 'más rápida' que los bucles. Usa el cronómetro del teléfono para medir tiempos de ejecución con diferentes números de discos.

    Pide a los grupos que registren el tiempo que tarda su función recursiva en resolver 5, 6 y 7 discos. Comparen estos datos con implementaciones iterativas equivalentes y discutan por qué la recursión, aunque elegante, no siempre es eficiente.

  • Durante el 'Trazado de Fibonacci Recursivo', algunos estudiantes asumirán que Fibonacci solo necesita una condición base. Usa tarjetas con los primeros cinco términos de la serie para que identifiquen los casos especiales.

    En la pizarra, dibuja el diagrama de llamadas para fib(4) y fib(5). Señala cómo las dos condiciones base (fib(0) y fib(1)) manejan los casos iniciales, mostrando que múltiples bases son necesarias para problemas con patrones no uniformes.


Metodologías usadas en este resumen