Hacker News new | past | comments | ask | show | jobs | submit login
Logo and Learning (2015) (media.mit.edu)
65 points by baxtr on July 19, 2022 | hide | past | favorite | 26 comments



Mindstorms, by Seymour Papert, is well worth a read. Great book on education. If you like this kind of stuff, you'll also enjoy Bret Victor's Learnable programming [0] and probably all the other stuff he's published over the years.

[0] http://worrydream.com/#!/LearnableProgramming


Wonderful book that I think about all the time. So much so that I've jotted down my booknotes for Mindstorms here, if anyone's interested in a quick glance: https://charlieharrington.com/mindstorms/


In hindsight this make a lot of sense. Growing up, it didn't. I did my schooling in a small Indian city where from Grade 3-5 (that's approx 8-10 year old) we were given access to Logo in the computer room and instructed to make things (very basic stuff, initially, and progressively interesting things like spirals etc).

It was quite baffling then, till, say start of my undergrad (age 18), on what was the point of learning to control a turtle using simple commands. It hit me finally, as I was trying to learn actual programming.

A lot of people (in my circles) say that learning to program is intuitive, easy. I have never believed that. To teach something like HTML/CSS/How to use MS Word etc would be far, far worse experience (I'm looking at you, second tier Indian schools) than learning to move a turtle using simple commands. If nothing else, it brings home the idea of moving commands to actuate things on the computer.

PS: I suppose you can make the argument that this is also accomplished by video games but I hold that syntactically coherent commands (LT 90; FD 10) give a better insight into command-action nature of interaction than (Up arrow; Up arrow; move mouse to enemy; left click).


The great thing about systems like LOGO are that you can even implement them without a computer! A really easy way to get kids excited about programming is having them give LOGO-like instructions to "robots", their classmates, parents, or teachers. There's the extra fun factor of reversing roles of authority in such a setting.

I've helped teach CS to high schoolers for a few years. In some years, we've used visual systems like this. In my experience, they help kids get started with programming really easily. They can slowly learn more and more programming concepts with immediate visual feedback. But, in all classes, they get stuck in learning to abstract or plan solutions ahead of time for more complex problems. That's a hard jump with every method of teaching CS, though. In a sense, the immediacy of visual programming can make it hard for them to slowly develop long-range planning and reasoning skills. I'm not sure if a purely symbolic approach is better, still. I do think a bit more practice-oriented learning may help - think multiplication table worksheets.


Big Traks follow Logo-like programming. I loved mine…

https://en.wikipedia.org/wiki/Big_Trak


I almost lost my mind over the idea of a "programmable toy" when Big Trak came out. I loved it but not really programmable enough, right?


16-command memory, looking it up. Apparently it's pretty easy to drop in an Arduino and go from there!

Cool video: https://youtu.be/D-guBA1_T_Y


I had the same experience. We used logo in elementary school on Apple IIes and I thought we were just "learning computers." Looking back I realize that one teacher went out of her way to teach us something useful with the oudated hardware available (this was in 1992). Other teachers of the same class just let us play around with a print shop program, and in junior high we had a computer class which was just typing practice, again using Apple IIes. They were old and unmaintained, they didn't even have software available -we had to type into the command prompt for 45 minutes. In high school I took a computer science course, but quickly dropped it because it started us off with word and excel. It wasn't until undergrad that I was exposed to programming again properly again and realized what logo and that teacher actually was trying to us. I wish subsequent teachers had kept going in that direction.


FWIW, I was one of the LOGO kids in the early 70s, playing with mechanical turtles with Cynthia Solomon and Seymore Papert. I don't remember a time when applying an algoritm to a problem wasn't a potential solution. I think the main benefit here wasn't so much learning simple programming than it was "internalizing the metaphor of algorithm." (i.e.-you can use algorithms to solve problems.) You don't have to have a computer to use a binary search algorithm (but it certainly helps.) You don't have to have a computer to apply the "follow the left hand wall" solution to maze traversal, as any DnD dungeon crawl player will tell you. And then figuring out why it doesn't work when there are cycles in the graph is sort of important.

I saw a video of young kids in England "playing LOGO" before their schools had acquired computers. They were taking turns playing the part of the turtle while other kids spoke programs like "forward 4; right 90 degrees." Papert was big into "embodied learning" where concepts are translated into physical actions and artifacts, so it's no shock he would recommend something like this.

Somewhat related... my mother was an educational researcher at the time, so I'm one of the few people who can say "my mother taught me Lisp when I was 7 years old." Also... I learned unix sysadmin in the 80s maintaining my mom's Sun 3/60. Pretty sure the idea of using a Sun as a daily driver was an idea she picked up from her interactions with Papert's lab.

I just finished reading Brian Dear's "Friendly Orange Glow" where some interviewees said they felt Papert was a bit arrogant. But... having benefited from both PLATO and LOGO, the only thing I can say is "more arrogance like Papert's, please."


Here's an interesting video from the early 80s seeing this in action:

https://www.youtube.com/watch?v=pGPu2HSSAco


Watching the kid read his turtle-themed story – about a turtle mother who had a freakish triangle child – reminds me that kids really haven't changed that much.


I used Logo when I was in middle school, in the early 90s and not in the US. Looking back, it was an extraordinary and before-normal-times introduction to the world of computer programming. But at the time I did not know the importance of programming for my future personal and professional life, and certainly my classmates, almost all of whom came from blue-collar backgrounds, did not appreciate it either.


I learned Logo at the public library when I was that same age. It was extraordinary and life changing for me. It was then I decided to make programming my career.


I was just thinking of Logo today and how it got me super interested in programming. I ended up doing simple rectangles with my 5 year old. He loved the turtle!


The usual impression of LOGO is that it's all about the turtle, but as it happens, the language has a fair degree of Lisp-iness to it. Nothing like the Lisp macro system iirc, but it did lend itself to functional programming and recursive algorithms quite well.


Given the nature of variables and blocks in Logo you can do quite a bit. Like say you want to do a modulo-like operation:

    IF :SIZE > 100 [MAKE "SIZE :SIZE - 100]
You could do:

    TO MODVAR :VARIABLE :AMOUNT
      IF THING :VARIABLE > :AMOUNT [MAKE :VARIABLE THING :VARIABLE - :AMOUNT]
    END
    MODVAR "SIZE 100
But even things like WHILE can be implemented:

    TO WHILE :COND :BLOCK
      IF :COND [EVAL :BLOCK WHILE :COND :BLOCK]
    END
And the blocks are just lists, so you could potentially rewrite them.

I was looking at Berkeley Logo to remind myself of the commands, and found that CASE (similar to switch) is implemented as a macro: https://github.com/jrincayc/ucblogo-code/blob/26ae6f01105832... – though it seems like it could be implemented just fine as a regular function. Though :caseignoredp is confusing me a bit... it's technically a dynamically-scoped variable that affects many comparison operations, but that wouldn't work with a macro. I wonder if that's a bug from when it was converted from a normal function to a macro.


Oops, while should be:

    TO WHILE :COND :BLOCK
      IF RUNRESULT :COND [RUN :BLOCK WHILE :COND :BLOCK]
    END
But this does fail when you do some things in the block, like [OUTPUT] (equivalent of return).

Also looking closer at UCBLogo macros and they are evaluated at runtime in a way I didn't expect. That is, they are expanded at call time, and can self-reference causing repeated expansions (but the expansions are immediately evaluated so the program size isn't effected). But I think they really could have accomplished the same thing more easily with the Tcl uplevel command.


I looked at a couple of math books several years ago that used Logo, and was quickly turned off by the fact that it didn't have first-class functions--a pretty big limitation for a lisp. I ended up translating the code to either Python or Racket.


Technically, it is a Lisp.


When I was a LOGO test subject as a kid in ths early 70s, we used various list & text manipulation features of LOGO to build sentence generators and parsers. It wasn't all about the turtle. Very LISPy stuff. IIRC, the machine we used might have been a modified early lisp machine.


I used to LOVE LOGO as a kid! I used Microworlds EX as my interpreter, and made many games with it. Unfortunately I was not very clever, and my games kind of sucked in hindsight. I might reinstall it and see if I can make something better now that I have a degree


IIRC, unit testing Logo required a mock turtle.


Does anyone have a link to a curriculum for teaching Logo to a young grade schooler? There are tons of articles talking about the theory of education, and how great / impactful it was, but I can't find a textbook, worksheets, or even an emulator with a manual targeting a 1-2nd grade reading level.


For a modern, 3D version of Logo check out https://turtlespaces.org


also... I love this javascript logo environment Joshua Bell (not the violinist) put together: https://www.calormen.com/jslogo/


Is there a constructionist movement anymore? Has it evolved into something else?




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: