Hate to be a killjoy, but I just looked at one of the Code.org activities for programming turtle graphics in App Lab.

As someone who has taught various dialects of Logo to kids and teachers for 34+ years, I was horrified by the missed learning opportunities and design of the activity. My concerns are in lesson/interface design and lost learning opportunities.

https://studio.code.org/s/cspunit3/stage/2/puzzle/1

First of all, you connect any blocks and then hit Next. It doesn’t matter if you solve the actual problem posed or not.

Second and MUCH more importantly, ALL of the power and intellectual nutritional value of turtle geometry is sacrificed in order to teach a much simpler lesson in snapping blocks together in service of “efficiency.”

The power of turtle geometry is well – geometry, also measurement, and number. There are no numerical inputs to the turtle geometry blocks and all of the turns are in 90 degree increments.

The use of Javascript (presumably the blocks were added to the environment for this exercise and are not actual primitives) adds needless and confusing punctuation to the command structure WITHOUT the benefit of allowing users to change the input to FD or LT. Therefore, any opportunity to explore powerful mathematical ideas

As we approach the 50th anniversary of Logo and are celebrating the 35th anniversary of the publication of Mindstorms – Children, Computers, and Powerful Ideas, it sure would be nice if Code.org would learn some fundamental lessons of children, computers, and powerful ideas instead of depriving kids of an opportunity to learn mathematics while learning computer science.

Discussion:

Since posting the above statement to a CS discussion forum on Facebook, Hadi Partook – founder of Code.org responded as follows.

Gary, the goal of this course isn’t to teach turtle programming. Most of the students in our course sequence would have done that years earlier. This is a high school course to introduce students to JavaScript (including the syntax) and making apps. It begins with a few turtle stages because turtle programming would be familiar to these students as a concept fully explored in our CS Fundamentals courses – including all the geometric glory you mention, and problems that tell you whether you solved them or not. In our high school course the theme isn’t “solving puzzles” because it’s about “making apps,” with just a few turtle examples to carry forward from something students already know.

Hadi, I wish I shared your optimism that kids in your high school courses had experience with turtle geometry. I found the design of this unit clickable with very little nutritional value, especially since its web-based design implies little teacher interaction or scaffolding. If the turtle “blocks” used in the example are merely an exercise in sequencing, then they need no punctuation on them whatsoever. If I desired to change the angle or linear units, there was no way to do so (at least no way obvious to me).
Therefore, from a design perspective, there are several problems with the lesson. They include:
  • Low engagement
  • Limits on student creativity, exploration, and tinkering
  • A missed opportunity for students to learn/use mathematical ideas while learning Javascript
I am NOT asking that the lessons yell at kids for being wrong or test them along the way. That would make things worse.

Last Friday afternoon I experienced one of the most joyous moments of my thirty years in education. I took three fifth grade girls (along with their classroom teacher chaperone) out to lunch. That’s right. We walked right out the front gate of the school, into the sunlight, crossed the street, walked down the block and had a leisurely 90-minute lunch at the restaurant of their choice – regrettably the crime against gastronomy (and pizza), California Pizza Kitchen.

A few weeks earlier, I had challenged the 5th graders to write a computer program in MicroWorlds EX that would draw fractional representations of a circle for any fraction a user requested. Feeling a bit cheeky, I said that I would buy lunch for the first kid or group of kids to write a successful program. After a few class sessions dedicated to the challenge, three fifth grade girls were the first to succeed.

I know. I’m a hypocrite.

I reject behaviorism and its evil friends; grades, punishment, bribes and rewards. However, this felt different. The kids were going to join me for lunch like colleagues celebrating an accomplishment. Best of all, their classmates continued working on the programming challenge, without hard feelings, even after “winners” had emerged. Perhaps they knew that their turn would come. I routinely bring treats from my travels into the classroom. If I worked in an office, I might stop occasionally and buy Dunkin Munchkins for my co-workers. I do the same with my students. Why not?

I loved telling the girls that they could order anything they wanted and learning about their dietary habits and favorites. Conversation covered sick babies, interior decorating, roller coasters, face blindness and Khan Academy. The last two topics were introduced by a girl who matter-of-factly stated, “I watch 60 Minutes.” I was jealous of their classroom teacher who knew more about their parents, siblings, friends and neighbors than I do, but a good time was had by all. The genuine gratitude expressed by the girls (including their teacher) made it all worthwhile.

Perhaps the highlight of our lunch was watching the girls color their kid’s menus at a lunch celebrating their computer science prowess.  Once again, Seymour Papert is correct.

Below is the program the girls wrote. It required figuring out how to “teach the turtle” to draw a circle and utilized a bunch of mathematical concepts, including radius, fractions, variables and angle.

For those of you lacking the skills of a 5th grader and can’t read a Logo program, I’ve included a video demonstrating their program at work.

to Pie
 repeat 360 [fd 3 rt 1]
 end
to fraction :n :d
 cg
 setc "black
 pd
 Pie
 pu
 rt 90
 fd 172
 rt 90
 pd
 repeat :d [fd 172 bk 172 rt 360 / :d]
 repeat :n [rt 360 / :d fillit ]
 end
to fillit
 setc color + 5
 pu
 rt 5
 fd 20
 fill
 bk 20
 lt 5
 end
to mem
 repeat :n [fillit pu rt 1 fd :l / :d lt 1]
 rt 1
 bk :n / :d * :l lt 1
 end

 .

An old friend of mine, Dr. Barry Newell, is an astrophysicist who was was the Administrator (in the NASA sense) of Mount Stromlo and Siding Spring Observatories of the Australian National University. He now works on the dynamics of social-ecological systems. In his spare time (back in 1988), he wrote two classic books on Logo programming and mathematics, Turtle Confusion and the accompanying book for educators, Turtles Speak Mathematics. Turtle Confusion features 40 challenging turtle geometry puzzles in a mystery format and Turtles Speak Mathematics helps educators understand the mathematics their students are learning.


I was reminded of the books when Sugar Labs, the folks behind the operating system for the One Laptop Per Child XO laptop, featured the challenges as an activity to accompany TurtleArt software on the XO.

Screenshot of the XO Turtle Confusion Activity

The books’ author, Dr. Barry Newell, gave me permission to share digital copies of the book for personal, educational and non-commercial use. Click here to go to the download page.

These books are best used with versions of Logo such as MicroWorlds EX or Berkeley Logo. Some of the puzzles are very difficult or impossible to solve in Scratch, but it’s worth trying if that is all you have. SNAP! is another potential option. TurtleArt is another possibility. Although, mathematical programming is often easiest and best achieved through the use of textual language (IMHO). A bit of dialect translation might be necessary. For example, CS is often CG (in MicroWorlds EX).