Do Senior CS Students Capitalize on Recursion?
Our study involves the notion of recursion. Although recursion embodies a fundamental way for approaching algorithmic tasks, it is unintuitive to many. Previous studies focused on novice difficulties to comprehend and implement the mechanism of recursion. Our goal was different. We aimed at exploring whether senior students, who are supposedly very familiar with the mechanism of recursion, turn to recursion when it is the more suitable approach for solving the task at hand.
We examined a group of seniors, with respect to their behavior with algorithmic tasks, which are not easily solved by forward reasoning, but are elegantly solved with recursion. These seniors completed their studies of CS1, CS2, Introduction to Algorithms, and other courses, where they have seen and developed a variety of recursive solutions.
One would expect that following their prolonged experience with recursion, they will recognize its relevance and invoke it upon attempting CS1 and CS2 tasks, which are easier to solve by recursion. However, we found that this is not the case.
We posed to the students three algorithmic tasks – two rather simple CS1 tasks and one, more involved, CS2 task. We collected their written solutions, and interviewed about a third of them about their solutions.
Unfortunately, already in the first two CS1 tasks, more than half of the students did not turn to recursion, but rather to various forward reasoning ways. These ways were cumbersome, and often yielded erroneous solutions. The results with the CS2 task were even worse. Only less then a quarter of the students tried to solve it with recursion.
We discuss the students' behavior, while relating to Schoenfeld's cognitive model of problem solving and Lithner's observation of student tendencies to turn to their established experiences during the process of problem solving. We conjecture that seniors are not acquainted enough in turning to reason backward, and invoke recursion. Although they thoroughly see and experience recursion throughout their studies, they are not faced with enough tasks in which they have to take a decision by themselves whether it is more suitable to reason forward or reason backward. In many, and perhaps even the vast majority of the cases where students meet recursion during their studies, they are given tasks for which they are explicitly directed to use recursion. Yet, this should not be the case.
Our main suggestion is that in the different courses where students meet recursion, they will be repeatedly faced with tasks, for which they will have to decide by themselves whether to approach it forward or backward. This may elaborate their awareness of the importance of debating and selecting the suitable reasoning direction upon approaching and solving algorithmic tasks.
Author 1: David Ginat ginat@post.tau.ac.il Article Link: http://portal.acm.org/citation.cfm?id=1008020&coll=portal&dl=ACM&CFID=9122936&CFTOKEN=32438184