[Edu-sig] Losing the plot

Kirby Urner urnerk@qwest.net
Thu, 23 Jan 2003 13:40:44 -0800


At 08:49 PM 1/23/2003 +0000, ahimsa wrote:
>On Thu, 2003-01-23 at 20:16, Patrick K. O'Brien wrote:
>
> > My understanding is that the official CP4E effort has been abandoned, for
> > now, due to insufficient funding. This list remains, and several
> > individuals keep the dream alive. PyGeo is one man's admirable attempt to
> > bring 3-d geometric manipulations to the masses (I hope that's an accurate
> > description). Others here have their pet projects. I like to think that my
> > PyCrust project helps make Python that much more approachable to novices.
> >
> > I think interested parties should pursue their interests and lobby for
> > support in the best tradition of Open Source. Or lend a hand to existing
> > projects. There's plenty that can be done. What are your interests?
>
>Hello Patrick
>Thanks for getting back to me about my query.
>It was my impression from sifting through the documentation that the
>CP4E project was dormant due to funding issues, which is a real shame. I
>would certainly advocate for it to be extended here in the UK, and using
>OSS and Python would be a pretty low-cost way of doing so.

People have taken the broad mission of CP4E (computer programming for
everyone) and run with it in various directions.

One of the most obvious directions is into the schools.

And there you get a fork in the road, with most heading towards the computer
science curriculum, but others of us exploring the role of programming
(and other modes of computer use) in other parts of the curriculum as well
e.g. in math class (there's a tradition here too of course, which precedes
Python -- Seymour Papert's Logo initiative for example).

Also, under the broad heading of "school", there's this question of levels
or target audience -- are we talking college, high school, earlier? or
maybe adult education?  All of the above no doubt.  But each individual
will have their bias/strength.

What I learned about from Jeff Elkner's posts and web pages over the years
(he introduced Python to high schoolers at his school -- also Linux based),
is the importance of a text, at least something on-line that's printable,
if not a bound text book.  He uses 'How to Think Like a Computer
Scientist', which he adapted from the original to work with Python.
This work is on-line.

I had recent discussions with a teacher casting about for a language
to use in a computer intro course (high school level).  He was drawn
to Scheme, largely on the strength of this resource: http://www.htdp.org/
(How to Design Programs), which is indeed the kind of thing a teacher
looks for when designing a course.  He had every right to be excited
about it.

I told this teacher that I thought highly of Scheme (which I do -- it's
always on my list as a candidate intro language) and its educational
materials, but that it's also my view that an intro course (especially
an intro course) should look at (at least) two languages, in part
because it's in comparing and contrasting them that some of the
commonalities leap to the fore -- helping to bring home some of the
more abstract concepts (flow of control, named functions, parameters,
data structures ...).

Beginners will better appreciate the world they're entering if they get
exposure to some of the variety that's out there (nothing like a couple
hours with J to blow one's mind re the stuff people find useful).

I recommended Python as a good candidate for a second language, in part
because, unlike Scheme, it really makes the class/object model accessible
right at the outset (with the everything-is-an-object paradigm -- with
users rolling new types of their own).

Although maybe not precisely CP4E's official intent, I look at "computer
programming for everyone" as meaning more than everyone learning Python.
Python is a good way to get *access* to programming, but then you find
yourself learning all kinds of little languages, from Lego Mindstorms
to some JavaScript to your calculator, to programming your VCR.  And
this is actually in harmony with Python's goals as a language -- it's
a "glue language" (i.e. "works well with others") and also an "API
language" (often used to bind an application's functionality to some
syntax scriptable "from the outside").

I emphasize the above because I think it's possible for CP4Eers (people
who've taken on this mission) to be pro Python without being tiresomely
negatory towards all other languages, thereby falling into one of those
deep "language war" wells which dot the internet landscape like so many
vortices from hell (loud sucking sounds).  It's not about Python OR
Scheme or Python OR C# or Python OR Java.  It's about Python AND _____
(fill in the blank, with as many languages as you wish).

That being said, it makes sense to play up Python's strengths.  No need
to be shy.

Lots of CS teachers are indeed moving to Python.

>It has been of interest to me that in various readings that I have
>started over the last few months, there have been several references
>from different sources about how computer programming is an extension of
>the cognitive psychology of problem solving. I would extend this and
>suggest that comp programming is similar to, or a branch of,
>epistemology: it concerns the construction and negotiation of problem
>frames and solutions to those problems, and really underscores the
>processes by which we organise the world, its data, and - to top it off
>- how we organise our thinking processes (analysis, hypothesis,
>antithesis, synthesis - the usual Aristotlean process). From this

There's a question here as to whether programming mirrors our thought
process or whether, after we program for awhile, our thought process
starts to take on some features of programming.  Certainly it's a
great source of metaphors.

The books usually say "objects" (in the programmed sense) are metaphors
for objects in the real world i.e. the problem space is modeled by the
solution space in terms of objects.  But it works the other way too:
getting used to thinking of composition and inheritance affects the
way you see the real world (suddenly, that cell phone "really is" a
subclass of the more generic telephone class, and so on).

Good thing my dog here overrides some of those wolf methods, with more
domesticated versions.

>perspective, I think that teaching school kids how to program is not
>only great vis-a-vis the development of computer/digital savvy (as was
>suggested in the EDU_SIG docs), but also a significant step forward into
>advancing structured cognitive training for kids (and adults too) to
>assist them in the analysis of problems, the proposition and testing of
>solutions and a meta-analytic perspective in terms of the construction,
>relevance, and flow of data/cognitive constructs: computer science meets
>George Kelly in education.

Shouldn't programming be taught hand-in-hand with mathematics, which is
already so vested in "algorithms"?

>Anyway, I ramble ...
>To close this off, I guess that I'll sit back and lurk for a while and
>keep hacking away at learning both Python and Linux, take courses where
>I can (anyone teaching Python in SE London?) and read, read, read.
>BTW, Patrick - I surfed over to the sourceforge site to check out
>PyCrust (lol!!) and apprantly they are no longer carrying the files and
>didn't have a forward link that I could see. Can you give me an
>alternate link to check it out please.
>All the best
>Andrew

PyCrust is cool.  I've used it with pleasure.  I should find the latest
version and play with it some more.

Kirby