Turtle Art for Sugar Learning Platform v0.84


One of the nice things about free software projects is that anyone can scratch an itch. I had been doing a lot of scratching over the past three months, ever since Brian Silverman asked me to become the maintainer of the Turtle Art Activity. The release of Sugar 0.84 gave me a target to aim for and I was able to make enough progress that Turtle Art is now included as part of Fructose, the default set of Activities distributed with Sugar. (I had more than a little help from my friends - another benefit of FOSS.)

About Turtle Art

A bit of background: Turtle Art is one in a long series of Logo environments designed and built by Brian Silverman. Brian is largely responsible for successful learning tools such the software interface to Lego Mindstorms and the Microworlds version of Logo.

Brian had originally written Turtle Art in Java as a warm-up exercise for Scratch, another "snap-together-blocks" programming environment. When we began developing Sugar, Brian rewrote Turtle Art in Python; it was one of the original Sugar Activities and it remains popular with teachers and students. (Brian still maintains the Java version).

Turtle Art in SVG

The first itch was one that I caught from some teachers in Uruguay. They wanted a square-root block for teaching the Pythagorean theorem. My initial response to their request was to challenge them to scratch their own itch by adding the new block themselves.

But looking into it more deeply, I released that adding a new block to the user interface (UI) was too complex for the novice programmer. This and several other problems - keeping pace with localization efforts and making Turtle Art scale properly to variable-sized displays - led me to scratch an itch of my own: rebasing Turtle Art graphics on SVG.

Out of control. Still driven in large part by requests coming in from teachers, I added named variables and subroutines (with help from Luis Michelena), a program stack, rich media objects, et al. And I made changes to the UI, notably adding toolbars to keep it more in line with the current look and feel of Sugar. And of course, I felt obliged to add collaboration - a sharable canvas.

Expanding Turtle Art Programming

I came back to the questions that got me scratching in the first place: how can I make it easier for students and teachers to make their own modifications? And can an introduction to programming with a very restricted grammar be a launching pad for engaging more deeply?

Tony Forster, an educator and engineer from Australia, had been paralleling my efforts, offering feedback and critique along the way. He inspired me to extend Turtle Art along several different dimensions:

  1. adding a way of importing Turtle Art projects into a text-based Logo environment;
  2. adding in-line programmable blocks; and
  3. adding extension blocks that can be programmed in Python and imported into Turtle Art.

Tomeu Vizoso had added "universal view source" to Sugar; my goal was to add some intermediary steps between programming in Turtle Art and programming Turtle Art.

Presenting in Turtle Art

I had another itch I had been wanting to scratch: Sugar was lacking a simple presentation tool. I had a "hammer" in Turtle Art and this problem looked like "a nail." So for something to do on the way to LCA - I had a 36-hour a series of flights from Boston to Hobart - I added a palette to Turtle Art with blocks that lets one program a slide show.

Individual blocks are used to create slides from content - pictures, text, sounds - retrieved from the Sugar Journal. The slide show itself, along with any embellishments, such as a progress bar or animated slide transition, are programmed in Turtle Art.

In creating a presentation in Turtle Art, children build upon their Journals (where every action or activity a is automatically recorded). They are able to select important learning achievements and answer questions such as "I chose this piece because..."

They create multimedia narratives from their selections (including audio voice-overs and video) and they can share their presentation with classmates, both to celebrate what they have learned, but also to engage in a critical dialog about their work. I added a means to export to HTML so that the presentations can be shared outside of the context of Sugar. On my next long flight, I'll add export to ODP too.

I am hopeful that a Turtle Art presentation can be used as an assessment tool that shows "what a child knows"; leveraging their Journals, children will become the curators of their own work. They will advance their own learning and help their teachers, parents, and school administrators understand better the depth and breadth of what they have learned.

More Turtle Art from You

I scratched my itch. You should scratch yours. Join the Sugar Activity Team.

Related Entries


One of the nice things about free software projects is that anyone can scratch an itch.

Unfortunately that can be one of the downsides too. Because people only focus on the "fun" stuff that they want to do, and not some of the nasty gritty details that finishes and polishes off a given project.

Plus the itches of developers may be drastically different than the itches of the user. For example, there are several different programming environments in Sugar. Guess what? The vast vast majority of the world really doesn't care about programming. They want the tool to "just work" as it were.


A few comments on your comment: (1) as I tried to make clear in the post, the particular itches I scratched in Turtle Art were defined in large part by the teachers in Uruguay (and Australia)—a free software model is the only practical way I know of for such a tightly coupled development loop between programmers and teachers could have been established;(2) if only thing you could do with Sugar is program, then I might agree with you that it would seemingly be irrelevant to "the vast majority", but Sugar provides a growth path along a number of different dimensions; and (3) We hope that every child becomes fluent in mathematics, reading, and writing, not because we expect every child to become a mathematician or an author, but because these disciplines provide a foundation. Programming is another important "thing to think with"—perhaps as important as these other areas of learning, whether or not we want children to become software engineers.

Stories like this remind me of what really makes me want to start programming again. Making the effort to push forward, not to implement some procedure I'm going to have another look at TArt!

I haven't tried Turtle Art but the people that made Turtle Typing Tutor are brilliant. I've been working on a typing tutor curriculum using the principles of Direct Instruction. You can purchase typing books or get them from the library but that costs money and it can take longer than a 4 week check out to learn to type. I purchased Mavis Beacon - a horrible program for kids with disabilities. So I started designing my own curriculum. Low and behold, some guys make this free program that you can MAKE YOUR OWN LESSONS. So now I can customize it for my son who has some fine motor issues due to autism.

Amazing. I see where education is taking us and this is it. It is well developed. It can be modified. It is in a package (sugar). yeah, it's not there yet but give it time. With schools pooping all over themselves due to constant budget cuts the first thing that gets cut are books and supplies. But with cheap laptops and free software, kids will continue to be educated - even in the US (when we become 3rd world).