Wednesday, April 13, 2005

The Logo Turtle

Back in grade school, the first "computer programming" I ever did was on this learning software called "Logo". Logo was this sort of dopey thing where you typed simple commands like "forward 100" and the "turtle" on the screen (which more closely resembled a box wearing a triangle for a hat) would move forward 100 pixels. It was supposed to help teach you geometry and logic I think, but mostly all we wanted to do was turn the turtle to a slight angle and type "forward 1000000000" so that it would zip around the screen for minutes on end.

I'm not sure how effective of a teaching tool it really was (considering I later failed geometry in high school), but I remember the sickly green screen on the computer monitor quite well. And it at least had more educational value than "Oregon Trail".. a game where all anybody ever wanted to do was hunt deer (in fact, I'm not sure the modern "Deer Hunter" games have evolved very far beyond Oregon Trail...).

At any rate, apparently there is still a group that advocates Logo as a teaching tool, and there are even links on there to get Windows versions of the software. At the very least, I can imagine this would be a somewhat effective teaching tool for the very very young (or the very very old).

The point of all this is that there really, in my opinion, has never been an overly effective "introductory" computer programming language. Things like old school BASIC and Pascal were just horrid for actually learning any of the intermediate level algorithms and data structures necessary to be effective as a programmer.

Come to think of it, I'm not even sure the concept of an "introductory" language is a good idea. I believe you can learn everything you need to know about computer programming (short of what you learn from actual experience) in Donald Knuth's "Art of Computer Programming". When people ask me "What language do you program in?", I immediately get put off because I feel like they're missing the point... the language doesn't matter. You can do most of the same stuff in Java, Perl, C#, etc. (with some notable exceptions of course)... the language is just another tool.

The skill comes in knowing the best way to do a job, and that knowledge is laid on a foundation built out of things like knowing the difference between bubble sort and quick sort.

1 comment:

Anonymous said...

I enjoyed that post. It made me think one day I'd actually try and get back to that Perl book. It's sitting there, waiting...

What you said about languages I've never heard anyone else say. Somehow, even without knowing what I'm talking about, what you said made sense. Maybe it's because I am a generalist in so many other things. Anyway, most seem to enjoy arguing for one or another language.