Problem with recursion? (was [plt-scheme] Re: Novice needs help writing function )

From: Yavuz Arkun (yarkun at
Date: Fri Jan 4 06:00:03 EST 2008

Grant Rettke wrote:
> This thread had mentioned helping students understand recursion, and
> for some reason, this topic of understanding recursion has come up a
> lot lately "by the water cooler", among other things.
> I recently heard that a particular teacher quit trying to teach
> recursion because "it is too hard for students to understand".
> Is there an epidemic of sorts that students don't understand recursion?
> What are the challenges to understanding recursion?
> _________________________________________________
>   For list-related administrative tasks:
I am not sure that there is anything wrong with students or the teaching 
of recursion. Not every student is a quick study and not every concept 
can be taught easily. Teachers shouldn't give up a useful concept 
because of perceived teaching difficulties, and students who don't get 
it the first time, should take another class with similar subject matter 
or study on their own.

Having said that, the only difficulty I had with learning recursion is 
that the examples typically used to introduce it do not benefit from 
recursion. Fibonacci does not need recursion, its just as easy to 
express it iteratively. When you are presented with such an example as 
your first recursive program, it may hard to see the point, even if you 
get the mechanics of it.

I can vaguely remember that SPIC had an exercise about figuring out how 
many different ways you could change x dollars into coins that was much 
easier to solve recursively than iteratively. Personally, I would start 
with something like that, let the students struggle a bit trying to 
solve it "the usual way" then come to the rescue with recursion.

And while I am on the subject of examples, why do introductory 
programming books use so many mathematical examples? IMVHO, there are 
only three subjects that can interest a young student: sex, video games 
and programming tools. Putting the first two aside for PC, an example 
about an text editor would be much more interesting than, say, Fibonacci.


Posted on the users mailing list.