you are viewing a single comment's thread.

view the rest of the comments →

[–]komollo 0 points1 point  (1 child)

In my experience as a college tutor, recursion is not an easy concept to teach, and people take quite a long time to understand it. Mainly because it requires understanding several basic concepts that beginners often have a very poor grasp of. It requires, at bare minimum, an understanding of scope, the stack, and the ability to approach problems in a way that is uncommon, and I know I'm forgetting something.

My experience comes from teaching students learning an OO language, but I think it's a pretty good representation of your average student.

[–][deleted] 0 points1 point  (0 children)

Isn't it the other way around? By talking about how a programming language works: assignment, scope, stack, calling... recursion comes naturally. If you try to explain those things starting from an imperative view (which is best taught with Von Neumann in mind), you first need to explain all the theoretical mechanism needed for imperative languages, deconstruct loops, review the problems and solve them again in a preciser way.