[Edu-sig] a modest proposal II

Paul Fernhout pdfernhout@kurtz-fernhout.com
Fri, 04 Feb 2000 18:03:01 -0500

Steve Morris wrote:

> [Papert's] suggestion was that the power of computers in education was their
> ability to make virtual worlds which required the use of the skills
> that needed to be learned. To teach math he said that you need to
> create a math world where math is the language required to reach
> interesting goals.
> I think this directly applies to learning programming. In fact
> programability should be an important feature of these worlds
> regardless of other educational objectives. We need to create worlds
> where programming is easy and useful and interesting.  To be a useful
> and powerful teaching tool programming worlds should be easy to
> create and expand. Lets not limit ourselves to a world where it is
> easy to learn programming, lets use that feature to make it easy to
> learn other things.
> I have my personal biases about what such a project would look like. I
> would populate it with object and their defining classes. I would
> expand the browser metaphore to give more textual information about
> objects, i.e. merge the basic browser with the help system. I would
> probably attempt to support multiple languages. I would allow plugin
> GUI's to encourage experimentation. I would start with the process of
> formally defining what a problem space or world looks like, what its
> components are, how to manipulate them. The formal definition would
> then split the project into the two components of defining worlds and
> creating the tools that manipulate them.

I could not agree more!

Some Seymour Papert related links:
Two company/book related sites he is involved with:

Papert has for example developed a simulation where young children learn
to program by directing a knight around on a horse in front of a castle.
Papert's thinking was in large part behind our design of our garden
simulator -- an educational world where children can learn about science
playing in a virtual garden. (No programming yet though -- that's what
I'd like to use Python for.) The term "microworld" covers some of this
sort of learning by exploring and constructing in a limited environment
(which may not always entail programming). More details on microworlds

A Smalltalk teaching product called LearningWorks
http://learningworks.neometron.com/ includes specially designed starter
browsers (and even limited debuggers!) where for example a student
learns programming by sending Smalltalk messages to a square in a window
connected to the browser. Please look at the pictures here for some
This is somewhat like teaching using the Logo turtle. One can tell the
square to move left or right, or change the color. The Square represents
an instance of a class. Then one can add behaviors to the square class,
and invoke them.  So, there is immediate feedback in a tiny virtual
world. LearningWorks includes an authoring tool    
to make these sorts of systems (as sort of learning notebooks). The
LearningWorks system comes with a 3D interactive world (somewhat like a
multi user Alice) where people can create dynamic objects and interact
with them. Various papers on it are here: 
I imagine one could add a Python interpreter to the LearningWorks

I recently downloaded a Squeak program that teaches programming using a
turtle. You have a "broken" program missing a couple of statement. This
program makes a turtle move. You drag and drop existing statements into
the program to fix it. After each try, the turtle moves and you can see
the effect of your change. So here is a simple learning world of
creating sequences by trying to match a graphical pattern. These
patterns get more complex and involve more programming constructs
(loops, etc.) as you progress through the program. YOu need to learn the
language to get the results you want. An Alice-like 3D environment has
been added to Squeak for teaching programming as well.

Again, this is not to say use Smalltalk or Logo instead of Python. This
is to say that these good ideas could be translated into a new Python
teaching environment. There is much good work out there in ways to teach
programming -- the Python learning effort should either build on top of
it or at least "borrow" good ideas from it whenever possible.

-Paul Fernhout
Kurtz-Fernhout Software 
Developers of custom software and educational simulations
Creators of the open source Garden with Insight(TM) garden simulator