Forty Years of LOGO 162
SoyChemist writes "Forty years ago, LOGO, a derivative of LISP, was born. Several years later, it became the cornerstone of educational software that simultaneously taught geometry and how to think like a coder. With a plethora of high-end educational software packages to choose from, each with flashy multimedia and trademarked characters, parents and teachers may find the humble turtle a bit outdated. Thankfully, several LOGO programs are available for free through a variety of websites, but perhaps 3D programming environments like Alice will be the wave of the future."
LOGO vs. BASIC (Score:5, Interesting)
My introduction to programming was BASIC, back in 1980. By the time I encountered LOGO in a high school computer science class, it was a fun toy for about an hour, but then got old. Thinking back to that, I could conclude that LOGO is sort of lame, but for little kids who don't have the typing and language skills of middle school or high school students, I guess it's a better entry into programming than BASIC.
They're supposed to have LOGO on the OLPC XO laptop, and if I do that "buy one, donate one" thing, it will be interesting to see at which age my kid (who is now 2.5 years old) starts taking an interest in LOGO.
lopgo vs python (Score:3, Informative)
Logo was good, but the language landscape is so vast now there are better languages for almost every task to which logo can be put.
Re: (Score:3, Insightful)
I don't know -- I can't think of anything better for the kind of multi-agent simulations that StarLogo [mit.edu] and NetLogo [northwestern.edu] seem to focus on than those are similar Logo derivatives (at least, for an educational environment that doesn't take lots of outside programming experience as a prerequisite). OTOH, one disadvantage Logo has is that there is a lot less support in the form of texts r
Re: (Score:2)
>>> x = turtle.Pen()
>>> x.forward(10)
>>> x.left(90)
>>> x.forward(10)
(Try it, it's fun! It's logo in python!)
Re:lopgo vs python (Score:5, Informative)
In the 80s Logo was about as good as it gets to teach kids some simple computer programming principals. For a lot of kids, Logo was enough to get them to understand that they liked computers. At least back in the day we were trying to teach people how to really use a computer instead of teaching how to talk to Mr. Paperclip into doing your presentation or essay. For teaching kids to program nowdays, Squeek is fairly interesting and there are some neat possibilities with tools like Flash. What matters is showing kids how we program computers to do things step by step and use simple logic to make decisions about the next step. Squeek and Flash let kids do a lot more visual stuff and make it easy to learn how things work.
Re: (Score:2, Interesting)
"More visual stuff", as evidenced in the brain-death that is MySpace. Is it too late to teach them away from more visual stuff? Into more like, you know, real content with some original thoughts put into it?
And "how things work"... you mean how programming works, right? To teach how things work, take them to a library or workshop or just outside the house.
Sorry if I'm coming across a bit grumpy, but I hope my ki
Re: (Score:2)
Sqeek is probably the new Logo. Smalltalk was designed to be a better Logo than Logo but in the 80s you could only run it on a $10,000 machine.
Re: (Score:2)
20 years later I had a play around with it, and quickly discovered that in so many ways it was a far more powerful language , supporting most of the basic functional type constructs, full structural programming.
Re: (Score:2, Funny)
Actually, it had PROC. Wasn't it DIM PROC somethingsomething.. too long ago.
LOGO rocked.
J1M.
Smalltalk is alive !! (I'll feed the troll :) (Score:2, Interesting)
I'm not a Smalltalk programmer and have just dabbled in it, but can tell you how other language
Re: (Score:2)
Re: (Score:3, Interesting)
Re: (Score:2)
A "practical use" test would rule out action figures, holes in the backyard, wading pools, jungle gyms, Hardy Boys mysteries, and basically everything else that a seven-year-old touches. If I were a troll, I would ask, "Why do you hate childhood?"
The great thing about LOGO is
Re: (Score:2)
Re:LOGO vs. BASIC (Score:5, Insightful)
My introduction to programming was BASIC, back in 1980. By the time I encountered LOGO in a high school computer science class, it was a fun toy for about an hour, but then got old.
It might not have a lot of power under the hood, but it really is a great way to lear about programming. You have your turtle, you tell it what you want it to do, it does it. It's a very straightforward way to understand what programming is all about. Basic has a lot of "go to" stuff that you need to learn first that is very abstract.
But bossing a turtle around is a very intuitive thing for a kid to understand.
Re:LOGO vs. BASIC (Score:5, Insightful)
Actually, LOGO has a lot of power under its hood, definitely more than BASIC. It seems that most people here don't realize that LOGO is a full featured dialect of LISP. Some things that are easily done in LOGO would be pretty hard in BASIC. I agree with the rest of your post, though.
Re: (Score:2)
It might not have a lot of power under the hood...
Actually, LOGO has a lot of power under its hood, definitely more than BASIC. It seems that most people here don't realize that LOGO is a full featured dialect of LISP. Some things that are easily done in LOGO would be pretty hard in BASIC. I agree with the rest of your post, though.
Good thing I said "might" ;-)
We were switched over to other, less awesome computer classes after that short spell with LOGO, I never got around to learning about the more advanced stuff LOGO could do. I tried finding logo later on for my personal learning needs, but no software salesman had any clue what I was talking about.
Re: (Score:2)
During that week of computer camp, I learned an important lesson about debugging. I'd input 50 to my "guess the number" program and it would say "That's incorrect, try a larger number." I'd give it 70 and then it would respond "That's incorrect, try a bigger number." After getting the latter up to 100, it told me that the number was 60. After debugging, I realized that my string
Re: (Score:2)
Re:LOGO vs. BASIC (Score:5, Insightful)
IMHO the turtle is really more of the friendly face, to make Logo fun for beginners (e.g. look at the pretty designs you can draw, and look how easy it is to build more complex images out of very simple, reusable building blocks).
At the time, BASIC made it very easy to write spaghetti code, especially with its use of line numbers rather than labels. The more GOTO and GOSUB statements you had, the harder it became to manage--changing line numbers could unleash a horde of broken GOTO statements.
IMHO, I think Logo doesn't get enough credit for what it truly was.
Re: (Score:2)
It's been a long time, but didn't RENUM change line number references, in addition to line numbers?
[later] OK, I just remembered that I have DOSBOX [sourceforge.net] and an ancient copy of GWBASIC [wikipedia.org] on my Mac so I fired them up and did a little test. (Yes, I should be working.) RENUM changed
to
RENUM is great, though it might have led to bad habits--write code first, add error-checking (a dozen lin
Re: (Score:2)
Well, it makes it very easy to write a self modifying program. After all, your program is a list and LOGO is a list processor, so a program modifying itself is no big deal. To code at least. I'd like to see you do that with your whizzo BASIC tricks.
Re: (Score:2)
Well, it makes it very easy to write a self modifying program. After all, your program is a list and LOGO is a list processor, so a program modifying itself is no big deal. To code at least. I'd like to see you do that with your whizzo BASIC tricks.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
It might not have a lot of power under the hood
Anyway, sounds like we're both happy that LOGO exists, so the world is okay.
Re: (Score:2)
It might not have a lot of power under the hood
Anyway, sounds like we're both happy that LOGO exists, so the world is okay.
So, yeah: Yay LOGO!
Re:LOGO vs. BASIC (Score:5, Informative)
Basic is a great learning language, but i can't really think of a better introduction to programming (and geometry!) than Logo. Kids who might have problems dealing with variables, conditionals and even print statements can grasp rather quickly the "move forward, turn, move forward" simplicity of Logo.
I was taught Logo when i was about 10, and like you, i had already cutted my teeth with C64 basic. Still, it was a very fun language to use and i actually learned from it. Something as simple as drawing a n-side polygon involves understanding of angles, distances and basic programming skills.
Re: (Score:2)
You can probably write very elegant BASIC. But only because you already know what you're doing. I doubt it's what you would have written in your first few years of coding.
Pascal is a good learning language. It makes (forces) you to think about structure. Sure, break all the rules later, when you know what you're doing and why you're breaking the rules. Until then, enforced structure is a good thing.
Re: (Score:2)
Couldn't agree more! (Score:2)
Re:LOGO vs. BASIC (Score:5, Interesting)
My first contact with programming about around 1986 was with Logo. My parents subscribed me to a private computer course and for us the small kids (I was 5 years old!) the teacher used Logo, for older guys he used Basic and even COBOL and FORTRAN. But It was Logo what made me really *understand* computers in the sense of how the famous Hacker's Manifesto [mala.bc.ca] explains, it is a very interesting machine which *you* can manipulate to do EVERYTHING!
However, when you are referring at LOGO in your comment you are surely referring to the turtle-guided drawing interpreter of the language, which yeah can not compare with what BASIC was at that time. However, there are *plenty* of interpreters and other programs that use Logo as its underlying language. Lots of them are actively used in research for agent-based modeling such as NetLogo, StarLogo, or about StarLogo TNG which tries to go a step further to teach the basic concepts of programming by using building blocks.
I think Logo is one of the *best* programs to begin computer programming for kids because it is very easy to make the computer *do* things, and with these new implementations it does not need to be as "boring" as just drawing lines.
Re: (Score:2)
The basics of the day, everything from Qbasic and back, where nowhere near as sophisticated. Early Logo I'm talking about , not newer ones.
They just didn't teach that stuff. But remember all the classes on the funcy Iteration things LOGO could do that they'd teach with it? That wasn't just a 'cool feature'. Its a fundamental concept in functional programing. Considering a context
Lisp derivatives... (Score:2, Insightful)
Scheme was probably one of the worst things they could have had us using for such a class. The majority of engineers and the others didn't need to get too far into advanced programming concepts; most of us will never use anything more complicated than matlab.
Obvio
Re: (Score:2)
Re: (Score:3, Funny)
Back in high school, after reading a book "Turtle Graphics" I created my own turtle environment in Basic on the Apple IIc. I set it up for multiple turtles so that I could give each of them rules (inadvertently modeling a predator-prey system long before I knew what it was). I remember one day I left the computer running on a fairly complex set of rules that had each turtle avoiding the edge, following and avoiding o
Re: (Score:2)
You could do a lot more with it than turtle graphics but that was the draw. I look back fondly, it is probably one of the reasons I'm a software engineer now, it wasn't hard to make the computer do something that was satisfying to a you kid. I fear now that there aren't enough analogs, Squeak is very cool, Alice might be it, it's just that expectations are so different. SImply drawing a picture on the screen
Re: (Score:2)
LOGO was great for me (Score:2)
Never got to use it. (Score:2)
I don't know if it was just that the school district never got on board, or if logo's popularity was regional but I never heard of it until a couple years ago when I was
Re: (Score:2)
Sounds familiar.
Funny part is, I still have a model III computer. It is great for the kids to tool around with doing whatever they want. It still works! However, once the 5 1/4" floppies are all bad, that is it. No more Model III. I wrote my first games on it, and my youngest son is completely into game design.
Yeah, there is so much better out there now for everything, but the Model III was so simple to learn and write on.
InnerWeb
Re: (Score:2)
Re: (Score:2)
We had a similar rule, but I was writing the games, so I got around it. Three of us (we used the name Awesome Threesome Software) wrote, played or designed graphics for the games. One of the other students used to get mad at us and do things like pull our power cable. We built a *network* for the model IIIs using the cassette jacks, and *took* over his computer. He left us alone after we told him we could do the same thing to his grades. Like other bullies, he just needed to be stood up to in a way he
Re: (Score:2)
Sounds like unfortunately bad timing (Score:3, Informative)
It seems that Logo was introduced to children a few years younger than that--think grades IV to VI. Computers were introduced into my elementary school around the time frame that computers were introduced into your high school (about 1982). In middle or high school students generally "graduated" to BASIC and perhaps Pascal programming. Older students were also the first to get computers (A small classroom with a number of Commodore PETs and a single
Re: (Score:2)
Logo is great (Score:2)
And by "do" I mean "draw with the turtle, of course"
Re: (Score:2)
Now, I just struggle to understand CakePHP.
Re: (Score:2)
Animation (Score:2)
Middle School Flashback... (Score:2)
Wow. I'd not thought of those Atari 800s for years. I'd have to agree with other posters on LOGO use in teaching; if a student can program in LOGO, then they're already ready for another language.
Personally, I was bored silly with LOGO and couldn't wait to get home to the ol' Trash-80 Model I Level II Basic. Scary, huh?
Does it actually inspire coders? (Score:2)
Was it really that influential?
LOGO was perfect for its intended use (Score:5, Interesting)
I don't think I would have a career in the technology industry if it were not for LOGO (I'm an analog IC designer). A previous comment said Python is better for his child. I would agree. In fact, I would have done pretty much anything for Python and Pygame when I was a small child. However, for the late 70s and early 80s, LOGO was the educational language to beat, and the only way for a child to really feel the machine the way a programmer does, and not as a passive game player.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
i was part of a geek crowd at school that spent a lot of time hanging out in the math departments computer room. I remember a bunch of us huddled around the schools very first mac - just in awe of the thing. those were really good times.
kids today have some great opportunities to learn and an amazing a
Re: (Score:2)
Re: (Score:2)
I remember writing a game with that LOGO, where a plane went by and a
LOGO was my first exposure to programming (Score:2)
Of course, the idea that programming should be a part of a basic computer course has gone by the wayside. Today's kids computer classes are all about Microsoft Office and, if you're lucky, Dreamweaver.
Bah.
-l
LOGO - not a viable adult language (Score:2, Interesting)
My first programming language was BASIC, (then 6502/Z80 assembly) then Pascal, C and APL (APL is my favorite teaching langauge - see Kxdb+ from KX Systems to see where APL is now). While LOGO is cute, in my mind it fai
Re:LOGO - not a viable adult language (Score:4, Insightful)
Re: (Score:2)
Good lord. There's a lot of LOGO bashing around here today and I think it's little more than typical Slashdot elitism. "I was programming straight binary on punch cards when I was in a diaper!" or other such nonsense.
I first played with LOGO in a summer school class when I was six. I didn't even realize we were programming. I was just drawing but as soon as I started playing with Basic and Pascal a few years later, I recognized variables, loop and branch statements for what they were immediately.
Re: (Score:2)
Re: (Score:2, Insightful)
Your 2 cents ain't worth a dime... ;)
It's kinda bizarre that you'd question the efficiency and capability to write "real" programs in it, then go on to invoke BASIC later in the post. In terms of being a fully capable language, BASIC was a toy language compared to LOGO. Pascal was better, at least it had proper procedures and functions, but still not quite as capable (it shared LOGO's heritage of being designed for education, but it lacked much of LOGO's sophistication). Only thing C has over it is a we
Re: (Score:2, Interesting)
Subjects where either the tools changed or my understanding of it was fundamentally altered by later education: Science, sociology, history, and everything else. And the "life-long" tools were built upon as well, of course.
The purpose of most of your education isn't to prepare you for the rest of your life, it's to prepare you for the next step in your education. What a child is taught of gravity in first grade is so greatly si
Re: (Score:2)
I miss my LOGO turtle (Score:2)
If I was ever in a position to expose today's kids (at an early age) to something like that, I'd be all for it. I say an early age simply because it's the thrill of being able to make the computer do something that hooked me (and figuring out how to solve my
Real Programmers Used Shapetables (Score:3, Interesting)
Shapetables, I thought, were the bomb, but also, proved to be my first introduction to the lesson: there is always a better program than you.
I was in high school at the time, Firestone in Akron, and we had a teacher that fought for and got a really nice computer lab. He was great. He had a lot of prestige because a future shuttle astronaut was one of his students, and in general, the math department there was one of the best in the state.
Anyway, I spent hours hand coding my shape table for a little lunar lander video game I was writing, and I thought I was the cat's meow, and I was all about to show it to everyone, trumpeting my genius, and this other guy walks in with a pinball game written in assembly language.
All I could do was compliment the guy, because it was great. He had decent sound, fast graphics, smooth play. It was just great. Amazingly, I don't know where he went with it, because it was right up there with the commercial pinballs of the day. But still, talk about humiliation! I about died!
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
But, seriously, no, I don't think we'll actually be fighting over this. Logo no longer has any importance in my life, as I'm sure Basic hasn't in yours. It was simply fun while it lasted, way back in the good old days. Heck, I can't even remember enough Logo to make an informed argument in its favour
Re: (Score:2)
I didn't even know you could
LOGO beyond middle school (Score:4, Insightful)
It's interesting that most comments here are along the lines of "I saw LOGO when I was 7" through "I played with LOGO for an hour in middle school." I tinkered with a couple of LOGO variants as a kid, but my real LOGO experience ended up being... in college.
In my school's Computer Science department, the class that weeded out (or at least delayed) the majority of students was our Discrete Structures course. The theoretical part of the course focused on typical discrete logic, discrete math, sets, predicate calculus, etc topics. But the unusual part was that the professor was determined to break us out of the C++ mold that the introductory programming courses began. Therefore, he picked LOGO as the language for the course. Sure, interpreted LOGO wasn't the most blindingly-fast choice, but the list-based nature of the class made it very much a "LISP Light" that we could quickly work with for solving problems. Surprisingly, it was extremely flexible for the kinds of logic problems we were working with. By the end of the year, I really had to rethink my initial concept of "oh no, turtle graphics." Plus, we got exposed to a bunch of quite interesting offshoots, such as StarLogo [mit.edu], a massively-parallel-turtle variation of LOGO.
If you've never had to write a parser for an arbitrary boolean arithmetic expression in LOGO, then you've never really lived... (Er...)
massively-parallel-turtle (Score:4, Funny)
A LOGO without graphics... (Score:5, Interesting)
I was 17 years old and already know how to program in Z80 assembler and MBasic (Ah, the heady CP/M days!).
Imagine my surprise when I got an apprenticeship at a place where they did accounting - in LOGO!
Not just any LOGO either it was M.I.T. Experimental LOGO #43 if I remember correctly, running on a microcomputer with 12 terminals connected to it! And there was NO TURTLE in this LOGO, only the list operators, logic and math primitives!
This company was doing the monthly accounting of about 40 or so client firms and the whole system was written in LOGO.
I remember thinking "Why the heck are they using a kid language to do all this" at first, but under the teaching of my mentor, I learned recursion and abstraction to a level I had never considered before.
I mean instead of tripping all over the mundane aspects of implementation that you would bump up against in assembler or BASIC, here was a language that was so high-level that you really could concentrate totally on the abstraction and algorithm of solving the problem without getting tangled in a lot of what seemed to be more real-world problems (memory allocation, variable types, string/array manipulation, etc...), this language forced you to think in really high-level ways about the problems you were trying to solve.
It was a year of epiphany-after-epiphany for me and it did more to form me than any of the other languages I've ever touched. It caused me to rethink my approach to all other languages and tools and I feel tremendously fortunate that I was in the right place, at the right time to experience it all.
Sadly, that company's history ended badly; one of the partners was billing the clients directly and ran off with the money, so the company went under and I never did find another company using LOGO again.
Too bad reality and theory almost never line up...
Re: (Score:2)
He would probably be pretty easy to find -- I bet he went FD 10 RT 90
Logo not just for kids (Score:3, Informative)
I picked up all the 80s books I could find that used Logo to teach geometry, algebra, music, language etc. I'm currently working my way through them. There is of course the Compu Sci series from Berkeley http://www.cs.berkeley.edu/~bh/v1-toc2.html [berkeley.edu] That I'm planning to go through next.
So for those of you who turned your nose up at logo because it's too simple for you may need to turn that statement around. Think Lisp without the parens.
Turtle Geometry (Score:2)
AFAICT it's harder in some parts than SICP, and its all LOGO based.
I mean, how can you not to love a book that teaches how to simulate arbitrary curved surfaces and later simulate the curvature of space-time with just a turtle?
Re: (Score:2)
The Turtle killed Logo (Score:4, Insightful)
For those who want to rediscover Logo and learn what it was *really* all about you can go to the website of Brian Harvey, a logo guru:
http://www.cs.berkeley.edu/~bh/ [berkeley.edu]
On this website you can download a nice series of textbooks about Logo and also download the Berkeley Logo implementation of the language. I was surprised to find that Logo is a functional programming language. I am also studying Lisp, Scheme, Haskell, and Erlang and find the whole concept of functional programming to be very interesting. It is getting hot again and will become a critical part of programming if we are to take advantage of multi-core cpu's.
I am constantly amazed by just how vast this industry really is. I wish it hadn't taken me so long to realize this and I am saddened that so many people coming out of school these days have no clue that there is anything other than Java and Dot Not out there.
I learned on both BASIC and LOGO. (Score:2)
I got bored quickly with turtle graphics, though, and found that BASIC (Applesoft in my case) did what I wanted better. Besides, I didn't even have to boot into an OS to play with BASIC.
I ended up going for an associate's degree in computer programming. "Learned" VB, C++, RPG IV, and properly learned HTML and JavaScript.
That's not
Back in the day... (Score:2)
It was a good way to explore geometry, trigonometry and vector maths in an instant feedback environment, but was next to useless for any practical programming purpose. As such, it does make a decent educational tool, but not for learning programming, rather just for geometry.
As such, its uniqueness should be celebrated for the fact that while it is impractical for typical tasks it has survived
Set the Way Back Machine to about 1981 . . . (Score:2)
My logo experience (Score:2)
Scratch - LOGO in spirit for a new century? (Score:2, Informative)
Alice is still around? (Score:2)
Turtle forever!
Alice for the future! (Score:3, Informative)
For kids, Alice has the staying power that Squeek and LOGO don't. It allows them to set up an entire 3D world and tell a story without ever making a single syntax error. They can even make their own interactive games, which is what they really want to do. No hunting for misspellings, no looking up methods or operators in website documentation, no Googling. Just programming, fast and simple. They don't even realize they're programming; they think they're having fun, and they are!
Sure, Alice has a few shortcomings. There's NO DEBUGGER. Polymorphism isn't implemented. Custom methods aren't displayed in the world view. It's hard to produce new models. But on the other hand, it's got my kids thinking like object-oriented programmers, having fun, and producing stuff they love.
I think the submitter nailed it with "Alice will be the wave of the future".
Java... (Score:2)
It chewed up all my computer's memory, spent 5 minutes swapping, then tanked. MMM, Java.
Perhaps I'll try it again now that I have a faster machine with more memory.
Re: (Score:2)
The eldest actually started writing up routines for the entire alphabet, but eventually lost interest.
Oddly enough, Postscript could be an interesting choice. It's FORTH like reverse polish syntax takes getting used to, but it is in esscence a turtlegraphics system with some nice addons.
Re: (Score:2, Interesting)
Re: (Score:2)
As for the debugger, just a "step" function would have done the job we wanted. Especially if we then had the capability to highlight objects or temporarily manipulate the camera. We were dealing with an object that should have been visible, but wasn't. Turned out it had moved such that its transparent portion was filling the viewport.
Scratch is the new Logo (Score:3, Informative)
Alice doesn't live *where* anymore? (Score:3, Funny)
One missing option... of OS X (Score:2)
I used logo a lot when I was in my early teens. There was a very very nice implementation for the ZX Spectrum (stop laughing at the back). Not only did it let me have fun with recursion and drawing fractal images, it also had the LISP syntax in full. I probably had more fun extending the language with new commands and writing a pretty decent Eliza program, than I did with the Turtle stuff.
Unit testing in LOGO (Score:2)
IIRC... (Score:2)
My 6th grade days... (Score:2)
Context Free (Score:2)
http://www.contextfreeart.org/ [contextfreeart.org]
Re: (Score:2, Informative)
I think it may be easy for people in this community to make assumptions about programming languages and their utility. However, relevant questions, to me, include, "How do we get students who may not have sufficient math skills feel success as programmers at a young age? How do we get them hooked on the idea that computing and programming are accessible in their lives?"
Alice, with its drag-and-drop interface, can be frustrating
Re: (Score:2)
I suppose I should be glad that you didn't say C++ or Java... that, at least, is something.