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 _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
