All God’s Children Gotta Learn to Program!

And It’s NOT About Getting a Job

On the front page, above the fold, of the New York Times, instead of pictures of X killing Y for, sadly, lots of X and for, very, very sadly, lots of Y, on May 11, 2014, three youngsters and one oldster are pictured — interacting with each other and with laptops as the youngsters are engaged in learning computer programming (sort of). Yes, sports fans, front and center, of the Sunday edition of the New York Times, educational technology is featured! Of all the possible images and stories available to the editors of the august New York Times, a worldwide paper of record, they chose a picture of kids learning to program. Break out the champagne bottles or at least the blog posts; this is an amazing event that needs to be marked!

The author of that amazing piece is Matt Richtel, a New York Times Pulitzer Prize-winning reporter who has covered educational technology for several years and who does not pull any punches about the role (or not) and impact (or not) of technology in K-12. In the May 11 piece, Richtel describes, in enjoyable and engaging prose, the explosive "learn to program in K-12" movement. (In fact, stop reading this blog and read Matt’s article. Hmmm ...On second thought....)

In 1967, Seymour Papert and colleagues invented Logo, a programming language designed expressly for kids and intended not to teach programming per se, but to teach "powerful ideas" in mathematics, e.g., iteration and recursion. Initially, Logo was used to teach "Turtle Geometry." How would you tell a turtle to trace out a box in the sand with its feet? Tell the turtle to move:

forward 100

right 90

forward 100

right 90

forward 100

right 90

forward 100

(Yes, we know that Turtles can’t read English, can’t count, and could care less about tracing out a perfect box — picky, picky, picky.)

While professional programmers were programming in languages such as Algol, Cobol, etc. kids in schools all around the world were writing Logo programs — making virtual turtles do stunning movements on a computer screen. Indeed, Logo spread like wildfire from Cambridge, MA to literally all over the world and was in daily use in schools well into the 1980s.

At the time, some believed that if kids learned computer programming then the logic and problem solving skills that underlie programming would carry over — transfer — to problem solving in the real world. Unfortunately, the empirical research to support that claim didn’t really support that claim.

Yes, (many of) the underlying skills in laying out a plan to build a bookshelf from wood are the same underlying skills needed for laying out a plan for a bus schedule for a city. But, teaching those underlying general skills in the context of programming doesn’t lead to individuals becoming better at designing a bookshelf or designing a bus schedule. Problem solving skills tend to be domain specific.

The lesson learned from this "teach everyone programming so they will become good problem solvers" period: Teach a carpenter problem-solving skills in the context of carpentry projects; teach a city planner problem-solving skills in the context of city planning projects — even though the problem solving skills have a general formulation, independent of carpentry or city planning.

Fast forward to today: Logo begat, via a series of begattings, Scratch. Developed by Mitch Resnick, a student of Seymour’s, and now the LEGO Papert Professor of Learning Research at MIT, Scratch is a graphical programming language, again designed expressly for children. Instead of exploring mathematical ideas such as geometry, children use Scratch to tell stories. After all, a story is process, with a beginning, a middle, and an end. And as a process, a story is very amenable to being expressed as a computer program in general, and a Scratch program, more specifically. Some stories might even be called games, since a story could invite readers into interacting with characters in the story. As of May 12, 2014 1:28pm EDT, 5,473,252 Scratch stories have been shared by Scratch story-tellers!

Is Scratch’s goal to make future programmers? Not really. Scratch makes computation, the technology after paper-and-pencil technology, available for children as a language, as a means of expression… to tell stories. Story telling is core to human conversation; we communicate with each other by telling stories. Now we can use computation to express new kinds of stories. Pretty cool, wouldn’t you say?

Indeed, the title to Richtel’s NYT article is: "Reading, Writing, Arithmetic, and Lately, Coding." Yes, coding is a way to express ideas; instead of using paper-and-pencil, we can now use computation. Professors Kemi Jona and Uri Wilensky, at Northwestern University, in their work in educational technology are using computation to express ideas in science — ideas that have previously been expressed only via paper-and-pencil technology. It turns out that ideas, when they are expressed in computational terms, do engender understanding! While the Holy Grail of Transfer didn’t materialize, research — it is early so we have to be careful here — is emerging that indicates that when kids use computation it helps them learn the ideas in science, in math ... actually, in whatever. Stay tuned.

Gates and Zuckerberg are plunking down big bucks (for education) to support the explosion of Web sites and organizations that enable the teaching and learning of computer programming. While these efforts may or may not lead to increases in the number of professional programmers, the real issue is that computation is finally being acknowledged as a major mode of expression, along with using paper-and-pencil technology to write, draw, etc. And being conversant, nay literate, in that new media, that new language, is increasingly becoming important since many of the things we use on an everyday basis are expressed in this new language. How many times a day do you ask Google something on your smartphone or laptop?

While we teach writing, drawing, etc. to children knowing full well that few will turn out to be Hemingways or Picassos, we now need to teach computation — programming — to children for the same reasons: to enable self-expression and communication.

Featured