Recursion is a mechanism that allows computers to carry out tasks repeatedly, and a very powerful problem-solving strategy that allows us to design simple, succinct, and elegant programs.
Introduction to Recursive Programming provides a detailed and comprehensive introduction to recursion. This text will serve as a useful guide for anyone who wants to learn how to think and program recursively, by analyzing a wide variety of computational problems of diverse difficulty.
This is a companion site to the official one by CRC Press. It contains a sample chapter, code, figures for instructors, detected errata, a discount code, and contact information.
The solutions manual, together with the corresponding code, is available for instructors at the CRC Press website.
If you liked the book please let your instructor know about it. You can also write a review on amazon.
If you want to download pdfs from this site I will have to grant you permission due to Google's policies. That's fine. Just request the download and I will grant you permission as soon as possible.
Focuses on the core recursive concepts of problem decomposition and induction
Provides stimulating diagrams for many problems that illustrate the process of recursive program design, and consistently follows a step-by-step methodology for developing recursive algorithms
Includes the mathematical background needed for solving recurrence relations, offering a deeper treatment of the analysis of the computational complexity of recursive algorithms
Analyzes a wide variety of computational problems of diverse difficulty
Covers classical divide and conquer and backtracking algorithms, but also provides insightful examples related to combinatorial problems, mutual recursion, fractals, or variants of classical problems
Includes a substantial number of code examples in Python 3, and contains over 120 end-of-chapter exercises with worked out solutions available for instructors
Manuel Rubio-Sánchez. Introduction to Recursive Programming. Taylor & Francis, first edition, 2018
Bibtex:
@book{Rubio2018RecursionIntroBook,
title = {Introduction to Recursive Programming},
author = {Manuel Rubio-S\'{a}nchez},
publisher = {Taylor \& Francis},
edition = {First},
year = {2018}
}