LOGO Still Lives -- New Java-Based Version Released 161
farrellj writes "Many people were introduced to computer programming using a virtual turtle, or if you were lucky a robotic turtle. Created in the '60s by a bunch of people at MIT, including one of the formost experts on computer aided learning Seymour Papert, it gave a good grounding in programming in a day when BASIC and PASCAL were the only other easily available languages...I use to teach LOGO at a computer lab in Ottawa, but have lost touch with LOGO for many years. Today, a email appeared in my mailbox announcing a new release of LOGO called StarLOGO from MIT...wow...it is done in JAVA, and looks pretty snazzy. It runs on just about any platform, and I think that it again may be a great way to get young kids interested in programming. It took me about 2 minutes to get it running...just untar it, and run a shell script, and I had the enivronment up and running. In a couple more minutes, I was writing programs that created graphical displays that would look great at raves. So I guess it's for kids of all ages!"
It's can be about a lot more than graphics. (Score:5, Informative)
StarLogo has been around for a while now (though not in Java) and I've seen it used for some advanced things. For example, I remember being shown an agent based pedestrian model built using the thing if I remember rightly some years ago.
Re:It's can be about a lot more than graphics. (Score:2)
Re:It's can be about a lot more than graphics. (Score:2)
I remember Logo as being less useful than Basic - what really sticks in my mind is the brain-dead syntax for string literals, where the first space character ends the string. Hello? Strings with spaces in them?
There might be ways around that; there might be decent control structures (not just REPEAT 50), ways of creating data structures like arrays, and some means of calling external procedures or operating system routines. But they didn't get much emphasis in Logo programming textbooks, perhaps because they'd differ from one pl atform to another.
Ah, looking at the old Logo book on my bookshelf I see that the language had list handling similar to Lisp, its parent. But much clunkier and less elegant. Logo may be a functional language but I wouldn't call it a decent one.
Re:It's can be about a lot more than graphics. (Score:3, Informative)
TO WHILE :cond :body :cond [RUN :body
WHILE :cond :body]
IF RUN
END
Of course, you will run out of stack if your logo is not tail-recursive (UCBLogo is, many others are not). But with WHILE and some other primitives, you can implement most other control structures without needing tail recursion.
The only data structure is usually the list. This serves as an array, and can do other things as well. Definitely old school Lisp. It's entirely sufficient, though associative arrays are convenient as well (can be implemented with lists, but annoying).
External routines are, as always, entirely up to the implementation. Many have plugins, usually there is no way to call arbitrary external code.
It's not meant to be a great language -- it's an expedient language for young children. One example of this is the extensive use of abreviations (e.g., FD for FORWARD). Real programmers don't like these in their languages -- but real programmers type much, much faster than young childrenI think Logo is very similar to Tcl, except where Tcl uses strings, Logo uses lists. Both have extremely simple syntaxes and semantics, and Logo is one of the purer dialects of Lisp -- but it's sometimes a bit awkward, and it's performance is fairly limited.
Re:It's can be about a lot more than graphics. (Score:1)
Usefulness...
LOGO was the only functional language that came on Atari400/800/etc cartridges and AppleII/C=64 floppies back in the day. I consider the fact that thousands of children were introduced to the functional paradigm via LOGO to be highly "useful."
You are correct though, in that there weren't many real-world problems that could be easily "solved" using those LOGO interpreters. The main thing we learned to solve was figuring out how to determine the outside angles of arbitrary polygons
What would have ben great is if LOGO had had the power to do do the stuff we had to use BASIC for in the second half of middle school programming classes... hundreds of kids would have never been exposed to the complete nightmare of BASIC GOTO tangles...
Re:It's can be about a lot more than graphics. (Score:1)
I think that in general, not many were 'introduced to the functional paradigm' by Logo... the Logo programs I've seen in introductions are wholly imperative (REPEAT 50 FD 20, and the occasional imperative TO X procedure declaration). It would have to be a pretty advanced course to get into the functional stuff. Your particular class sounds like that, but it's likely most weren't.
Re:It's can be about a lot more than graphics. (Score:2)
AppleBASIC might not have had named functions, but it definitely has GOSUB. I remember porting a program from Apple II to TRS80 (CoCo), and had to figure out how to get around the lack of a POP command, which is meaningless without GOSUB. I think the original BASIC Kemeny and Kurtz had the GOSUB command. Also, most BASICs had a crude definable function syntax, something like DEF FNA(X)=X*X. Not pretty, but not as bad as you make it out to be.
Re:It's can be about a lot more than graphics. (Score:2)
Re:It's can be about a lot more than graphics. (Score:2, Funny)
RARRR!!!!!!
Reptar LOVE eat Lego.
CHOMP CHOMP
mmm
Delicious Lego
CHOMP CHOMP
RARRRR!!!!
Now Reptar can eat Lego with Java Coffee
CHOMP CHOMP SLURP CHOMP
RARRR!!!!
Ok modders, here is one funny that should be +1'ed (Score:1, Offtopic)
Re:It's can be about a lot more than graphics. (Score:1)
Re:It's can be about a lot more than graphics. (Score:1)
Samples of your art?? (Score:2, Insightful)
May we see some of your art work (screenshots, or source)?
Re:Samples of your art?? (Score:3, Funny)
repeat 100 [fd 5 rt 23 fd 5 lt 23]
ttyl
Farrell
Re:Samples of your art?? (Score:2)
I had LOGO for my TI-99/4A, but it "ran out of ink" so frequently. Never did get to try the next incarnation of it.
In school, we started with Logo, and went onto LogoWriter, which had text windows overlaid on it. Real nice.
I remember how to do a circle
repeat 100 [fd 1 rt 1]
I did it this way though, so you have finer control of the radius(pu is PenUp right?)
repeat 360 [pu fd 50 pd fd 1 pu bk 51 rt 1 ]
It took a while, but it worked.
War and Peace (Score:4, Interesting)
my experience w/LOGO. (Score:3, Interesting)
Everyone's experieneces are different I guess but I just don't see how you can show LOGO as instilling the programming bug (no, not intended) into school-aged kids.
Re:my experience w/LOGO. (Score:1)
My bad.
Re:my experience w/LOGO. (Score:5, Insightful)
But there's always going to be 12-year-olds who think they know everything and consider learning new programming languages a waste of time.
Re:my experience w/LOGO. (Score:2, Interesting)
I just remember writing "Turtle Race" and shit like that.
I seriously disagree (Score:2)
Can you code large-scale functional applications in LOGO? No. Not really. LOGO is solely for educational purposes, whereas while PASCAL and BASIC are also used in educational scenarios, they can do much more. Delphi (using Pascal) can produce anything that Visual C++ can. BASIC is used in numerous areas.. like VBA, and Visual Basic itself.
I also disagree with your last comment and I think you misunderstood the parent poster. The problem is that the educational system is not designed for students to have individual experiences, but so that children are all taught as a whole, regardless of skill level.
I learned BASIC at age 6, 6052 assembler at age 8, and C at age 9. Does this mean I was taught C++ in 7th Grade? No. We had to do LOGO. It wasn't a case of being 'too good' to learn another language.. it was just a case that LOGO was a ridiculously pointless language to learn if you already knew C, BASIC and some assembler!
Re:I seriously disagree (Score:1)
Re:I seriously disagree (Score:2)
No it's not. It's not all about the root languages, but about what those languages can be taken on to achieve. BASIC 'became' powerful with VB, Pascal 'became' powerful with Delphi. Could LOGO become powerful in some way? My suggestion is no.
Could you write an operating system in LOGO? A compiler? Again, my suggested answer is no.
Re:LOGO Compiler (Score:2)
For example, suppose for efficiency you decide you want to store a flag in the low-end bit of a pointer (because pointers are aligned to 4 bytes and those bits are otherwise unused). How do you express that in Java? Java simply doesn't have any notation for this.
Or, for that matter, suppose you have some object that is small and immutable, so you want to pass it by value instead of by reference, so that it can be cached and/or stored in registers. Java can't do that either. Both of these things are trivial in C.
You can't make a good OS out of a turing machine.
Re:my experience w/LOGO. (Score:1)
Re:my experience w/LOGO. (Score:3, Insightful)
I think Logo should really be seen as a pre-algebra and geometry tool. It's algebra that a child is likely to understand -- somewhat imperative, and easy to experiment with. It's an easy introduction to variables and function composition, possible to do at an age when most children would be totally lost by algebra (moreso when you consider how many teenagers never really get algebra -- maybe most teenagers, as I'm afraid many of my friends' eyes glaze over if they are asked to remember any alegbra as an adult).
Logo!!! (Score:1)
Re:Logo!!! (Score:1)
Although I used LOGO (Score:2, Insightful)
I'm not sure that the same teaching tools are really applicable when the background of the student is so different. At seven, she can surf the net, install her new game, and write an email while bitching about WinXP. I don't she'll as impressed by moving a little triangle around as I was.
But it's cool anyway. I'll play with it, even if she doesn't.
Re:Although I used LOGO (Score:3, Informative)
Some of the commercial Logos (like Microworlds [microworlds.com] and Terrapin Logo [terrapinlogo.com]) have considerably more multimedia capabilities. In some ways the language as implemented in those products is dumbed-down, though compared to any "game construction kit" or similar product, they offer tremendous flexibility. They are still real programming environments.
StarLogo is more of a computer science kind of Logo -- all about massive parrallelism. Which can be very fun and motivating as well, but probably requires a different personality to enjoy. The Free logos are still pretty much old-school, triangles on the screen kind of deals.
Of course, get her Lego Logo kits, and no one can resist that.
Re:Although I used LOGO (Score:1)
As for impressed
Turtles (Score:5, Funny)
Blast from the past (Score:1)
We had one of the turtles at secondary school. It was a little bit of a let down though, after a week of writing little programs and outputting to the screen our IT teacher hooked up the turtle. We tried to get it to draw a circle, but of course the ribbon cable would drag and the wheels would spin slightly giving us a kind of distorted spiral.
I didn't stop using it there though. A few years later I was using it as a convenient graphics display for demonstraiting an engineering problem during a 2 week industry exercise with Balfour Beety.
There was definatly a lot more to the language that just drawing circles and squares.
It's not just Logo (Score:5, Informative)
Taken from there:
StarLogo is a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator. With StarLogo, you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies.
There's a book by Starlogo creator, Mitchel Resnick called Turtles, Termites, and Traffic Jams : Explorations in Massively Parallel Microworlds [amazon.com] where he shows the use of Starlogo in education.
Re:It's not just Logo (Score:1)
Re:It's not just Logo (Score:1)
As an added bonus, the book also has a decent ten-page discussion on Slashdot as an emergent self-organising system.
Thanks for the lost memory (Score:2)
Re:Thanks for the lost memory (Score:1)
520ST
Name for this? (Score:5, Funny)
It should be called J-Logo.
Then you need an even shorter name, that rolls off the tongue. I think you see where I'm going with this.
Re:Name for this? (Score:1)
Re:Name for this? (Score:5, Informative)
Incidentally, StarLogo has a resemblance to Logo, but it's primarily superficial. StarLogo is all about exploring emergent behaviours in decentralised systems. While you can do regular turtle graphics in StarLogo, if you do it, you're kind of missing the point.
StarLogo uses thousands of turtles, instead of just a couple. StarLogo also allows the turtles to interact with their environment by doing things like creating pheromone trails. This makes it easy to do things like build an ant colony and watch it explore for food and create trails to the food for other ants to follow.
Incidentally, the ant colony code only uses thirteen procedures, each one no more than five or six lines of code. Here's a sample:
This defines the way an ant finds food. Essentially, if it's not carrying food it checks the ground to see if there's any food there (ask patch-here). If there is, it sets itself to carry it and reduces the amount of food on the ground by one unit. The line set-drop-size sets the initial magnitude of the pheremone drop. There's another demon (return-to-nest-demon) that takes over once the ant gets food. It's responsible for following the pheremone gradient back to the nest and to mark the trail to the food by decreasing the food pheremone with each step back to the nest. That way the food pheremone will be strongest near the food, causing the hungry ants to go in that direction.One of the other interesting parts of the book, Turtles, Termites, and Traffic Jams is the author's descriptions of the kids that he works with. He takes StarLogo into grade schools and gives the kids problems (like the ant problem, or a traffic jam modeling problem) and watches them solve it. All in all, it's an excellent book and I highly recommend it.
Re:Name for this? (Score:1)
Is that anything like a cookie monster?
Re:Name for this? (Score:2)
Re:Name for this? (Score:2)
This gives new meaning to the "Dining Philosophers" problem..
Re:Name for this? (Score:2)
Re:Name for this? (Score:1)
Personally, I'd tell her to go just so I can watch her walk away.
It's not as good ... (Score:2)
No seriously. Writing a program to draw pretty stuff was all well and good, but when you could hit run and actually get that turtle (with the see-through green shell) to start drawing it on a huge sheet of A1 paper ...
Now that was seriously cool.
Logo and Pascal (Score:2, Interesting)
Logo is fun, and logo got me dates with girls!
Re:Logo and Pascal (Score:3, Funny)
How Logo got you dates with girls is what i would like to know...
Re:Logo and Pascal (Score:2)
Re:Logo and Pascal (Score:1)
I smell a Slashdot poll, we must determine if LOGO is the solution to the lack of girlfriends for nerds!
Wah. I thought you said Lego (Score:2)
Go 100 beyarch
Don't Forget MonoLogo, the .NET/Mono version (Score:3, Informative)
that creates a
Re:Don't Forget MonoLogo, the .NET/Mono version (Score:1)
Re:Don't Forget MonoLogo, the .NET/Mono version (Score:2)
Great for school kids.. (Score:1)
Not only was it a great foundation for Geometry but you could create functions, loops and many other programming fundementals.... I'm very happy to see this great old platform getting another go!
Raves (Score:1, Redundant)
What did you run out of E?
Care to guess what's next ? (Score:4, Funny)
Re:Care to guess what's next ? (Score:1)
my logo experience (Score:3, Interesting)
StarLogo... (Score:2, Informative)
Re:StarLogo... (Score:1)
As you may already know (Score:1, Informative)
Dijkstra must have loved that language (Score:1)
UCBLOGO (Score:1, Interesting)
I prefer logo to lisp or scheme for some reason. It's a functional language, but you can write procedural code easier than scheme, if you want to. When I get some spare time, I'd like to write a logo plugin for gimp. You can write some 10-line routines to draw amazing graphics.
Self-Organizing Systems (Score:2, Informative)
The students (freshmen) gave better ratings for the course after our restyling. Also, some more enthusiastic students have helped us with designing some new StarLogo apps. A real great tool for this course!
More information [cs.vu.nl] about our course at the Vrije Universiteit [cs.vu.nl], Amsterdam.
what's cool about starlogo (Score:2)
What's cool about StarLogo is that it teaches object-oriented programming the same way. You can have as many turles as you like, and the domain over which they roam is cut into discrete patches. Each turtle and each patch is an incarnation of an object, and can be assigned behaviors. You're not struggling to understand what objects are, you just have fun writing a routine that tells a turtles to head for the nearest grass patch when they're hungry. When one gets there, you make the turtle's hunger factor go down and the patch become less grassy. The turtles can also interact with one another. In the process, you've easily created a complex simulation of how a group competes for scarce resources. It looks cool, too. StarLogo (and its more powerful cousin, StarLogo T1) has been used in research for quite awhile.
Logo: It always was a waist of time (Score:1)
Re:Logo: It always was a waist of time (Score:2)
But almost certainly you started with BASIC, not 6502 assembler, and you probably wrote little programs to draw lines and print your name and such. You didn't immediately jump into creating your own display lists and hitting player/missile registers.
Logo is an alternative to starting off with BASIC, one that involves more immediate visual feedback, lets you do more complex tasks right off the bat (like rotation, without having to understand trig), and is a much nicer language.
Now that computers have gotten "infinitely" fast, at least as far as I'm concerned (I'm developing commercial software on an 866MHz P3, and I have _zero_ complaints about performance, and now you can't even buy a PC slower than 1.7GHz), I wish I had started off with a higher-level, more abstract language like Logo, rather than grungy ol' BASIC.
Carel? Carol? Karel? (Score:1)
I've never used logo, but I'm guessing they're very similar. Will have to check it out sometime. Perhaps it will bring back some memorys
Re:Carel? Carol? Karel? (Score:1)
Ahhh... the memories.
_______
This does bring back the memories... (Score:1)
Re:This does bring back the memories... (Score:2)
Of course this was also back in the day when computers were this novelty item that everyone was pretty sure would be important when the little shitheads got out of school - in the meantime they were just devices that scared old teachers.
But back then there was this notion that the only way to use a computer was to program it. Of course back then that wasn't too far from the truth - programs did their thing and nothing else. The spreadsheet and the GUI had yet to take off or mature and of course the Internet was nothing. Consequently, while everyone knew that computers would be important, there wasn't much that teachers could do for their students other than teach them programming (and it was always something like your name dancing across the screen or changing fahrenheit to celsius and back) and teaching them WordPerfect for DOS, which is useless now (unless you're a legal/medical secratary).
The result? When I got to college I was surrounded by people who could program Pascal but that couldn't turn their computer on. A lot of people still believe that since you have to jump through hoops to get computers to do anything (i.e., write a program in a language like Pascal, which for all its pinnings to English is still Greek to many) they were completely turned off by the whole thing.
And on it goes. People don't do anything to their PC's other than what is neccessary to get it to print something. Apple's made a career of idiots. Linux won't ever hit the desktop at this rate.
Not that it's the teachers' fault. There wasn't Microsoft Office or web browsers to teach 15 years ago. The Apple ][ and Commodore 64 were pretty much toys. But if you wonder why Joe Q. Public doesn't want to fool with computers and why your average person just wants to run Windows and nothing else, this is the real reason - it's not that they don't know about Linux, it's that they don't care.
Turtles Robots anywhere? (Score:1)
Re:Turtles Robots anywhere? (Score:1)
Re:Turtles Robots ... Here's one! (Score:2)
Re:Turtles Robots ... Here's one! (Score:2)
kids programming (Score:2)
Because if there's one thing young kids know how to do, it's untaring and running shell scripts. No, wait, that's two.
Re:kids programming (Score:2)
Double-click, then
If it's written in java, this begs the question, why isn't it in an executable
Early logo usage (Score:1)
I'm rambling; I need more coffee...
-SablKnight
Bring back the Oregon Trail! (Score:1)
Re:Bring back the Oregon Trail! (Score:1)
Of course, way back then, our school didn't have a whole bunch of Apple ]['s to play it on, we had a teletype with a whopping 300-baud connection with those earcup-thingies you put the phone in. Am I the only geek who printed out the entire program and got yelled at for taking tons of time and using the lab's paper? :-)
Ahh, those were the days:
Don't forget StarSqueak (Score:2)
logo applet around for some time (Score:2, Informative)
Squeak (Score:3, Informative)
Small, portable, virtual-machine based, simple enough for kids to get started (and excited on) it's powerful enough for 'real stuff'. Check out the FAQ [gatech.edu] based on a Squeak Swiki.
Oh, and as Logo had Seymor Papert as 'the guy' behind it Squeak had Alan Kay [dmoz.org] who did lots of early work on 3D graphics, ARPAnet, windowing interfaces, modern oo programming, and inventor of the Dynabook.
Re:Squeak (Score:1)
Along with all theother good things already in Squeak, like music, speech synthesis, handwriting recognition, network access, web server(s) and on and on.
It's just obvious (Score:3, Funny)
(running from the bricks)
-dB
LOGO (Score:1)
Since when has it been just released? (Score:1)
It's already been done, in Tcl/Tk (Score:1)
Yay, School Flashback! (Score:1)
Logo and especially BBC BASIC (still the best version of BASIC) is what got me into Programming at a young age. Long live them both!
Based on LISP? (Score:2)
No one used it to control Legos? (Score:2, Interesting)
Logo I have known / written (Score:3, Informative)
Friends and I worked at the MIT Logo lab in 1980, where we did the first mass-market Logo, for the TI 99/4 (though I didn't contribute to it), and Logo for the Apple II (where I did). I then went on to Terrapin, which had originally been started by Danny Hillis and others to sell turtles, and we got Terrapin to sell Logo. I enhanced the Apple II version, and did the Commodore 64 version and we did a Mac version (plus some other ones like C128, C264, and C16 where the boxes never shipped, and some that only shipped a little, like Music Logo). I did Logo translations (with others), in Japanese, German, Italian, and French.
When Mitch Resnick was at MIT LCS and started the *Logo project as a grad student, I was a bit jealous as I'd been working on the same thing in my spare time, but I didn't have the resolve he did (thesis). It's funny, because the idea for *Logo came from StarLisp, of course, which was came from Thinking Machines, which was also started by Danny. The *Lisp stuff was fun, and I've often wished that Mitch would bring out StarLogo so I could play with it again.
I think my favorite Logo that I didn't write was the "1986" version mentioned by another poster -- it ran on a dual-processor PDP-11 / bit-slice machine with a vector graphics display. The drawing was done by adding to a "display list" which the vector processor displayed. This feature allowed Hal Abelson and Andy diSessa to develop some interesting observations about group theory (see their book "Turtle Geometry" ("Turtle Geometry: The computer as a medium for exploring mathematics" by Abelson & DiSessa, 1981, MIT Press, Cambridge MA).
The interesting thing about that version of Logo was that in addition to forward and right, it had grow and spin, which introduced time-varying elements into the display list. grow :n made a line that grew at a speed on n, and spin :n made an angle that turned at a speed of n. With fd and rt, the following draws a star that grows asymetrically. With grow and spin it explodes! Lots of fun taking any random old chestnut Logo program and taking it up a level.
My favorite non-Logo that I did write was at MIT AI and LCS and later at UC Berkeley, called Boxer [berkeley.edu], which presently runs on the Mac, but might be out on PCs sometime. It takes direct manipulation interfaces to the extreme -- the entire workspace is shown as the screen, and every data item and every procedure is represented as a box, a square container on the screen, and all are inside other boxes. To make a menu, you make a box with a keystroke, and put the names of the commands you want in the box. To execute the menu, you point and click. Pretty simple. There's all sorts of other features, like hyperlinked boxes, boxes that are portals to other resources (web sites, other people's computers, etc.). Look for it someday.
Re:Logo as punishment in primary school (Score:2, Funny)
Re:Logo as punishment in primary school (Score:1)
Re:Logo as punishment in primary school (Score:1)
Re:Ravers (Score:1)
Re:Not Cross Platform (Score:1)
FYI, I'm running MacOS X 10.2.1 on a PowerMac G4 733 with 768 MB of RAM. And yes, I have many other Java based applications that run on this machine with no problem at all.
For an example of a truly cross platform Java based educational application see:
http://drjava.sourceforge.net/
Which *does* run under Mac OS X 10.2, and Windows, and *nix with a recent JVM.
Re:Not Cross Platform (Score:1)
Sorry - should be "What a silly response," obviously. Pardon the typo.