[Edu-sig] Python @ Education: What are your problems?
Guido van Rossum
guido@python.org
Thu, 30 May 2002 08:44:26 -0400
> > - Lists, Tupels, Dictionaries included
>
> Not bothered for our purposes. Lists are mentioned only very briefly
> in the context of the range() function, but we got away without
> discussing tuples or dictionaries at all. I say ``got away'' because
> we only have 1 day to teach programming(!) so almost anything we can
> avoid we will.
It seems your course is somewhat unusual in that apparently has a
heavy focus on scientific computing. Not surprising given that you're
in the Physics program! Usually data structures are a very important
part of a programming curriculum, and then lists and dicts are
crucial. Does this mean you represent all arrays of numbers with
Numeric arrays?
> > - interpreter: Everything can be tested
>
> I thought this was going to be a big deal. We designed the trial to
> give students almost a free reign over whether to use modules or the
> interpreter and *none* of them (out of about 40) used the
> interpreter. I think this might be due to the length of the programs
> they were writing (none more than about 100 lines), so they can
> derive practically the same amount of interactivity from repeatedly
> re-running the the program. Perhaps when asked to write longer
> programs, when it becomes unwieldy to make changes for debugging
> purposes they might use it.
Interesting. Could it also be that your students have reasonable
computer experience on Windows, where an interactive command line
interface is not used?
> We do seem to be having some trouble with the inconsistency of
> writing to stdout and file. To make things easier early on we have
> them write to screen using the print command. They can then separate
> abritrary variables using commas. However then they do
> fout.write(myfloat, myint, "Some numbers") and it doesn't work they
> get confused. It may be better to teach them to write to screen
> using sys.stdout.write from the start as that then provides a
> consistent writing tool.
Point taken. It's just that sys.stdout.write is so cumbersome to
produce neat-looking output. :-(
I wonder what could be done to fix this? Making write() act more like
print is impossible for backwards compatibility reasons (separate
print calls always insert a space or a newline between data, and
separate write() calls do neither). Maybe we should add a file method
f.printf("format string", args)
and a built-in function
printf("format string", args)
and deprecate the print statement???
--Guido van Rossum (home page: http://www.python.org/~guido/)