Problem with recursion? (was [plt-scheme] Re: Novice needs help writing function )
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:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
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.
Yavuz