The Artima Developer Community
Sponsored Link

Python Buzz Forum
Python, Education, Logo

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ian Bicking

Posts: 900
Nickname: ianb
Registered: Apr, 2003

Ian Bicking is a freelance programmer
Python, Education, Logo Posted: May 19, 2006 12:53 AM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Ian Bicking.
Original Post: Python, Education, Logo
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Latest Python Buzz Posts
Latest Python Buzz Posts by Ian Bicking
Latest Posts From Ian Bicking

Advertisement

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

repeat 10
fd 10 rt 10

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.

Read: Python, Education, Logo

Topic: Cookie security (43things example) Previous Topic   Next Topic Topic: Plug 4 JungleDisk

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use