[Edu-sig] As We May Think: What will we automate?

kirby urner kirby.urner at gmail.com
Mon Mar 23 06:40:40 CET 2009


On Sun, Mar 22, 2009 at 8:03 PM, Edward Cherlin <echerlin at gmail.com> wrote:

<< SNIP >>

> We need a language-independent way of teaching programming concepts. I
> have an idea for one based on Turtle Art, which represents programs as
> trees, not texts. Most programming languages have to transform texts
> to trees before executing or compiling them. Trees are far more
> fundamental than texts. Everybody in the LISP world knows that syntax
> is just sugar on the top of a language.
>
> I hope to see other language-independent models.
>

I'm not so sure about this, unless by "language-independent" you mean
we go through several languages, in which case then I agree.

What I shun is a "purist" approach wherein no actually executing
language is considered worthy or good enough, because each and every
one is considered too quirky or special case in some way (as if that
"perfectly general language" at the end of the rainbow could ever be
free of these defects).

This trading away of a very appealing feature ("it runs on a machine")
in favor of some paper and pencil "pureness" is what I'd consider a
rip off, as students want the fun of actually noodling and doodling
with electrified metal, not just with wood pulp.

What's fun about computing is in large degree the superhuman speeds
attainable with fast-oscillating crystals.  The paper and pencil world
shouldn't plan on getting in the way here, though its fine to design
with diagrams, storyboard, all manner of squiggles (we also allow
colored pens, not just pencils).

>> << SNIP >>
>>
>> In the Wonderful World of the Future, most people will be actively
>> creating active digital content with state and flow control, object
>> abstraction, "programming" in the sense of producing automated
>> stuff that accomplishes tasks.
>
> There are several programming languages popular among non-professional
> programmers. These languages get no respect in the professional
> community, and neither do their users. But think what a
> non-professional programmer is. He or she is typically a specialist in
> some other domain who needs custom programming. A statistician, a
> scientist, an engineer, a computer musician...I know people in each of
> those fields, and others, creating their own software to do their
> jobs.

An example or two might be helpful.  I spontaneously think of Excel,
SPSS and Mathematica, all of which get respect, although not so much
as "general purpose languages" -- which has specific meaning.
Mathematica is general purpose in the sense of "comprehensive in what
it covers" but I don't see it as a replacement for SQL or Javascript.

I think it's helpful for all of us to admit that, in writing specific
instructions in language A, we're likely also leveraging others' work
in languages B, C and D.  For example, Python depends on C which in
turn depends on a surrounding operating system with an API to the
hardware, firmware controlled, and so forth.

A musician using a music-editing application is just as much
"programming", only here the "program" is notated in musical notation
(includes loop constructs, other flow instructions) and the execution
is in terms of a MIDI engine or whatever.

People always talk about looms, punch card controlled, as an important
feeder technology, but player pianos, other instruments driven by
recorded media, sometimes rotating metallic, are just as important.

>
> A language for professional programmers can be quite elaborate,
> requiring considerable effort to learn and constant use to maintain. A
> language for non-professionals must be simple in structure, with
> minimal syntax and minimal
>

Per the CP4E rhetoric, such as I understand it, we're aiming for a day
when writing machine executable notations, including musical, scripts
for puppets (avatars, characters) won't be considered a career in an
of itself so frequently as a component skill within other more
comprehensive disciplines.  Per R0ml, we're talking about a new kind
of literacy.

During the Renaissance, the infusion of Hindu-Arabic algorithms and
abacus-based thinking, trickling through Pisa and Liber Abacci, had a
profound effect on the surrounding discourse, including in art, other
media.  I think we're in a similar position, in terms of careers
morphing in response to new digital capabilities.  We're just starting
to experience the "network effects" of 21st century
telecommunications.

In more practical terms, what CP4E looks like is some computer
language experience pre-college (and not just programming those TI
calculators or Lego bricks), then lots of walks of life (career paths)
wherein the job-specific "control surfaces" get accessed lexically
(textually) through exported APIs.

That's how it is already, so I'm extrapolating from a lot of points
already.  If we think of driving a car as "operating the car's API"
then we see how CP4E puts everyone in the driver's seat, not as a full
time chauffeur necessarily (i.e. "programmer") but at least as someone
who knows the freeway system (i.e. Internet), how to serve content.

>> But it won't be text based. There
>> may be a few Morlocks laboring down amongst the lines of code like
>> you and I do.
>
> Mitch Bradley, the author of Open Firmware, programs to bare metal so
> that the rest of us don't have to. He is hardly a Morlock.
>

<rant>

This is what I most disagreed with in Keith's remarks.  I don't think
all those centuries upon centuries of encoding our thinking in lexical
constructs, grammars, is suddenly on the verge of evaporating in to
some drag and drop cartoon-like haze.

Rushing to shield children from the supposedly harmful effects of
lexical coding, while on the other hand stressing reading books and
imagining while so doing (i.e. not needing those pictures "as a
crutch"), is to work at cross purposes in a self defeating pattern.

We're not anti-lexical, aren't trying to kill off the "left brain".
Needing to type lots of characters in order to get things to happen is
not a terrible thing.  Wiggling fingers, instead of just lying in bed
and programming through "chip implants" is also not a high crime.  I'm
all for prosthetics where necessary, but why as elective surgery?  We
have better ways to spend our R&D budgets, than on gratuitous
peripherals for those with already functional biological equipment.

</rant>

>> Working with "text code" will probably be considered
>> "fundamental" and "connected with our roots", like animal-powered
>> agriculture is now....
>

Agriculture is still animal powered I would add, in that animals (such
as humans) eat the ag products, staff the infrastructure, thereby
keeping the wheels turning.  Without that insistent demand from the
animals, there'd be little point doing the work.

> Code will not go away. But as in the AI community long ago, we will
> think of programs to write programs to write programs.
>

Yes, and lets not forget how languages are written in other languages.

Going from Python to its C, C# or Java language "guts" is a great way
to go.  First get the benefits, cut your teeth, feel you've got some
high level skills, then dive beneath the surface and start ripping
into the internals, learning about PyObject or whatever.

It's also fine to go from Python to C++, like in John Zelle's new
book.  Large parts of Python's favorite libraries are written in C++,
notably wx and VPython (many others, feel free to chime in?).

>> So take a look at "programming in schools" from the viewpoint of
>> an adult in 2030, not a 2009 viewpoint, and heaven forbid from the
>> viewpoint of the ancient times when you and I were trained. What
>> do you wish you had been taught 40 years ago?
>
> Not BASIC, not Pascal, not even Python. In my case, Smalltalk,
> LISP/SCHEME, FORTH, and APL/J, each of which presents a different
> model for thinking about how computers work and about how to represent
> knowledge and skill. Each also has a radically simple syntax and a
> universal concept of data structures. In Smalltalk, everything is an
> object. LISP represents everything in trees. APL in forests. FORTH in
> memory layout. LISP, FORTH, and APL each has a different way to model
> object-oriented programming.
>

We've had some discussion on this list about whether we care about
some unified primitive data structure.

I sense countervailing temperaments at work.  Some people just feel
better when there's this sense of a unified substrate, a primitive
simple beginning.  Others are less monotheistic in their proclivities
and don't mind a more heterogeneous "toolbox" model.  You get down to
a bunch of very different things, working in complement.  But there
you have it:  "everything is a thing" in basic English (a useful
design pattern, even though ridiculously misleading).

> "I invented Object-Oriented Programming, and C++ is not what I had in
> mind."--Alan Kay
>

Yet we want to recruit talent willing to learn and work with C++.
I've put quite a bit of work into thinking how we might recruit future
M programmers (suMerian meme), copying humanities disciplines focused
on ancient cultures (linguistics, archeology, history, warcraft...
poetics).  They tell me UC Davis is still a hotbed of MUMPS
scholarship.

This isn't easy work for me though, because in other contexts,
hospitals clinging to "dead language" systems like MUMPS is biting
into my take home pay.  I want elegant FOSS solutions to replace
creaky, unmaintainable, unscalable systems, but bureaucrats fight me,
because people like using what they already know.  Upgrading is
painful, and yet without upgrading, we'd still be living in caves
roasting bats for dinner.

I think I'll stop trying so hard to help the MUMPS people.  Let them
solve their own propagation puzzles eh?  I've got enough on my plate.
Nevermind about suMerian, forget I ever brought it up.

>> What was fashionable but dated?
>
> Computer literacy is the worst. Just as though we had a room where all
> of the pencils and paper and books were kept, where you could fool
> around for an hour or two a week, but you had no books in your
> courses, and you could not do written homework. Earth Treasury is
> working on Digital Textbooks, now that we can give children the use of
> computers 24/7.
>

I like that any teacher can bookmark a boatload, and sustain
storytelling with all manner of media, thanks to those nifty little
URLs, invented in Switzerland they tell me.  If I had to choose,
whether particle physics, or the web itself, was CERN's most valuable
output.... fortunately I don't have to choose (nor would anyone care
if I did (have to)).

>> Extrapolate that forwards, and try to guess what they
>> will want, not what you and I consider important /now/. For extra
>> points, try to guess what they should be teaching *their* kids,
>> for use in the year 2060, and get started on the theoretical
>> underpinnings of *that*.
>
> In 2060 there will be new physics and math that we have no idea of.
> There will be new media, and new art forms. We will not think about

Another way of saying it:  even right now, today, many young people in
our midst are doing stuff that'll seem pretty mundane and mainstream
when they're old people, because then they'll be the ones running
things while the rest of us, who don't understand them today, probably
don't need to just to get our own work completed (we're completing
projects that would've seemed zany and unthinking 50 years ago, except
to people like Vannevar Bush, who anticipated Google (called it a "the
MEMEX" in 1945)).

> economics and politics as we do now. We can expect that everybody on
> Earth who wants to be on the Internet will be. Dire poverty should
> have ended. We cannot specify content in advance. What I want is for
> children to be taught collaborative discovery in the realm of powerful
> ideas.
>

A lot of us were planning to end death by starvation by 2000 (e.g. The
Hunger Project), consider the delay on meeting that target a sign that
we're still dangerously low IQ as a species.

Philanthropists feel its a lot on their shoulders.  Broadening the
base of philanthropists is a core mission of my "cafe philanthropique"
franchise, branded CSN around Portland, mostly viral in the
blogosphere these days (using "viral" in a positive sense is one of
those features of "geekspeak" that confuses the "less geekazoid").

> o What is this? Is it real? How do I know? (In a $2 word, ontology)
>
> o What does this mean? Is it true? Why should you believe me? (epistemology)
>
> o Is this important? Should I do something about it, even if I don't
> want to? (ethics)
>

Yes, I would underscore the relation between FOSS and ethics.  A
rather considerable amount of negative PR has been directed at
"hackers", not limited to trying to make "Linux" to blame for the dot
com crash in some way (more lame Wall Street action, like we've seen a
lot more of more recently), or to making "copying" synonymous with
"pirating" as if (a) pirates "just copied" their booty or (b) as if
copying around our own stuff weren't perfectly legal according to our
own copyright (aka copyleft) laws (aka licenses).

I'd say Richard Stallman is one of our great turn-of-the-millenium
ethicists and it's silly not to recognize that i.e. if you're studying
ethics in university someplace and don't know who Richard Stallman is,
then maybe you go to some lackadaisical academy that shouldn't be
handing out "doctor of philosophy" degrees in anything, let alone in
philosophy itself!

>> I'm wondering what people on this list think about this remark.
>>
>> I responded rather sharply at the time, as I think it's a common
>> dodge, to avoid adding grist to the mill today, because of some
>> hypothetical future wherein said "grist" will be obsolete.
>
> I do not argue against grist. I argue that our children should be able
> to adapt the mill when necessary.
>

I'd argue they will do so, whether we wish it or no.

However, to bring about change in an orchestrated, smooth, even
enjoyable way, takes plenty of skill.  We need to do our damnedest to
transmit any wisdom we may think we have gleaned in this regard.

And let's learn from our elders while we're at it, even as we adapt
the hell out of this mill of ours.  Many are working overtime to make
sure that we "get it" (whatever "it" is).

>> In the meantime, we continue teaching technical subjects as if the
>> FOSS revolution never happened, I think imperiling its gains (sliding
>> back into a pit of "deep silos" proprietary ignorance -- could
>> happen).
>
> Some of us are working on integrating FOSS into the heart of the
> curriculum. In order to penetrate into the other world you speak of,
> we have to get past the current bureaucratic textbook acquisition
> process. We can do that because our books will have no cost. We have
> to integrate software into textbooks, and into the curriculum, as we
> can with one-to-one computing. We know of social and political forces
> preventing school reform. FOSS allows us to go around these obstacles.
> We must prepare to meet others that will arise.
>

Yes, this sounds like a good summary of what a lot of people are
working on.  The idea of a textbook is very reassuring to most
teachers.  They really don't want to venture into a subject without
one.

"No textbook" is like sitting in front of an audience with no sheet
music, expected to just improvise.  That's just not how many musicians
were trained.

You don't spontaneously think up symphonies or duets.  You carefully
craft them over a period of months if not years, then serve them up,
complete and "shrink wrapped" (like a new computer game, a team
effort).

My bias is towards improv and jazz but that's only because I've carved
out various niches within the Internet as my sandbox and playground,
now run around in same "as if" it were some kind of textbook (a new
kind of textbook), consisting mainly of URL-identified resources
cross-referencing in various ways.

Thanks for putting a lot of thought into your posts to this list.

I like remembering my time with Smalltalk.

That notion of saving an "image", a state machine, more like a whole
doll house, with everything paused, is really interesting.

I don't think beginner courses with Python do enough with pickling or
sharing objects over networks.  I know my own curriculum writing is
currently quite deficient in that respect.

I usually find that when I work in a different language for awhile,
then go back to one I'm more familiar with, I have new sensibilities
"under my skin" which effect me even still.  Habits of thought persist
across languages.

That's sometimes for the better, sometimes for the worse.

I'm thinking it's partly the job of textbook writers aka curriculum
designers, to "stack the deck" such that these transition experiences
are more likely to net positive synergies than negative.

That's why I think a *sequence* is important.  It's all fine and good
to say "they should have some exposure to LISP and/or Scheme" but then
exactly where and how?  The devil is in the details.

For me, it might just be that in describing the "little lambda" in
Python (what it does) I take this opportunity jump over to the Big
Lambda religions [screen shot] and show what "real" (heavy duty)
anonymous functions look like ("lambda" is kind of like "anon" in
literature), in all their (sometimes tail recursive) glory.

Likewise with APL/J, my bridge is probably the primitive data
structure known as "a list" in Python, and the idea of "dimension"
with respect to "array" (a kind of list).

Working with Bernie Gunn, the New Zealand geochemist, it was
interesting to see how counterintuitive it seemed to him, that we
could look at v=[[a,b],[c,d]] as a "two dimensional array" such that
v[0][1] in Python was like v[0,1] in Pascal or FORTRAN.

This use of "dimension" is in turn our bridge to "hyperdimension" in
mathematics, where once again, we're talking deeply nested arrays of
the kind APL eats for breakfast -- except in geometry we might call
some of these data structures "polytopes" ("like tesseracts 'n shit"
(sorry -- 'Idiocracy' allusion, a fave movie)).

Thanks again,

Kirby

>
>
> --
> Silent Thunder (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) is my name
> And Children are my nation.
> The Cosmos is my dwelling place, The Truth my destination.
> http://earthtreasury.net/ (Edward Mokurai Cherlin)
>


More information about the Edu-sig mailing list