Reversing: A fundamental idea in computer science1

Michal Armoni*, David Ginat

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

6 Scopus citations

Abstract

Reversing is the notion of thinking or working in reverse. Computer science textbooks and tutors recognize it primarily in the form of recursion. However, recursion is only one form of reversing. Reversing appears in the computer science curriculum in many other forms, at various intellectual levels, in a variety of fundamental courses. As such, it is too important a notion to be left unexplored. In this paper we discuss reversing in the context of two theoretical frameworks–as a fundamental idea in computer science, in the context of Schwill's model of fundamental ideas, and as a powerful problem solving means, in the context of Schoenfeld's cognitive model of problem solving. We recognize seven different forms of reversing, and demonstrate the essential role of each in algorithm or proof design. Our focus in the paper is conceptual, yet we briefly note our initial experimental experience, with student difficulties in both the invocation and utilization of reversing. We then discuss cognitive aspects of the teaching of reversing and offer ways to assimilate its awareness and elaborate its fundamental role in computer science.

Original languageEnglish
Pages (from-to)213-230
Number of pages18
JournalComputer Science Education
Volume18
Issue number3
DOIs
StatePublished - Sep 2008

Keywords

  • Fundamental idea
  • Heuristic
  • Problem solving
  • Resource
  • Reversing

Fingerprint

Dive into the research topics of 'Reversing: A fundamental idea in computer science1'. Together they form a unique fingerprint.

Cite this