[Edu-sig] Re: explaining functions [Possibly OT]

Beni Cherniavsky cben at users.sf.net
Sat Dec 11 22:24:41 CET 2004


Toby Donaldson wrote:
> My experience is that the average student usually has no trouble 
> understanding how to use a function. They grasp the mechanics pretty 
> quickly from examples. Issues such as the difference between printing a 
> result and returning a result are confusing to some, as are issues such 
> as scope. But you don't need to have a perfect understanding of such 
> things to use functions effectively.
> 
I didn't have a chance to test the following on students but I think the 
Python interpreter offers a chance to postpone the print/return difference by 
just not teaching "print" (except parhaps as a debugging aid).  A "hello 
world" program should be just::

     >>> "Hello, world!"

I think that introducing arguments and return values is much simpler to 
understand than textual input/output usually taught with languages that lack a 
  convenient interpreter prompt.

> By far the biggest difficulty I've seen students have is deciding how 
> and when to make their own functions. This is exacerbated by the fact 
> that in beginning programming you typically only write small programs 
> where writing your own functions might not be useful.
> 
Writing only small programs is harmful.  Students must get the chance to write 
medium programs and to refactor them a lot.  I think that any attempt at 
teaching good style and structure by "here is how you should write" is futile. 
  Only by experiencing the hard way how is it to program without good 
structure will one learn its importance.

-- 
Beni Cherniavsky <cben at users.sf.net>, who can only read email on weekends.


More information about the Edu-sig mailing list