[Visualpython-users] New Windows VPython
Bruce Sherwood
bas at andrew.cmu.edu
Tue Dec 25 01:13:57 EST 2001
I'm not sure how to say it any more plainly than I've already said it, but
I'll try once more.
NOTHING has changed in VPython that forces you to use the new division
operators!
What has changed is that you MAY if you wish use the new division
operators, even if you use Numeric arrays. The problem was that Numeric
didn't recognize and process the new "true division" and "floor division"
operators present in Python 2.2. There is no "fork" of Numeric. I've
submitted the additions for inclusion in the next release of Numeric and
been thanked for doing the work and told that many people were asking for
this.
But if you don't want to use the new division operators, DON'T put "from
__future__ import division" in your programs! Including when you're using
VPython!
As to the student issue: There is no theorizing nor condescension in this.
The actual data are that very smart college freshmen with very high SAT's
etc., but who often have never written a computer program before,
frequently make the "mistake" of writing such things as 1/2 thinking that
this means the same as 0.5, because that's what it means in all other
environments, including their pocket calculator. And they and their
instructors find it difficult to track down why the program fails, because
the difference between 1/2 and 1./2 is awfully subtle and hard to pick up
in proofreading. I have a Ph.D. in physics, done a lot of system software
work including creating a respectable programming language (cT), and I make
this "mistake" too when doing scientific programming. I repeat that this is
about the only significant problem our students have had with Python. Can
you present data that our students don't have a serious problem with this
issue? Remember too that this is in the context of a physics class, not a
computer science class, and we can't afford to spend time on teaching picky
details of syntax.
Until now there was nothing we could do about this. We did not want to do
what the Alice project did, which was hack Python to fix the problem,
because this would be a "fork" and make our Python different from the world
Python. Now with Python 2.2 we can teach our students to insert "from
__future__ import division". And we can try to teach students that when a
program fails, they should check to make sure that they've inserted this
line.
It is at least a reasonable question whether to drive Python or VPython
with the "-Qnew" command-line option which has the same effect as the
import statement. On balance, we think we shouldn't make this the default
run mode in our local classroom VPython environment, because our students
may well run Python and/or VPython in environments other than our classroom.
I will attempt to say nothing more about any of this.
Bruce Sherwood
--On Monday, December 24, 2001 21:14 -0500 Arthur Siegel
<ajs at ix.netcom.com> wrote:
>> You've jumped the gun, but your input is useful nevertheless.
>
> I'm not sure how. I am reading your message to say that the copy
> of Numeric that is downloaded with VPython has been patched.
> And since I am directing users of PyGeo to VPython, I am directing
> them to a forked version of Numeric. Which is somehow horrid to me.
>
> What am I missing.
>
> As to the rest - I should probably keep my peace.
>
> I've pissed off enough people and caused myself enough
> grief in the course of it.
>
> But is all quite, quite incredible to me.
>
> I think the importance you attach to this issue is monumentally
> overstated, and overwhelmingly condescending.
>
> Now you are further saying that your students can't even be
> trusted to be able to handle the from __future__ statement
> all my their little bitty selves.
>
> Suffice it to say that am I sure the hell glad I'm not in
> school anymore.
>
> Art
More information about the Python-list
mailing list