Este documento describe dos enfoques de programación recursiva: recursividad por cola (tail recursion) y backtracking. La recursividad por cola elimina las llamadas recursivas repetitivas para mejorar el rendimiento, mientras que el backtracking genera todas las posibles combinaciones para encontrar una solución, retrocediendo cuando una opción no funciona. También presenta ejemplos como el factorial y resolver un laberinto usando estos enfoques.