[Edu-sig] xturtle - talk at EuroPython2006
Paul D. Fernhout
pdfernhout at kurtz-fernhout.com
Wed Jul 12 04:35:45 CEST 2006
Gregor-
Thanks for posting your slides.
When I looked before at xturtle, I was amazed at how many interesting
things you could draw with such short programs. And I was also amazed how
easily you could add interactivity to them.
I especially liked this point here from your talk:
"Turtlegraphics (type 1): a mathematical tool to
produce certain types of (very often recursive)
pictures.
Turtlegraphics (type 2): an interactive computing
environment.
xturtle.py keeps the merits of turtle.py and at the
same time enhances features to be used
as type 2 - turtlegraphics...
"
That really sums up xturtle's "value proposition" for education and it is
a strong one, features like being able to watch the turtle while it moves,
and so on all add to the educational quality and ease of use of "turtle
graphics" in Python for type 2 activities over just turtle.py. Obviously
turtle.py can also have a tracer, but I think yours looks nicer, and I
think the default option, as with yours, should be true. And I really like
that you can keep going with xturtle farther than you can with turtle,
because of your integration of event responses, backgrounds, scrolling,
and so on.
I know if I was still teaching programming to biology majors, I'd jump on
xturtle for use in class to teach even the most basic elements of
computing (if statements, for loops, and so on) which turtle graphics can
really help with by making the results explicit on the page (in a way,
say, following a branch or a loop with the debugger does not). Now
obviously one can also use prints to show the results of ifs and loops,
but I think the graphics has a lot more effectiveness than prints
(including providing intrinsic motivation to many learners to make pretty
graphics), and at the very least, provides a great supplement to prints as
well. And to see what is happening, I think that being able to watch the
xturtle move is essential, so anything that makes that easier to see, like
a bigger turtle, a default of having it on, etc., seems minor but I think
is really important. As are the other ease of use features:
http://ada.rg16.asn-wien.ac.at/~python/xturtle/features.html
I'm not sure if you will convince people to replace the Python turtle.py
package because I am not sure if people will agree the audiences are the
same (although I don't even know who the turtle.py audience is?). Please
don't take that as the main measure of success for it or be very
disappointed if it does not happen soon (even if it might be nice). I
think xturtle is a very useful stand alone module as it is. I'm not sure
any "education" focused library has ever made it into the mainline Python
distribution? (Can anyone think of one?) Still, from an xturtle point of
view, obviously anything in the main distribution has much more "ease of
use" for beginners than something that has to be downloaded, so I can see
why it is worth lobbying for replacing turtle.py with it if the agreed
audience for Python turtle graphcis is beginner. One might also have the
two coexist even, with turtle.py and xturtle.py, although having two
turtles in the base distribution itself might be confusing for beginners?
By the way, you mention in your talk in the future looking into the pros
and cons of 3D graphics. I wrote a 3D turtle abouttu ten years ago and my
wife and I used it for some things (3D botanical plant drawing mostly).
[I've also been planning to port that to Python as part of porting our
other projects to Python.] Based on that experience, I can definitely say
3D turtles are really cool, and fun to play with, but at the same time
they are much more demanding to use than 2D ones by maybe two orders of
magnitude. With 2D you can pretty much follow what is happening when
things draw, but that is much harder in 3D. Also, in 2D, you can easily
see where the turtle is pointing, and in 3D that is harder (because you
are using a 2D display). So 3D turtles may well be probably beyond what
anyone might want to suggest to beginners who are learning "programing". I
see 3D turtles more of interest to people who already know how to program
somewhat but who are interested in learning "graphics" or are trying to
learn about something 3D related (like botanical plant structure) through
simulation. Now, to be clear, that is not to say 3D is bad for beginners
if they are manipulating a world of 3D objects, say to spin a propeller or
move a box around under program control (or even using 3D geometry like
PyGeo, because that package apparently cleverly provides named classes and
operations that make the 3D manipulations manageable in a geometrical
framework). I'm just emphasizing that wrapping your mind around a 3D
turtle drawing a recursive function can be fairly demanding. :-) I know we
have spent many hours sometimes trying to understand why something doesn't
draw right, involving drawing an axis at each point the turtle turns and
so on. It seems to me that something like PyGeo might be more effective at
making 3D accessible to beginners than a 3D turtle. I just don't think it
will be easy for most people to follow several levels of matrix
permutations as a turtle rotates in 3D, while they are trying to learn to
program at the same time. Now, after they know how to program somewhat,
then it certainly is quite possible for people to have fun modifying an
existing complex parametric 3D model (like saying how branchy a plant
should be, or how long stem lengths should be), or to make simple models
of their own, and I think that is a very fun thing to play with (for some
people). So anyway, I don't want to discourage you from doing 3D turtle
things, just to bring up this issue of audience and complexity and
expectations about how many things most people can learn at once. Also,
frankly, some percent of the population (30%?) may just never be good at
visualizing things in 3D without a lot of efforts, whereas almost
everybody can follow stuff in 2D fairly effortlessly (relatively speaking).
--Paul Fernhout
Gregor Lingl wrote:
> Hi everyone,
>
> the slides to my talk at Europython2006
>
> *xturtle - an extended turtle module for Python
> as a vehicle for teaching programming concepts*
>
> are now available:
>
> http://indico.cern.ch/materialDisplay.py?contribId=100&sessionId=52&materialId=slides&confId=44
More information about the Edu-sig
mailing list