[Edu-sig] Python for non-programmers
Kirby Urner
pdx4d@teleport.com
Wed, 01 Mar 2000 17:13:45 -0800
>I like to think the PyGeo app I wrote
>http://starship.python.net/crew/kernr/PyGeo/ fits well into this category.
>You're writing actual Python code and getting immediate feedback as 3D
>graphics.
Hi Arthur --
I'd say "yes and no" regarding "is actual Python code".
Here's an excerpt from one of your modules, which you shared
as illustrative of what a student is supposed to write:
A=FreePosition(-24.0,-12.,1.0,name='A',color=RED)
C=FreePosition(31,-7.0,-12.0,name='C',color=RED)
AC=Line(A,C,name='AC',color=RED)
B=LineSlider(AC,(-7.,-14.0,-6.0),name='B',color=ORANGE)
Cp=FreePosition(11.0,7.0,7.0,name="C'",color=RED)
Ap=FreePosition(-16.5,-3.5,16.,name="A'",color=RED)
ApCp=Line(Ap,Cp,name="A'C'",color=RED)
Bp=LineSlider(ApCp,(30.0,13.0,2.0),name="B'",color=ORANGE)
pmap=PointMap(AC,ApCp,B,Bp,density=60,color=ORANGE,name='pmap')
p1=FreePosition(-30.0,-25.,-17,name='p1',color=GREEN)
p2=FreePosition(31,-17.0,9.0,name='p2',color=GREEN)
p3=FreePosition(17,-11.0,-14.0,name='p3',color=GREEN)
ccirc=CircumCircle(p1,p2,p3,style=FILL,precision=100)
tri=Triangle(A,C,Ap)
Certainly this is executable directly in Python, but there's
a layer between the Python language and getting results on
the screen, which is this vocabulary of geometric functions
and their properties which you've devised.
I'm not saying this is bad and/or avoidable, or that I've
got a better way, merely that we should not bleep over the
truth about the learning curve and make it sound like just
knowing Python is all it would take to operate your program,
or, conversely, that learning your program is 100% synonymous
with the process of learning Python.
I know Python, and yet when I look at the lines above, I
feel someone overwhelmed, intimidated, because I have
no idea how big this vocabulary is, how much memorization
of new functions and their parameters I'm likely to
face. Where can I go to find out?
I think what your program needs most is on-line documentation
(on the web). Plus a tutorial. That's a lot of work of
course. But "getting something to work" is not the same
as "getting something others find usable".
I'm certainly curious about your project, as I've communicated
by private emails as well. For example, re the above lines,
I'm wondering if:
tri=Triangle(A,C,Ap)
refers to a class named Triangle, i.e. is tri an instantiation
of the Triangle class, with A,C and Ap passed to some __init__
constructor "behind the scenes". It'd be cool to go to some
website and find all these "secrets" discussed -- the deeper
you get into it, the more I feel like your goal is to teach
my Python (and I look up to you as something of a Python guru,
working at a level beyond the one I've managed to attain).
>So far I am a chorus of one who sees it as on point to what EDU-SIG is
>about.
I think your work is very much relevant to what this EDU-SIG is
about. However, for the purposes of discussion, I think we need
to draw a distinction between:
(a) applications written in Python that are useful to
students in various subject areas
(b) applications written in Python that have "teaching
Python" as a primary goal
(c) non-applications (e.g. modules that run in IDLE but
do not provide a custom GUI) that are useful to
students in various subject areas
(d) non-applications that have "teaching Python" as a
primary goal
I realize that many projects fall somewhere in between vis-a-vis
the above categories. Do you think it fair to say yours falls
between (a) and (b)? I think my approach falls between (c)
and (d).
All chatter about your extremely interesting application aside,
I think the difference between "using Python to do X" and "doing
X to teach Python" really needs to remain front and center in
this SIG.
It's easy to confuse the two approaches, and think that just
because one has written this dynamite application, useful in
schools, and done 100% in Python, that it's therefore a good
tool for advancing the goals of CP4E.
Maybe yes, maybe no, is what I'd say -- there's no necessary
correlation here.
Getting back to your application, I'm thinking probably yes --
I think students could probably learn a great deal about
Python by dissecting what you've done -- maybe even more
than they'd learn about geometry.
>I'll take any feedback at this point - good, bad, or indifferent.
>
My two cents.
Kirby