The process of solving large problems by breaking them down into smaller, more simple problems that have identical forms. Thinking Recursively: A small text to solve large problems. Concentrating on the practical value of recursion. this text, the first of its kind, is essential to computer science students’ education.
In this text, students will learn the concept and programming applications of recursive thinking. This will ultimately prepare students for advanced topics in computer science such as compiler construction, formal language theory, and the mathematical foundations of computer science.
Key Features: Concentration on the practical value of recursion. Eleven chapters emphasizing recursion as a unified concept. Extensive discussion of the mathematical concepts which help the students to develop an appropriate conceptual model. Large number of imaginative examples with solutions. Large sets of exercises.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
【One-Line Pitch】
A short, practical guide to recursion as a way of thinking, not just a programming trick—showing how to break big problems into identical smaller ones. Best for computer science students and self-taught programmers who can already write basic code but freeze when a problem calls for a recursive solution.
【Book Arc】
- **Opening (~0%–10%)**: Frames recursion as a general problem-solving idea before any code, using non-programming examples (a fundraising chain, Mondrian-style geometric art) to show the divide-and-conquer shape shared by all recursive algorithms.
- **Early (~10%–32%)**: Builds the conceptual and mathematical foundation—the three properties a problem needs to suit recursion, the holistic mindset it demands, then mathematical induction and elementary computational complexity (linear vs. binary search, big-O) to give you confidence that a recursive algorithm is correct and efficient.
- **Middle (~32%–48%)**: Moves into Pascal implementations, distinguishing functional from procedural recursion and working through classic recursive functions such as factorial and Fibonacci, including the redundancy problem in naive Fibonacci.
- **Late (~48% onward)**: Continues applying recursive decomposition to more mathematical functions and larger programming examples, with the Mondrian art program revisited as a full exercise; later chapters (per the preface) return to the mechanics of how recursion is actually executed.
- **Ending**: The excerpts do not cover the closing chapters in detail; the preface indicates Chapter 11 revisits the bookkeeping behind recursive processes, but the final material is not represented here.
【Key Takeaways】
- **Recursion is a mindset before it is a technique** (Opening): the core move is solving a large problem by reducing it to smaller problems of identical form, and this idea appears outside programming too.
- **A problem must satisfy three properties to suit recursion** (Early): the excerpts name this requirement but do not enumerate all three explicitly—treat this as a checklist to look up in the book itself.
- **The hardest part is trusting the process** (Early): beginners fail at recursion mainly from lack of faith in its correctness, so the book pairs programming practice with proof techniques to build that confidence.
- **Mathematical induction is the correctness tool** (Early): it lets you prove a recursive algorithm does what it claims, and the book presents it in a deliberately non-threatening way for math-anxious readers.
- **Complexity analysis tells you when recursion is worth it** (Early): comparing linear and binary search shows how recursive divide-and-conquer can turn a million guesses into twenty.
- **Functional recursion comes first, procedural recursion follows** (Middle): recursive functions map cleanly onto mathematical definitions (factorial, Fibonacci), making them the gentler entry point before problem-solving procedures.
- **Naive recursion can be wasteful** (Middle): the Fibonacci example exposes redundant recomputation, a caution that elegance and efficiency are not the same thing.
- **Practice is built in** (throughout): the book supplies many worked examples plus large exercise sets, so the intended path is reading alongside writing your own recursive code.
【Reading Tips】
- Skim Chapter 1's non-programming examples quickly if you already grasp divide-and-conquer, but slow down on the three-property checklist for recursive suitability—it is the practical filter for real problems.
- Deep-read the induction and complexity chapter even if math intimidates you; it is the book's answer to "why should I believe this works," and skipping it undermines everything after.
- Work the exercises rather than reading solutions passively—recursion is a skill, and the book's large exercise sets exist precisely because confidence comes from repetition.
- When you hit Fibonacci, pause to trace the redundant calls by hand; it is the clearest lesson in when recursion needs memoization or iteration instead.
- Note that examples use Pascal; if you work in another language, translate the snippets as you go—the structure transfers even when the syntax does not.
【Coverage Limits】
This guide is based on stratified excerpts covering roughly the first half of the book, so later chapters, the full Mondrian program, and the detailed treatment of recursion mechanics are only partially represented. Specific chapter titles and the complete list of the three recursion properties are not fully visible in the excerpts.
Excerpt 1
her than a new programming methodology. Given that reaction. many stu dents never learn to apply recursive techniques and proceed to more advanced courses un...
blem must have three distinct properties: *At the same time. it is important to recognize that "recursiveness" is a property of the solution to a problem and...
of the search algorithms presented above, the mechanics of each operation are sufficiently simple that we can carry out the necessary computations in a reaso...
xcursions into the field of population biology. Rendered in more modern terms, the Fibonacci problem has the following form: Assume that the reproductive cha...
For example. if our col lection of names consists of "Dick." "Jane." "Sally." "Spot." and "Puff" and the available verbs are "run." "jump," and "play." we ca...
peration on the current card. we can cross this off as well. leaving our current list of pending operations as follows: Goal Move three disks from A to B I S...
sorting an array of size N. the easiest case is when N = I. When this occurs. we have a list of a single element. which. considered all by itself. is already...
ations: MID : = (LOW + HIGH) DIV 2; MERGESORT(A, LOW, MID); MERGESORT(A, MID + 1, HIGH); MERGE(A, LOW, MID, HIGH) If we use N to represent the number of elem...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
Thinking Recursively (Eric S. Roberts)(Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share to WeChat Moments
Thinking Recursively (Eric S. Roberts)(Z-Library)
Scan the QR code with WeChat to open this book
Tap the ··· menu in the top-right corner
Choose Share to Moments
You are already in WeChat. Tap ··· in the top-right corner and choose Share to Moments.
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
Thinking Recursively (Eric S. Roberts)(Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment