Sunday, February 5, 2012

TurtleArt

This is the second year I have taught third graders how to program in TurtleArt. TurtleArt (http://turtleart.org) is an implementation of the Logo programming language that emphasizes the artistic side of Logo. It is well-suited to using with younger students because they program the computer by snapping together blocks to make the turtle draw. Without realizing it, students are learning quite a bit about math in the process, as they have to consider angles, the X Y axis, and in some projects how long the lines are that they are programming the turtle to draw.


I introduce TurtleArt by asking the students to use the turtle to draw three different shapes: a square, a circle, and a triangle. With these three shapes student are then asked to create procedures. Procedures are a collection of moves that cause the turtle to draw. Procedures can be named, which creates a new, single block that can then be used in other procedures. For example, a square procedure can be defined as:


repeat 4 [forward 100 right 90]



Named “square,” that procedure could be called in another procedure:


repeat 36 [square right 10]



Once the students understand how to define procedures, I introduce them to variables. TurtleArt can use a block that calls for a range of random numbers or one number of the other. Here is an example of using variables to change the color the turtle is drawing.



I also attempt to teach the students about recursion, or creating a procedure that in turn calls a copy of itself. You can create many wonderful drawings using recursion. However, most recursive procedures written in TurtleArt tend to result in stack overflows, which stops the procedure. Here is an example of a recursive procedure.



Recursion is a little difficult for third graders to understand, so we do not linger on this project too long.


One project that the students are particularly challenged by but which they refuse to give up on is having the turtle draw their initials. This project is a particularly good opportunity for the students to collaborate with one another if they are having a difficult time figuring out how to make a letter.


The biggest project we work on is making quilt squares in TurtleArt. We create an empty square to define the quilt square. Students are then challenged to create a design that fits inside the square and does not wander out of the square. This provides the perfect opportunity to reinforce the concept of the X Y axis. Knowing the size of the square and the X Y point at which the square is started, I suggest to the students that they can “bind” their design within the square by limiting the procedure to a certain range on the X Y axis.



Once the students have created their procedures I combine the quilt squares together in Photoshop to create a class quilt, which I print on a large format printer.



The students really like TurtleArt. Interestingly, when I first started teaching it last year the students were concerned that others might look at their computer screens and “steal” their procedures. However, I told the students that they should feel free to collaborate, to share procedures, to help one another. This year I set up a wiki for the students to post their art so their classmates can download and remix their designs. This has worked out really well. Students are also hand-writing procedures and trading them.



It is great to see the designs that the students create and to see the students’ excitement. Programming a computer is an empowering skill. These students are being exposed to math skills that they typically would not encounter until fifth grade.