Archive for August 5, 2010

Adele Goldberg: Modeling not Programming

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.

August 5, 2010 at 11:14 am 2 comments

Growth of Python in CS1

I just got a report from Tracy Dunkelberger of Pearson on the state of the Python CS1 market.  The market size is estimated to be about 20,300 students per year, up 45% since last year.  The market has had around 40% gains for each of the last three years.  She also shared with me some market share data which she asked me not to share further — I think it’s sufficient to say that our Media Computation book isn’t the top book in the market, but is doing well.

August 5, 2010 at 10:48 am 4 comments

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

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,053,933 hits
August 2010

CS Teaching Tips