* The first exposition on super-recursive algorithms, systematizing all main classes and providing an accessible, focused examination of the theory and its ramifications * Demonstrates how these algorithms are more appropriate as mathematical models for modern computers and how they present a better framework for computing methods * Develops a new practically-oriented perspective on the theory of algorithms, computation, and automata, as a whole
* The first exposition on super-recursive algorithms, systematizing all main classes and providing an accessible, focused examination of the theory and its ramifications * Demonstrates how these algorithms are more appropriate as mathematical models for modern computers and how they present a better framework for computing methods * Develops a new practically-oriented perspective on the theory of algorithms, computation, and automata, as a whole
Recursion is a topic that is ubiquitous in computer science. This book provides a leisurely and entertaining journey through recursion. It begins with the most basic of recursive algorithms and carefully guides the reader to more advanced applications.
This book is about nature considered as the totality of physical existence, the universe, and our present day attempts to understand it. If we see the universe as a network of networks of computational processes at many different levels of organization, what can we learn about physics, biology, cognition, social systems, and ecology expressed through interacting networks of elementary particles, atoms, molecules, cells, (and especially neurons when it comes to understanding of cognition and intelligence), organs, organisms and their ecologies? Regarding our computational models of natural phenomena Feynman famously wondered: “Why should it take an infinite amount of logic to figure out what one tiny piece of space/time is going to do?” Phenomena themselves occur so quickly and automatically in nature. Can we learn how to harness nature’s computational power as we harness its energy and materials? This volume includes a selection of contributions from the Symposium on Natural Computing/Unconventional Computing and Its Philosophical Significance, organized during the AISB/IACAP World Congress 2012, held in Birmingham, UK, on July 2-6, on the occasion of the centenary of Alan Turing’s birth. In this book, leading researchers investigated questions of computing nature by exploring various facets of computation as we find it in nature: relationships between different levels of computation, cognition with learning and intelligence, mathematical background, relationships to classical Turing computation and Turing’s ideas about computing nature - unorganized machines and morphogenesis. It addresses questions of information, representation and computation, interaction as communication, concurrency and agent models; in short this book presents natural computing and unconventional computing as extension of the idea of computation as symbol manipulation.
Presents a fresh approach to scientific understanding of information phenomena. Based on an analysis of information processes in nature, technology, and society, as well as on the main directions in information theory, this book offers a theory that synthesizes various directions into a unified system.
The unconventional computing is a niche for interdisciplinary science, cross-bred of computer science, physics, mathematics, chemistry, electronic engineering, biology, material science and nanotechnology. The aims of this book are to uncover and exploit principles and mechanisms of information processing in and functional properties of physical, chemical and living systems to develop efficient algorithms, design optimal architectures and manufacture working prototypes of future and emergent computing devices. This first volume presents theoretical foundations of the future and emergent computing paradigms and architectures. The topics covered are computability, (non-)universality and complexity of computation; physics of computation, analog and quantum computing; reversible and asynchronous devices; cellular automata and other mathematical machines; P-systems and cellular computing; infinity and spatial computation; chemical and reservoir computing. The book is the encyclopedia, the first ever complete authoritative account, of the theoretical and experimental findings in the unconventional computing written by the world leaders in the field. All chapters are self-contains, no specialist background is required to appreciate ideas, findings, constructs and designs presented. This treatise in unconventional computing appeals to readers from all walks of life, from high-school pupils to university professors, from mathematicians, computers scientists and engineers to chemists and biologists.
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, and multiple), 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 aimed at helping students master the material. 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.