trønderen wrote:and create homework assignments, with problems suited for recursion.
Not sure what you mean.
First of course teachers are human. So like any other group there a good ones, bad ones and a whole lot of average ones. So yes they might be using a bad example.
Second I can see where the equation can be solved by recursion. Probably too complicated both for teaching recursion and for teaching other methods as well. Although perhaps the class will also include unrolling and perhaps then it might be better (hypothetically of course.) And then perhaps the teacher feels that would be a good follow on from this specific example.
trønderen wrote:So if that is the case here, the teacher should be blamed. Especially if the assignment is as suggested in the subject line,
Quite possibly. But then what is the scenario where that specific equation is an effective tool for teaching the basics of say a 'for' loop.
Are you claiming it is a good example for that?
Or are you claiming that the teacher is still bad but in fact must be teaching about loops instead?
trønderen wrote:A lot of problems can be described in a very concise form in recursive terms, but can easily be implemented as an iteration (and most students will not discover that and make a recursive implementation ... I speak of experience). Here is no trace of a recursive problem description.
There is a lot in that.
First in my experience classroom work, never, teaches the use of the field in practical terms. Not in programming, not in engineering, not in the soft sciences, etc.
Not even in the field of teaching. One possible exception might be that if one wants to learn to be a university professor. And only a university professor. But not for example a middle school teacher.
Possible it has changed since I was in school but I haven't run into any young programmers that even know what bit fiddling is. So I doubt it.
Second, as I remember, university professors did like recursion quite bit. Probably because, as you noted, the expression is concise. They were using it to teach the algorithm and not, as I noted above, practical programming. So in that case it doesn't matter if the implementation would be impractical.