[Edu-sig] Edu-sig Digest, Vol 31, Issue 16

Toby Donaldson tjd at sfu.ca
Wed Mar 1 01:44:38 CET 2006

> So I think the following would be handy:
> 1. equally usable with either "import * from turtle" or "import turtle"
> imports
> 2. should open with a window covering at least half the screen (the
> current default is too small to be useful)
> 3. should offer some simple configuration choices for things like
> initial size and shape, but mostly rely on reasonable defaults
> 4. should offer a class wrapper so that that one could easily
> instantiate different turtles for a first experience with objects.
> 5. some minor tweaks to make it better behaved when run from IDLE
> Does anyone have any feedback on these ideas or any other suggestions
> about how turtle.py might be improved without being fundamentally changed?
> Note: this is about turtle.py only, for all its deficiencies. Any
> suggestions to try another library, system, or language will be
> cheerfully, but resolutely, ignored. ;)
> Cheers,
> Vern Ceder


I would be interested in testing any improved turtle.py package you
come up with.

I used the Python turtle.py package last semester with about 500
first-year university students, and two problems stood out above all

   1. The broken interaction between Idle and the turtle package.

   2. Poor documentation. To actually understand certain function
calls, it was necessary to read the turtle.py source code.

I agree that your other points would be improvements, but, for my
purposes at least, they are lower priority.

I have another suggestion: rewrite turtle.py so it has a simpler, more
modular internal design. I use it for learning about functional
decomposition and bottom-up programming; the graphics are secondary.

So I would like a less powerful turtle, but one that students can
easily build upon.

Perhaps a BabyTurtle class with the absolute bare primitive methods
could be added, e.g. something like

       class BabyTurtle(object):

            def forward(self, steps): # ...
            def left(self, degrees): # ...
            def penUp(self): # ...
            def penDown(self): # ...

Dr. Toby Donaldson
School of Computing Science
Simon Fraser University (Surrey)

More information about the Edu-sig mailing list