Adele Goldberg: Modeling not Programming

August 5, 2010 at 11:14 am 2 comments

You know how sometimes you read something that directly speaks to what you’ve been thinking about lately?  From Adele Goldberg’s chapter “Alan Kay and the Search for the Holy Grail” in Points of View: A Tribute to Alan Kay.

It would be a mistake to think that this notion of programming for everyone could be satisfied by any single programming language, and certainly not by one of the structured, procedural, 1960s languages.  With “programming” Alan really intended “modeling.” A person achieves Alan’s goal if he or she can construct a computer executable model of a real world phenomenon, perhaps without understanding the detailed syntax and execution model of a professional programming language. The challenge question was (and sill is): What combination of hardware, operating system, language, library, and user-level presentation and interaction enables general purpose modeling?…

Why is this distinction between modeling and programming critical? It lifts our thinking about teaching from how to program functions–such as sorting names or calculating a bank balance or directing a robot to talk in a circle–to how anyone might express his or her understanding of how complex persistent interactions can be represented, simulated, and observed. It also emphasizes the creation of shared representations of what we can think of as the primitive objects from which new and interesting objects (aka models) can be constructed, as well as the framework in which the construction can take place.  Thinking in this way allows us to view software much like a dictionary of words (the interesting objects) from which particular words are selected and connected to form new patterns — a programmer’s “novel.”  No one has to know all the words in the dictionary to write a story, no one has to know all the objects in a programming language library to start making new connections that tell the computer what to do.

It’s a great goal that the modeler should not have to know all the objects “to start making new connections.” It does still leave the requirement that the modeler has to know how to connect the objects.  Maybe that’s the phonics of computing.  We have evidence from several sources that the simple ideas (variables and values, sequential execution, parameter passing to other routines) are huge problems for students, and those are some of the necessities for connecting objects.

Entry filed under: Uncategorized. Tags: , .

Growth of Python in CS1 Off to Denmark and ICER!

2 Comments Add your own

  • 1. Alan Kay  |  August 5, 2010 at 12:54 pm

    Hi Mark,

    This is one of the very early thoughts about what this stuff needed to turn into.

    The idea was an analogy to a composite of what expositional and descriptive writing, and of what mathematics both allow us to do.

    Both of these more familiar representation systems also have some complexities in how their basic building blocks can be composed together to make more interesting and germane constructions that illuminate and communicate the ideas, and allow them to be reasoned about.

    It’s interesting to note that the ability to speak doesn’t generally automatically confer the ability to write well. And one could use the same phrase “are huge problems for students”. And this is even more generally true for mathematical expression.

    I think the conclusion from experience is that both of these are skills which require thousands of hours of doing to attain fluency. And I think that “programming of the future” will also require similar amounts of effort and experience.

    The big difference could be that the “programming of the future” might possibly be cast in a much more human usable form. From the past and still today, most languages are really only designed to be read by machines, and so their possibilities for human communication have been suppressed to a great extent.

    An exception are are some of the “pseudocodes” that have been devised (e.g. by Harel) to help students understand ideas. Programming languaeg forms of the future should be designed first and foremost to transmit ideas between humans (and in a way that still allows them to be interpreted and debugged on a machine).



  • […] This post was mentioned on Twitter by TATSUMI, Takeo:辰己 丈夫, Max Steel. Max Steel said: Adele Goldberg: Modeling not Programming […]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other followers


Recent Posts

Blog Stats

  • 2,039,511 hits
August 2010

CS Teaching Tips

%d bloggers like this: