Constructionism vs. Instructionism
In the 1980s Seymour Papert delivered the following speech by video to a conference of educators in Japan.
Part 4: Advanced Math and LOGO
Seymour Papert: In our last example, we won't be talking about mathematics, we'll be doing some more technical mathematics. And I'm going to show you some programming in LOGO that uses more advanced mathematical ideas to get some very beautiful results.
When this procedure is run by this instruction, the procedure's first action is to note that :SIDE is 50, so that FD :SIDE will become FD 50, and the turtle's action will be FD 50 RT 90. The procedure's next action is SQUARE 50, which will start the cycle over again. SIDE is of course still 50. The turtle does once more FD 50 RT 90. And you might be asking yourself, why do we need such a fancy thing as recursion to draw a square? Surely REPEAT would be good enough?
Indeed REPEAT would be adequate, if our interest were in the product. But if our interest is in exploration, recursion allows us to make such changes as this. I replaced SQUARE :SIDE by SQUARE :SIDE +10, and this small modification will give rise to the most surprising and interesting mathematical result. SIDE is now 60. FD 60, RT 90 is going to bring the turtle down below that line. We will now do SQUARE 70. SIDE will be 70, FD 70 RT 90. You guessed it, SQUARE 80. SIDE will now become 80, FD 80 RT 90. And where's it going to lead? A full screen version shows the pattern: forward a distance, right 90, increase the distance, repeat.
We got this quite interesting result by making a small change to the procedure for SQUARE. Let's follow that rule. Make a small change to this -- instead of 90 as the angle, let's try 93. Notice how we get this effect of twisted squares. Notice that curved line that appears, an emergent phenomenon, quite interesting.
So let's try to do the same thing with triangles. First straight triangles, using 120. Same process. 123 FD a distance, RT 123, increase the distance, repeat. A very interesting result. And since 90 and 120 gave something interesting let's try 180 -- it's sort of in the same family. But the result, as a product anyway, doesn't look so interesting. Think about the process, though. Maybe if you rotated that as it went up and down, for example by trying 177 instead of 180, look how it turns as it goes backwards and forwards.
I see this as a result that's interesting in lots of ways: visually, mathematically, and as an example of what happens when you follow a powerful heuristic. I think it's pretty enough to try again without being cluttered by all that text on the screen. It's worth thinking about too.
In all these spirals, there's a common pattern. You draw a line, you turn, maybe 90, maybe 93, some other angle. We've been exploring what happens when you vary the angle, but you could vary something else. Instead of a line, you could have another figure. In fact, in the example I have on this other computer, the figure is a triangle. What's going on in this program is, "Draw the triangle, turn, draw a slightly larger triangle, turn, draw a slightly larger triangle." What comes out looks like a seashell.
I chose spirals as an entry point to recursion because such simple, such small changes can so often produce interesting, surprising, and beautiful results. The possibilities are endless, like recursion.