Introduction to Recursive Programming

Manuel Rubio-Sanchez

  • 出版商: CRC
  • 出版日期: 2017-09-06
  • 售價: $2,980
  • 貴賓價: 9.5$2,831
  • 語言: 英文
  • 頁數: 450
  • 裝訂: Paperback
  • ISBN: 1498735282
  • ISBN-13: 9781498735285
  • 相關分類: Computer Graphics
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

Recursion is one of the most fundamental concepts in computer science and a key programming technique that allows computations to be carried out repeatedly. Despite the importance of recursion for algorithm design, most programming books do not cover the topic in detail, despite the fact that numerous computer programming professors and researchers in the field of computer science education agree that recursion is difficult for novice students.

 

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.

 

It contains specific chapters on the most common types of recursion (linear, tail, multiple, and mutual), as well as on algorithm design paradigms in which recursion is prevalent (divide and conquer, and backtracking). Therefore, it can be used in introductory programming courses, and in more advanced classes on algorithm design. The book also covers lower-level topics related to iteration and program execution, and includes a rich chapter on the theoretical analysis of the computational cost of recursive programs, offering readers the possibility to learn some basic mathematics along the way.

 

It also incorporates several elements to foster pedagogical effectiveness. First, it contains a larger collection of simple problems in order to provide a solid foundation of the core concepts, before diving into more complex material. In addition, one of the book's main assets is the use of a step-by-step methodology, together with specially designed diagrams, for guiding and illustrating the process of developing recursive algorithms. Furthermore, the book covers combinatorial problems and mutual recursion. These topics can broaden students' understanding of recursion by forcing them to apply the learned concepts differently, or in a more sophisticated manner.

 

The code examples have been written in Python 3, but should be straightforward to understand for students with experience in other programming languages. Finally, worked out solutions to over 120 end-of-chapter exercises are available for instructors.

 

 

About the Author

 

Manuel Rubio-Sánchez received MS and PhD degrees in computer science from Universidad Politécnica de Madrid in 1997 and 2004, respectively. Since, he has had a faculty position at Universidad Rey Juan Carlos (Madrid, Spain), where he is currently an associate professor in the Superior Technical School of Computer Science. His teaching has focused on computer programming, ranging from introductory CS1 courses to more advanced courses on algorithms and data structures. He has published several research studies related to recursion in the computer science education conferences. His other research interests include machine learning, and exploratory data analysis and visualization. Finally, he has been a lecturer at St. Louis University (Madrid campus), and has carried out research visits at Université de Cergy-Pontoise (Paris), and the University of California, San Diego.

 

商品描述(中文翻譯)

遞迴是計算機科學中最基本的概念之一,也是一種重要的編程技術,可以重複進行計算。儘管遞迴對於算法設計的重要性,大多數編程書籍並未詳細介紹該主題,儘管許多計算機科學教育領域的教授和研究人員都認為遞迴對於初學者來說是困難的。

《遞迴編程入門》提供了詳細全面的遞迴介紹。本書將對任何想要學習如何思考和遞迴編程的人提供有用的指南,通過分析各種不同難度的計算問題。

本書包含了關於最常見類型的遞迴(線性、尾遞迴、多重遞迴和互遞迴)的專門章節,以及遞迴普遍存在的算法設計範式(分治法和回溯法)。因此,它可以用於入門編程課程,以及更高級的算法設計課程。本書還涵蓋了與迭代和程序執行相關的低級主題,並包括一個關於遞迴程序計算成本的理論分析的豐富章節,讓讀者有機會在學習過程中學習一些基本數學知識。

本書還包含了一些促進教學效果的元素。首先,它包含了更多的簡單問題集,以便在深入研究更複雜材料之前,為核心概念打下堅實基礎。此外,本書的一個主要特點是使用逐步方法和特別設計的圖表,引導和說明開發遞迴算法的過程。此外,本書還涵蓋了組合問題和互遞迴。這些主題可以通過迫使學生以不同的方式應用所學概念,或以更複雜的方式應用,來擴大學生對遞迴的理解。

代碼示例使用Python 3編寫,但對於有其他編程語言經驗的學生來說,理解起來應該很簡單。最後,本書提供了超過120個章末練習的解答,供教師使用。

關於作者:
Manuel Rubio-Sánchez於1997年和2004年分別獲得馬德里理工大學的計算機科學碩士和博士學位。自那時以來,他一直在馬德里的雷胡安卡洛斯大學擔任教職,目前是計算機科學高等技術學院的副教授。他的教學範圍從入門的CS1課程到更高級的算法和數據結構課程。他在計算機科學教育會議上發表了幾篇與遞迴相關的研究論文。他的其他研究興趣包括機器學習、探索性數據分析和可視化。最後,他曾在聖路易斯大學(馬德里校區)擔任講師,並在法國塞爾吉-龐圖瓦茲大學和加利福尼亞大學聖地亞哥分校進行過研究訪問。