[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