"Twenty Things to Do with a Computer" Revisited

In 1971 Seymour Papert and Cynthia Solomon published “Twenty Things to Do with a Computer” (MIT Artificial Intelligence Memo No. 248 / Logo Memo No. 3). Some of the activities suggested included use of a turtle to create art, use of a computer to create music (using Logo music extensions developed by Jean Bamberger), creation of a computer-generated light show, creation of computer-generated poetry, and construction of computer-controlled puppets. The original publication can be accessed here:

The fiftieth anniversary of this publication provides an opportunity to revisit this list. Fifty years later, what are some interesting and engaging things that might be done with a computer?

  1. Computer Embroidery

Currently Cynthia Solomon is spending some of her spare time using TurtleStitch, an extension of Snap! that can be used with a computer-controlled embroidery machine:


Elaine Wolfe recently posted examples of embroidery that she created after taking a TurtleStitch course led by Cynthia and Susan Klimczak:


Some of the oldies are still thriving, even more so as technology improves. Back then, robot turtles had to be tethered to the computer with cables that got twisted and limited motion. Now, there are Bluetooth and Zigbee tetherless robots, and with Micro:Blocks you can even download a Snap! program to a robot and have it be fully autonomous.

Sylvia Libow Martinez and Gary S. Stager are putting together a book about Twenty Things with contributions by authors who were influenced by it. Should be out soon.

It will be published by https://cmkpress.com/

Twenty Things to Do with a Computer stimulated a lot of conversations because of the time in which it appeared - in 1971, more than five years before the Apple II, Radio Shack TRS-80, and Commodore Pet computers were released (in 1977). It will be great to have a book with reflections by some of those who were influenced by it.

However, it is equally interesting to look forward as well as back, and think about the things that can be done today that were not in the list. For example, even though the memo was written in the MIT Artificial Intelligence Laboratory, none of the examples referenced artificial intelligence or machine learning. Are there other examples of leading edge things being done in Snap! today that go beyond activities in the original list?

In other words, if a list of "Twenty Things to Do with Snap!" were created, what might be on that list?

I think there was quite a lot of AI in Twenty Things.

  1. Turtle Biology - robots reacting to sensors
  2. Play with Semi-random Musical Effects and then Try Serious Composing
  3. Write Concrete Poetry
  4. Physics in the Finger-Tips - Still an active example of AI - Balancing a CartPole System with Reinforcement Learning
  5. Explain Yourself

50 years ago these were examples of AI.

Thanks for highlighting these - you're certainly in a position to know! (These didn't register as AI when I read them.) Thanks, also, for the Cartpole link (Physics in the Finger-Tips), which is one of the more interesting and challenging examples even today.

So, are there any interesting examples of Snap! projects today that would not have been feasible with the technology of fifty years ago?

Anything that uses a lot of data, such as manipulating the pixels of an image. (Back then, remember, screen turtles were always triangle-shaped, no costumes.)

Anything that uses the Internet! (Cloud variables, for example, but also web site scrapers -- what's the temperature here now?)

These are great examples of advances over the past half century - ARPANET was not implemented until 1969 and likely would not have been in widespread use until the 1970's. And of course the web did not appear until the early 1990's. So network-based applications would not have been in the mix fifty years ago.

What about emulation of parallel processing? It doesn't seem likely that a system run over time share with an ASR-33 Teletype as a terminal accessed via an acoustic coupler would have had the capacity for the multiple processes that can be run in Snap! today.

You know, as I often say to students, the progress of computer technology has been a competition between the hardware people, who try to make computers faster, and the software people, who try to make computers slower. The PDP-11 in my high school computer lab could support 20 users faster than the Mac on my desk can support just me! The main reason is that the PDP-11 didn't have a windows-based user interface; it had a command line. So basically none of the computer's time went into UI; it all went into computation. But there are secondary reasons such as the dozen or so system extensions I'm running to support my fancy keyboard and my fancy trackball, the fact that I'm playing music from the computer in parallel with everything else, and the hundred-odd operating system processes that are doing who knows what.

Anyway, why talk about emulation of parallel processing? A timesharing system such as the Logo group was running on their PDP-11 is already parallel processing. What we can do today that couldn't be done then is mainly all about graphics. It's not that Snap! has multiple processes; it's that those processes are doing the graphics to animate a sprite.

There were two relevant efforts to support graphics better by building special hardware: the sprite chip that TI built for the 99/4 and the vector display hardware in the General Turtle 2500 (am I remembering the number correctly?).

As for the Teletype and the acoustic coupler, those things were a bottleneck for the user interface, but they didn't slow down the actual computation. :~)

In the late 1970's Texas Instruments donated a dozen TI 99/4 microcomputers to us. The sprites were great! If I recall correctly, programs were saved to an audio cassette using the Kansas City data format. One student in a class reported that his daughter had recorded Christmas carols on his cassette, erasing his homework.

To return to the original question, if you were to pick "Twenty Things to Do with Snap!" as a stimulus (provocation?) to discussion, to what extent would they overlap with the original list from fifty year ago and to what extent would they differ?

The real subtext of "Twenty Things" was "Twenty things to do by programming a computer." After all, in practice one of the most beloved things my high school students did with our computer was use its text editor to write their English papers, so when their teacher made them correct the errors in it, the task wasn't torture as it was before computers. But that isn't in "Twenty Things."

So, many of the things they list can be done all the better today without programming, and therefore wouldn't be in today's list. Making music in Garage Band is way cooler than programming Jeanne Bamberger's music box in Logo.

But there are surprising exceptions. Anybody can draw a square in a modern drawing program with a simple click-and-drag. We thought turtle graphics would be dead; that was part of the impetus behind giving them costumes and using them to tell stories. But it turns out kids are still excited the first time they draw a square in (insert programming language here)! And squirals are just as magic as ever. Fractals, too, although computers are now fast enough to draw Mandelbrot sets point by point, so you can program more beautiful ones, using programming techniques that don't illuminate recursion the way trees and Koch snowflakes do.

I guess I'm saying that really redoing the list in the spirit of the original requires paying attention to "what do you learn by doing this?" For Papert, it was all about mathematics. Turtle graphics teaches finite differential geometry. Concrete poetry teaches production grammars. And so on. Of course the twenty things were also supposed to be fun!

So my list wouldn't be all that different. The currently exciting math has shifted to some extent, from geometry to statistics, because of machine learning. So AI projects would be good, preferably projects that really teach a simplified but honest understanding of computational neural networks.

Robotics, too, would still be on the list but maybe in different forms. FIRST has raised the bar tremendously on the hardware side. My (third-hand) understanding is that their teams do the software side with a lot of copy-pasting, and not so much understanding or originality as Logo teachers would want to see. But even in the old days, trying to drive a robot turtle up a ramp taught things about friction and, more generally, the uncooperativeness of physical reality with respect to theoretical understanding.

Kids write 3D ray tracing programs in Snap!. Personally I find that level of attention to detail beyond my level of patience (not to mention competence). But there's plenty of good mathematics in that. And it's something well beyond the speed of the early personal computers.

Music, which I rejected earlier, also has some good mathematics in it: the Pythagorean investigation of musical intervals as rational numbers. In Jeanne's work, as I recall, the notes were taken as primitive building blocks, not looking inside the sine waves. I'd be happy with a music microworld that taught the beginnings of music theory.

Sorry, this isn't the list-of-20 you wanted, but some musings about the underlying purpose.

  • Spice up your photos with your own graphic effects
  • Turn your voice into that of a giant / mouse / monster
  • Make a magic mirror
  • Turn your name into colors
  • Hide a secret in a song / picture
  • Make a weather / CO2 / air quality / tidal map
  • Make a painting entirely with dice

Another domain to consider is exact arithmetic as in Snap!'s bignum library. E.g. my My encryption project based on converting text to bignums Another example is that using rational numbers one can explore series like 1/2, 3/4, 7/8, ... and NOT get 1 after about 30 iterations (due to floating point number limitations). I recall a 10-year old who disliked mathematics who was so excited when her program that repeatedly multiplied by a small number produced a number that had over 2000 digits in it. She got up excitedly to tell her friends what she just did.

Danny Hillis a few years after Twenty Things wrote Ten Things to do with a Better Computer. All the examples were AI challenges (mid-1970s era). Adele Goldberg then wrote "Doing what Danny wants" which addressed some of Danny's challenges in Smalltalk. If anyone has either paper please share!!

Maybe we need a "Twenty machine learning challenges to address in Snap!"

Those are great examples, Jens.

I'm so not that kind of person, though. My favorite projects are things like Church numerals and solving logic puzzles. (Who lives in the yellow house?)

@bh @jens These are all great examples! For symbolic reasons, I would add the Snap! extension, TurtleStitch, and computer-controlled embroidery machines (because of Cynthia Solomon's current work in this area).

@toontalk I found this reference to "Ten Things to Do with a Better Computer" in a paper by Mitch Resnick:

Behavior Construction Kits

"Seymour Papert and Cynthia Solomon wrote a memo called "Twenty Things to do with a Computer" (Papert and Solomon, 1971). The memo described a wonderful collection of activities, pushing computers in directions that few other people had imagined. Some of the activities on their list eventually became commonplace; others are still visionary today. A few years later, Danny Hillis (then an undergraduate at MIT) wrote a memo entitled "Ten Things to do with a Better Computer" (Hillis, 1975), describing a new set of activities that would be possible if computers could execute instructions in parallel. Hillis later realized some of these ideas in his massively-parallel Connection Machine computer (Hillis, 1985)."

Yes, definitely. That's only the first step into programmable power tools; think laser cutters, for example.

Second step; I forgot BeetleBlox and 3D printers.

For that matter, there are the Snap! extensions that aren't about the physical world, such as Edgy for graph theory. That'd go on the list, although another unstated goal in the Twenty Things paper is that they're things for youngish children, and Edgy is more aimed at undergraduates (18-22 years old).

I'd add to your list

  • Making animations with interactive parameters.

(That's my favorite)

One can interactively animate a fractal tree or plots/diagrams (math); it can be a virus spread (biology); it can be gravitation and/or magnetism acting on a chain of linked elements (physics); it can be text editing in text editor (office tool); it can be Benham disc; it can be various size/shape 'pointilism' (art); etc etc etc

Maybe someone can make a wiki post (is that what it's called?)?