Preface

When students first encounter recursion, they often react with suspicion to the entire idea, as if they have just been exposed to some conjurer's trick rather than a critically important programming methodology. That suspicion arises because recursion has few analogues in everyday life and requires students to think in an unfamiliar way. A few students catch on to the basic idea after a few examples. Many more, however, find the topic mysterious and frustrating for a long period of time. Immobilized by their initial failure to acquire the concept, all too many students never learn to apply recursive techniques and proceed to more advanced courses unable to write programs that depend on the use of recursive strategies.

To give students a more extensive introduction to this topic that they find so difficult, I wrote Thinking Recursively while I was teaching at Wellesley College in Massachusetts. John Wiley and Sons published the book as a supplementary text in 1986, and it has remained in print ever since, even though the rapid evolution of the field means that certain features of the book— most notably its use of Pascal as its programming language—make the original edition hard to use for today's courses. To celebrate the 20th anniversary of a book that has become something of a classic, John Wiley has commissioned this new edition in which Pascal has been replaced by Java.

The point of this book is to encourage students to "think recursively." Learning to think in this ...

Get Thinking Recursively with Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.