[Edu-sig] a modest proposal II

Steve Morris smorris@nexen.com
Fri, 4 Feb 2000 16:53:13 -0500 (EST)


Steve Morris writes:
 > Let me suggest that the goal be restated. Rather than teaching
 > programming to the masses perhaps the goal should be to teach the
 > masses to solve various problems using programming.

Let me approach this a different way.

The world seems to be filled with ad hoc solutions to how one teaches
programming. Each has its separate goals, successes and failures. Most
of this seems to be isolated projects and individual contributions. I
propose that we generalize a little. We need a platform where the
emphasis is on providing worlds with interesting problems to
solve. Let individual educators provide the worlds, let us provide the
platform that we can all share for our individual teaching needs. I
basically propose an umbrella project that provides components and
tools useful to many problem sets and teaching goals.  The emphasis
should be on that shareability. Creating worlds should be an easily
defined and implement process. If someone wants to create a segment on
gravity and parabolic motion they shouln't have to research languages
and create a programming environment. Lets give them a system that
they can customize for their individulaized ideosyncratic needs to
save starting from scratch.

Here I am guided by a talk I saw given by Semour Pappert (sic.)
probably 15-20 years ago. I think his point is still valid so I will
try to paraphrase. Undoubtedly he said the same things in his books
but the talk stands out in my mind.

He talked about how small children learn foreign languages when they
move to a place where that language is spoken, without the benefit of
instruction. He observes that they learn by a variety of detailed
processes but the overriding one is that they experimentally use it to
interact with their new world, i.e. they talk to friends, play games,
ask for a snack etc.  They learn naturally because it (the new
language) is useful. They don't think that they are learning a
language per se. They are living in a world where the language allows
them to solve important problems. Small steps have small uses, bigger
steps have bigger rewards. Later steps build on earlier ones.

His 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.

Regards,

Steve Morris