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.