• Corpus ID: 5603321

TEACHING RECURSION BEFORE LOOPS IN CS1

@inproceedings{Turbak1999TEACHINGRB,
  title={TEACHING RECURSION BEFORE LOOPS IN CS1},
  author={Franklyn A. Turbak and Constance S. Royden and Jennifer L. Stephan and Jean Herbst},
  year={1999}
}
Traditionally, loops are a central topic in a CS1 course but recursion is viewed as an advanced topic that is either taught near the end of the course or not taught at all. [] Key Method Iteration is then presented as a particular pattern of recursion. Finally, loop constructs are presented as concise idioms for iterative patterns. We describe our positive experience in adopting this approach in a CS1 course and highlight the aspects of the course that we think contribute to its success.

Is iteration really easier to learn than recursion for CS1 students?

Questions have been addressed about whether students who learned recursion before iteration actually exhibit a stronger ability to deal with the latter, and do the students of the imperative-first path master iteration better than those of the recursion-earlier path.

Student Monks: Teaching Recursion in an IS or CS Programming Course using the Towers of Hanoi

Recursion is quite useful in computer programs that use recursively defined data structures, such as linked lists and trees, and can often be an elegant approach to solving certain problems that present themselves in database and data warehouse programming applications.

A Survey on Teaching and Learning Recursive Programming

After a short history of the advent of recursion in programming languages and its adoption by programmers, curricular approaches to recursion are presented, including a review of textbooks and some programming methodology, as well as the functional and imperative paradigms.

The Paradigm Recursion: Is It More Accessible When Introduced in Middle School?

A pilot study is outlined, which expands the age range of students exposed to the concept of recursion in computer science through instruction in a series of interesting and engaging activities, and hypothesize that through experiences for youth with activities such as those outlined here, the number of students who understand fundamental computer science applications and who might potentially pursue computer science in post-secondary education will increase.

A Hybrid Model for Teaching Recursion

The conceptual and program visualization approaches to teaching recursion are discussed and the approach to teach recursion in the ChiQat-Tutor system that relies on ideas from both approaches is introduced.

The essence of recursion: reduction, delegation, and visualization

This paper proposes a learning approach for teaching recursion and highlighting the importance of recursive thinking and abstraction skills in problem solving through a well-defined sequence of steps, complemented by a 2D computational model and simulation tool, RDViz.

A Tangible Interface for Learning Recursion and Functional Programming

An open-source interactive interface based on a tangible block-world with augmented reality and software feedback is designed and students are expected to transfer their training to directly write recursive programs in sequential Erlang, a purely functional language.

To Be, or Not To Be: That is the Recursive Question

  • F. D. de Vega
  • Computer Science
    2019 IEEE Global Engineering Education Conference (EDUCON)
  • 2019
This paper discusses the opportunity of Functional Programming for making students aware about data dependencies and their implications when using parallel and distributed computing infrastructures, and proposes to forbid loops when any selected language that embodies the functional model is shown to students.

Dynamic programming - Structure, difficulties and teaching

  • Emma Enström
  • Education
    2013 IEEE Frontiers in Education Conference (FIE)
  • 2013
Action research on third year Algorithms, Data structures and Complexity course, in which students have considered dynamic programming hard in comparison to the other topics, identifies subtasks that could be taught separately and adapted the lectures to Pattern Oriented Instruction in order to help students cope with the cognitive complexity of solving problems using dynamic programming.

Iteratively Intervening with the “Most Difficult” Topics of an Algorithms and Complexity Course

For both dynamic programming and NP-completeness, the teaching is structured differently, forcing students to think and adopt a standpoint, and practice the concepts in programming assignments, and it is believed that these activities could be useful in any similar course.

References

SHOWING 1-10 OF 33 REFERENCES

Loop exits and structured programming: reopening the debate

This paper reviews the existing evidence in support of internal exits from loops and argues that it is important to reconsider the traditional pedagogical approach as the authors adopt new languages of instruction.

Computing Concepts with Java Essentials

From the Publisher: This unique book teaches you the fundamental concepts of good computer programming while introducing you to one of the most powerful languages in use today--Java! It gives you an

Comparative Schematology

In order to carry on a practical study of the comparative power of different languages the authors are led to banish explicit functions and deal instead with abstract, uninterpreted programs, or schemas.

On to Java

Using this book, you learn Java quickly and effectively, and you learn why Java is the language of choice for writing programs for the World Wide Web.

Java Gently: Programming Principles Explained

This book introduces readers to Java 1.3, covering all of the language, its standard libraries and utilities, and the prospects it offers for the future.

programming.java: An Introduction to Programming Using Java

This book provides a lab-based introduction to programming, using Java™ as the programming language of choice, by presenting the empowering features of Java - and OOP classes, packages and inheritance - first, and bringing in the algorithmic details later.

Conceptual models and cognitive learning styles in teaching recursion

The results indicate that in teaching recursion to novice programmers, concrete conceptual models are better than abstract conceptual models and novices with abstract learning styles perform better than those with concrete learning styles.

Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO

It is shown that the unrestricted use of procedure calls permits great stylistic freedom, and any flowchart can be written as a “structured” program without introducing extra variables.

A revised model curriculum for a liberal arts degree in computer science

This article updates the 1986 Communications article “Model Curriculum for a Liberal Arts Degree in Computer Science’’ by Gibbs and Tucker and draws upon important new educational and technological developments in the discipline as well as the recommendations of Computing Curricula 1991 of the ACM/IEEE-CS JointCurriculum Task Force.

ML for the working programmer

In teaching the methods of functional programming, how to program in Standard ML, a functional language recently developed at Edinburgh University, the author shows how to use such concepts as lists, trees, higher-order functions and infinite data structures.