Pedagogical style [was Re: The "loop and a half"]
On 2017-10-05, Steve D'Aprano <steve+python at pearwood.info> wrote:
> In fairness to Stefan, we should also include iteration and
> assignment as concepts being learned, but in this case they are
> directly connected to the immediate problem rather than at best
> only indirectly, and distantly, related.
Teaching the iteration protocol before using and being
comfortable with iterating creates major burdern. The student
doesn't know what it supposed to *do*.
On the other hand, if iteration is already second nature, then
the protocal can be comprehended, and hopefully understood as a
building block of something the student relies on.
I had this exact experience learning C++ with Accelerated C++ by
Koenig & Moo. Pointers, for example, usually taught long before
the STL, here became just another form of random access iterator
and the aura of mystery they formerly held in my mind evaporated.
> So the bottom line is:
> - Stefan's approach requires the student to learn fifteen concepts
> to get poor-quality Python code;
> - the idiomatic approach requires the student to learn five concepts
> to get high-quality Python code (for this toy problem).
The Koenig & Moo method was to first teach high-level,
generalizable tools and much later show how to implement them
I can't think of anything else as correct after having
experienced it, but nevertheless other approaches have been used
with success for years. And Stefan's way of thinking about and
asking questions about Python has been of great interest to me,
and provided entertainment and enlightenment.