Introduction to algorithms
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns: an essential component of CS curricula
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Elements of the Theory of Computation
Elements of the Theory of Computation
Introduction to Automata Theory, Languages and Computability
Introduction to Automata Theory, Languages and Computability
Problem Solving with Java
Do senior CS students capitalize on recursion?
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
Reductive thinking in a quantitative perspective: the case of the algorithm course
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Hi-index | 0.00 |
Program and proof designs are fundamental in computer science (CS). The designs involve the employment of various heuristics that may be considered rather inherent and natural, such as decomposition. Yet, not all heuristics are natural. One less natural, and rather unintuitive heuristic is that of reversing, in which a task is approached by reasoning backwards or viewing entities through "inverse lenses". One primary form of this heuristic is recursion. But, there are additional forms throughout the CS curriculum that are essential yet not underlined. In this paper we display these forms, underline their important role, and illustrate them in five core courses. In addition, we describe our experience with student difficulties due to unawareness and lack of competence with this heuristic, and offer preliminary guidelines for elaborating it during CS studies.