It appears Guido is
off at a workshop about
math education with the Shuttleworth foundation. There's a summary
of the first day. All via this post
which talks about Rur-Ple.
Anyway, a couple days ago someone emailed me about PyLogo, and I hadn't really done anything with that
for some time, so I dusted it off and cleaned it up some. Arg, I have
to update that page, but now the trunk is in subversion. I even monkeypatched
doctest to
doctest Logo. Wasn't too hard really.
I bring this up because Logo, Smalltalk, and Python all come up in
the post about the first day. With Alan Kay there along with Guido,
Smalltalk/Squeak is no surprise. In addition
to Alan being one of the main people behind Smalltalk (and several
other things, like overlapping windows), I've also often seen him
mention Logo as an inspiration. That summary says he's recently
written a version of Logo in Javascript. Cool.
Something I've thought about doing, in addition to implementing Logo
in Javascript, is implement Logo in the DOM. That means: variables
are elements. Blocks aka lists are also elements. E.g.:
I think this would be astonishingly slow to execute. But the idea is intriguing.
You could use some of the native abilities of browsers to edit markup,
to edit the code itself. The code is intrinsically structured. It's
not structured with glyphs, it has an underlying structure.
Representing variables as elements themselves provides a concrete
nature to the variable -- you can see it as a real thing. I think
this is very much similar to some of what was under Hypercard. And of
course it's on the web, which is the most relevent medium of our time,
even for kids.
In the discussion is also the question of relevance. Why should a
child learn these concepts of abstraction? (Not just programming,
though I think programming is one of the most accessible ways of
learning many higher abstractions.) This actually isn't that hard.
Kids don't need a lot of justification, they don't need to make money
with the skill, they don't even need to be very good at what they do.
They can be a surprisingly sympathetic audience, especially when you
are making something. This is why programming is great, and
traditional algebra sucks.
The harder part is actually figuring out why this would be relevant to
the teachers. Logo has always had this curse. Students do well
with it, but they can't really do well without the influence of the
teacher. And very few teachers get it, or get what is going on and
what is being taught. It's not relevant to them.
This is much harder to consider, especially in third world countries
where there is more pressure to emphasize practical skills, and less
value placed on abstract skills. For most people, math beyond
arithmetic really isn't that practical.
I don't really know. Turtle graphics aren't bad -- there are many
much more abstract and useless things in programming. It's important
to remember that this is not about teaching programming. It's about
teaching math, or abstraction, or debugging. Debugging is a good one
-- not well articulated as a skill, but surprisingly portable across
domains. It's kind of like the scientific method applied to the
work of the craftsman.
But what is relevant? There's a problem of connectivity. So it is
presumed that the program runs in isolation, in a world tied to the
laptop, run in isolation.
I think that's the opposite of what should be done. The relevance of
a program is not that it can be as isolated and disconnect as the
student is. Instead the program can be connected even when the
student is not. The program can be a representative. A program is
relevant because it can be shared. It is relevant because it can
persist in the online environment even though the child cannot.
Relevance is something like a story, an agent, a responder... things
that are autonomous in some fashion. Chat bots would be great fun.
But still, it is very hard to find this relevant. As much as I
believe in the underlying importance of those skills, that importance
is built up in my own values, and many of those values are predicated
on my own privilege and the ability to consider abstract motivations.
I don't think my values are inappropriate for the third world; quite
the contrary, I see pragmatism as an oppression. But communicating
that is very, very hard.
Anyway, hard stuff but important stuff. I hope their workshop is successful.