Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 772 papers for “Recursion (computer science)”

Computer science : recursion

Duong, Anh · Theseus (Ammattikorkeakoulujen) · 2012

The purpose of this thesis is to analyze recursion in the field of computer science field. There are three sections in this thesis which are introduction, examples of using recursion and applying recursion. 
\n The first sectionintroduces recursion and related topics from general to details. First of all, definitions of computer science, algorithm, mathematical induction and recursion are introduced. Then, recursive function, algorithm and data types are discussed. Finally, there is the classical comparison between iterative and recursive methods.
\nThe second section contains three examples of using the naïve recursive method and recursion’s developed branches such as the divide and conquer algorithm and dynamic programming. Those examples are the eight queens puzzle and finding the maximum and the longest increasing subsequence.
\nThe third section demonstrates the full potential of using recursion with functional programming to make the code more concise and easier to understand. In this section, the examples of the quicksort algorithm are shown in both types (functional and imperative) of programming.
\nIn this thesis, all algorithms are described by using functions written in a certain programming language. The algorithms in the first and the second sections are described by functions written in Java. The choice of Java programming language here is based on the fact that Java is very popular and easy to understand. In the last section, the functions are written in the Scala programming language. The Scala language was chosen instead of the Java language because Scala supports both the imperative style and the functional style of programming. That feature assists in making the comparison more noticeable. In addition to the codes in the examples in the second section, there are also the full source code written in Java and some screenshots in the Appendix which were captured during the process of writing this thesis as proofs to the reality of the functions.

Cited by 0

Learning Recursion from Music and Music from Recursion

Nikhil Sharma, Sridhar Chimalakonda · 2018

Recursion is a fundamental concept in several courses in computer science but is often one of the most confusing concepts for beginners. On the other hand, music is universal and appeals to most people. This paper is a novel attempt to understand and utilize the synergy between music and computer science to teach recursion to freshman students. The paper presents the retrograde strategy and collaboration techniques used during the composition of music and explains how these ideas can be used to learn recursion and stack data structure. We taught recursion to 30 first year undergraduate students in computer science using the normal approach and then demonstrated the control flow using the retrograde strategy. We found that around 81.2% preferred correlation with music. We see this as an initial step towards a deeper correlation of composing music and composing code.

Cited by 7

Discrete mathematics for computer science

Kenneth P. Bogart, Clifford Stein, Robert L. Scot Drysdale · 2006

Introduction.- Counting.- Cryptography and Number Theory.- Reflections on Logic and Proof.- Induction, Recursion and Recurrences.- Probability.- Graphs.

Cited by 19

Recursion

Paul R. Wellin · Cambridge University Press eBooks · 2013

Many important and classical problems in mathematics and computer science are defined, or have solutions in terms of recursive definitions: the factorial function, the natural numbers, many divide-and-conquer algorithms, and parsers for programming languages all use recursion in fundamental ways. A function is defined using recursion if in its definition, it makes calls to itself. The great advantage of recursive definitions is their simplicity and directness. Their one major drawback however, is how quickly the depth and complexity can increase to the point of making your computations intractable.

Cited by 0

Phenomenological Primitives in Introductory Computer Science Students' Understanding of Recursion

Jie Chao · Libra · 2012

Recursion is a difficult concept to learn in introductory computer science courses. Students frequently construct maladaptive mental models of recursion that interfere with their performance and subsequent skill development. Common explanations assume that these mental models are not decomposable mental structures. However, such an assumption fails to account for the inconsistent manifestation of these mental models across similar tasks. This study applies the knowledge-in-pieces perspective (diSessa, 1993) to explain students' inconsistent performance on evaluation of recursive function. According to this perspective, phenomenological primitives (p-prims), experientially acquired tacit elemental knowledge structures, play dominant roles in naïve knowledge systems. Various task features may differentially constrain their influence, which renders them productive in some instances and problematic in others. This subtle mechanism gives rise to the inconsistent performance across tasks that target the same concept. Reanalysis of data from previous studies suggests a potential p-prim that plausibly accounts for students' inconsistent performance within and across similar tasks. This p-prim reflects intuitive understandings of agentive causality (i.e. agent takes an action on a patient to generate certain effect) that commonly account for misunderstandings in physics concepts (diSessa, 1993). To evaluate this general hypothesis of a computer-as-agent p-prim, participants completed four tasks representing varying levels of constraint on their reasoning and participated in clinical interviews to report and explain their thought processes. It was expected that more participants would demonstrate the normative mental models of recursion in the high-constraint tasks than in the low-constraint tasks, because the computer-as-agent p-prim would be more likely to interfere with appropriate analysis under lower constraint. Further, participants' interpretations of the recursive functions were expected to demonstrate characteristics associated with p-prim-generated interpretations. Results largely support the hypothesized p-prim. Participants' inconsistent performances were successfully explained by various modes of coordination between the computer-as-agent p-prim and relevant programming schemas. This finding advanced our understanding of students' difficulties in learning recursive programming and pointed to ways to improve instructional practices. Note: Abstract extracted from PDF text

Cited by 0Open access

USING RECURSION AND MEMOIZATION IN PROFILING EDUCATION IN COMPUTER SCIENCE

Stanaila Neykova-Karagaeva, Svetlozar Tsankov · ICERI proceedings · 2023

Appears in: ICERI2023 Proceedings Publication year: 2023Pages: 4462-4469ISBN: 978-84-09-55942-8ISSN: 2340-1095doi: 10.21125/iceri.2023.1116Conference name: 16th annual International Conference of Education, Research and InnovationDates: 13-15 November, 2023Location: Seville, Spain

Cited by 0

Computer Science Logo Style

Brian J. Harvey · The MIT Press eBooks · 1997

This series is for people—adults and teenagers—who are interested in computer programming because it's fun. The three volumes use the Logo programming language as the vehicle for an exploration of computer science from the perspective of symbolic computation and artificial intelligence. Logo is a dialect of Lisp, a language used in the most advanced research projects in computer science, especially in artificial intelligence. Throughout the series, functional programming techniques (including higher order functions and recursion) are emphasized, but traditional sequential programming is also used when appropriate.In the second edition, the first two volumes have been rearranged so that illustrative case studies appear with the techniques they demonstrate. Volume 1 includes a new chapter about higher order functions, and the recursion chapters have been reorganized for greater clarity. Volume 2 includes a new tutorial chapter about macros, an exclusive capability of Berkeley Logo, and two new projects. Throughout the series, the larger program examples have been rewritten for greater readability by more extensive use of data abstraction.In Volume 3 "Beyond Programming", the reader learns that computer science includes not justprogramming computers, but also more formal ways to think about computing, such as automata theory and discrete mathematics. In contrast to most books on those subjects, this volume presents the ideas in the form of concrete, usable computer programs rather than as abstract proofs. Examples include a program to translate from the declarative Regular Expression formalism into the executable Finite State Machine notation, and a Pascal compiler written in Logo.The Logo programs in these books and the author's free Berkeley Logo interpreter are available via the Internet or on diskette.

Cited by 63

Recursion Theory

J. R. Shoenfield · 2018

This volume, which ten years ago appeared as the first in the acclaimed series Lecture Notes in Logic, serves as an introduction to recursion theory. The fundamental concept of recursion makes the idea of computability accessible to a mathematical analysis, thus forming one of the pillars on which modern computer science rests. The clarity and focus of this text have established it as a classic instrument for teaching and self-study that prepares its readers for the study of advanced monographs and the current literature on recursion theory.

Cited by 0

Recursion and Topology in . . .

Veronica Becher, Serge Grigorieff · 2004

In the context of possibly infinite computations yielding finite or infinite (binary) outputs, the space 2 6! =2 ∗ ∪ 2! appears to be one of the most fundamental spaces in Computer Science. Though underconsidered, next to 2! , this space can be viewed (Section 3.5.2) as the simplest compact space native to computer science. In this paper we study some of its properties involving topology and computability. Though 2 6! can be considered as a computable metric space in the sense of computable analysis, a direct and self-contained study, based on its peculiar properties related to words, is much illuminating. It is well known that computability for maps 2! → 2! reduces to continuity with recursive

Cited by 0

Reconsidering Recursion

Werven, J.F. van · Utrecht University Repository (Utrecht University) · 2015

The current study investigates to what extent the term 'recursion' is perceived differently among scholars from different fields. It is shown that recursion started out as a mathematical term, became a well-known tool in computer science and linguistics and then moved further to psychology and cognitive biology. Due to misinterpretations, the term lost some important characteristics along the way, such as the fact that it is a procedure rather than a structure. It is furthermore investigated to what exactly the different understandings are due by considering the historical background that they draw upon, and it appears that there are at least three reasons for misunderstanding recursion.

Cited by 0Open access

Recursion or Iteration

Ramy Esteero, Mohammed Rabbul Hossain Khan, Mohamed Mohamed et al. · 2018

Recursion and iteration are two key topics taught in introductory Computer Science. This is especially so for CS2 students, as CS2 is the course where recursion is typically taught and where control-flow concepts are solidified. When asked to solve a problem that could feasibly be solved with recursion or iteration, what do CS2 students choose to do? And how does this choice relate to the correctness of their code? This paper provides one answer to these questions through an analysis of student exam responses to a problem on finding deepest common ancestors in trees.

Cited by 9

A Second Course in Computer Science with Modula-2

Daniel D. McCracken, William I. Salmon · Medical Entomology and Zoology · 1987

The Program Development Process Arrays and Records Sets and Strings Stacks and Queues Recursion Linked Lists Trees Sorting Searching Graphs.

Cited by 2

Toward Using Games to Teach Fundamental Computer Science Concepts

Edgington, Jeffrey Michael · Digital Commons - DU (University of Denver) · 2010

Video and computer games have become an important area of study in the field of education. Games have been designed to teach mathematics, physics, raise social awareness, teach history and geography, and train soldiers in the military. Recent work has created computer games for teaching computer programming and understanding basic algorithms. We present an investigation where computer games are used to teach two fundamental computer science concepts: boolean expressions and recursion. The games are intended to teach the concepts and not how to implement them in a programming language. For this investigation, two computer games were created. One is designed to teach basic boolean expressions and operators and the other to teach fundamental concepts of recursion. We describe the design and implementation of both games. We evaluate the effectiveness of these games using before and after surveys. The surveys were designed to ascertain basic understanding, attitudes and beliefs regarding the concepts. The boolean game was evaluated with local high school students and students in a college level introductory computer science course. The recursion game was evaluated with students in a college level introductory computer science course. We present the analysis of the collected survey information for both games. This analysis shows a significant positive change in student attitude towards recursion and modest gains in student learning outcomes for both topics.

Cited by 0Open access

Recursion

Ben Stephenson · Texts in computer science · 2025

Cited by 0

Teaching Computer Science through an Educational Game

Walker, Aidan, Leonard, Matthew, Goldman, Grant · Scholar Commons (Santa Clara University) · 2025

In our ever-evolving technological landscape, it is becoming more and more important for students of all ages to have at least a basic concept of coding fundamentals. It’s not just the basic knowledge of how to code; knowing important coding concepts is just as important. To help introduce these concepts to young students, we developed an educational game in the Roblox platform aimed at teaching foundational programming concepts—specifically recursion—to young learners through interactive and engaging gameplay. Leveraging Roblox’s accessibility and popularity among younger audiences, the game introduces players to recursive thinking in a visual and intuitive manner. Players control a mech as they progress through a tree-structured level, clearing combat rooms and unlocking new areas by completing lessons and quizzes embedded in the environment. Educational content is reinforced through dynamic teaching moments, interactive quiz checkpoints, and a code-based upgrade system that frames programming logic as in-game progression. By integrating core computer science principles with entertaining game mechanics, this project aims to make complex topics like recursion more approachable, memorable, and enjoyable for beginners.

Cited by 0

Recursion, Iteration and Functional Languages

John E. Howland · 1998

Functional programming languages are shown to be useful in the teaching of the concepts of recursion and iteration. The functional language approach presented in this paper has advantages over imperative languages in the area of analysis of recursive and iterative algorithms. Examples using the J and Scheme programming languages, with emphasis on the use of functional programming notation in exposition are given. 1 Subject Areas: Computer Science Education, J, Scheme, Exposition. Keywords: computer science introductory course, J, Scheme, exposition. 1 Introduction Functional languages provide a computational environment where functions are applied to arguments producing results. Once an item is created in memory it is never altered. Function application occurs without side effects. Algorithms involve sequences of function applications (functional composition). Most functional language environments automatically reclaim (garbage collection) items which are no longer needed. 1 This p...

Cited by 3

Recursion

John Hunt · Undergraduate topics in computer science · 2023

Cited by 1

Recursion

Kent D. Lee, Steve Hubbard · Undergraduate topics in computer science · 2024

Cited by 0

The Advent of Recursion . . .

Edgar G. Daylight · 2010

The term ‘recursive’ has had different meanings during the past two centuries among various communities of scholars. Its historical epistemology has already been described by Soare (1996) with respect to the mathematicians, logicians, and recursive-function theorists. The computer practitioners, on the other hand, are discussed in this paper by focusing on the definition and implementation of the ALGOL60 programming language. Recursion entered ALGOL60 in two novel ways: (i) syntactically with what we now call BNF notation, and (ii) dynamically by means of the recursive procedure. As is shown, both (i) and (ii) were introduced by linguistically-inclined programmers who were not versed in logic and who, rather unconventionally, abstracted away from the down-to-earth practicalities of their computing machines. By the end of the 1960s, some computer practitioners had become aware of the theoretical insignificance of the recursive procedure in terms of computability, though without relying on recursive-function theory. The presented results help us to better understand the technological ancestry of modernday computer science, in the hope that contemporary researchers can more easily build upon its past.

Cited by 0