
Introduction to Recursive Programming
Manuel Rubio Sánchez
- Editorial
- CRC Press
- Año
- 2018
- Páginas
- ~414
- Nivel
- Básico
De qué trata
Texto formativo y metodológico publicado por CRC Press orientado a desmitificar la recursión, uno de los conceptos tradicionalmente más esquivos en las ciencias de la computación. Utiliza Python 3 con un estilo deliberadamente limpio, imperativo y elemental para que las lecciones puedan trasladarse fácilmente a lenguajes como Java, C++ o C#. Está dirigido a programadores principiantes e intermedios, estudiantes universitarios y desarrolladores autodidactas que conocen la sintaxis básica y las estructuras de control iterativas convencionales, pero que tienen dificultades para conceptualizar y formular soluciones recursivas por sí mismos.
El autor formula un marco sistemático de razonamiento recursivo respaldado por la inducción matemática, el diseño basado en diagramas y plantillas para descomponer problemas en casos base y llamadas inductivas. Enseña a analizar la complejidad temporal a través de relaciones de recurrencia y el método de expansión, para luego desglosar sistemáticamente los principales tipos de recursión: recursión lineal y de cola (con algoritmos como Quickselect, bisección de raíces y el algoritmo de Euclides), esquemas de divide y vencerás (Quicksort, multiplicación de matrices de Strassen, multiplicación rápida de enteros y el problema del contorno urbano o skyline), puzles clásicos y fractales (Torres de Hanói, copo de nieve de Koch, triángulo de Sierpinski), problemas de conteo combinatorio, recursión mutua aplicada a parsers descendentes y juegos de tablero, el funcionamiento interno de la pila de llamadas (call stack) junto a la memoización, y la técnica de backtracking para resolver las N reinas, puzles de Sudoku, suma de subconjuntos y el problema de la mochila.
Cada uno de los doce capítulos contiene una extensa batería de ejercicios guiados y problemas de codificación que refuerzan la intuición espacial y matemática del estudiante. El libro no desarrolla aplicaciones de software de gran escala ni proyectos comerciales, pues su objetivo es afinar la capacidad analítica y algorítmica fundamental. Resulta un recurso extraordinario para preparar pruebas técnicas de selección y superar el bloqueo habitual frente a la recursión antes de abordar estructuras de datos no lineales como árboles y grafos avanzados.
- Recursión
- Python 3
- Divide y vencerás
- Backtracking
- Inducción matemática
- Relaciones de recurrencia
- Pila de llamadas
- Memoización
- Torres de Hanói
- Algoritmos combinatorios
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

