Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Logo Programming (media.mit.edu)
286 points by azhenley 22 hours ago | hide | past | favorite | 115 comments
 help



One of my most vivid memories from my childhood (around 10 years old) is trying to make a ticking analog clock using Logo, with the turtle drawing all the hands.

We had "no screen in the morning" house rule - we had to eat, play outside first while it was not too hot. I woke up and realised what was wrong with my code. And my mum made an exception to the rule and the fix worked! I am so grateful to her for understanding the importance of the moment and allowing me to do the fix. I guess I'll give her a call and tell her the story now :) Thanks HackerNews!


I myself learned programming with logo, at my school when I was 8 or 10. And it was a delight, I am so grateful it existed.

But quite surprisingly, when later during my Ph.D. part of my time was dedicated to give exercises to students. And we used logo instead of the more usual programming languages. And I think it really helped them to really internalise programming a lot better. Typically, the latest exercices introduced recursion which is immediately visible as fractals.

    HIDETURTLE
    
    PENUP
    SETXY -200 0
    RIGHT 90
    PENDOWN
    
    to dragon :degree :size
        setpensize 1
        if :size>5  [setpensize 2]
        if :size>10 [setpensize 3]
        if :size>20 [setpensize 4]
        if :size>40 [setpensize 5]
        ifelse :degree=0 [
            fd :size
        ][
            left  45 dragon (:degree-1) (size/4)
            right 90 dragon (:degree-1) (size/2)
            left  90 dragon (:degree-1) (size/4)
            right 45
        ]
    end
    
    dragon 6 3000

if you want to give a try :)

> Typically, the latest exercices introduced recursion which is immediately visible as fractals.

I well remember the epiphany I felt while learning Logo in elementary school, at the moment I understood what recursion is. I don't think the fact that the language I have mostly written code in in recent years is Emacs Lisp is unrelated to the above moment.


small correction - use `:size` in the three lines near the bottom (rather than `size`)

I tried it on https://www.calormen.com/jslogo/ and saw this small typo

cheers!

p.s. same as you, I was introduced to Logo around the age of 8 and I remember writing programs on paper when I was home, stepping through them line by line... it was inevitable I'd gravitate towards programming, ha :-)


I'd also recommend `:degree <= 0` as the check, rather than `= 0`, just in case someone passes `5.01` to the function (which would cause an infinite loop as you'd never hit exactly 0). But yes, if that was just coded into the comment box then it looks pretty good.

I should have scrolled down to your comment first! I spent 10 minutes debugging.

Nice work GP if that was air-coded, though.


I was also introduced to computer programming using LOGO back in 1989. I remember drawing houses and stick figures in it.

Fast forward around 2010, I gave Agent Based Simulation workshop courses to PhD students using NetLogo , which at the time was very popular in the Social Sciences.

It was very interesting to teach programming to non-tech very intelligent people. Some of them came up with really cool simulation ideas. I loved that part of my career.


For many years, our students[0] have used Logo as an integral part of their math circle-style[1] classes. When we started Wally Feurzeig, one of the creators of Logo, was instrumental in helping us incorporate ideas from Logo into the kind of non-standard problem solving that we were striving for. Turtle geometry is a particularly helpful "instrument of the mind" for exploring dynamic geometry. Our co-founder, Victor Gutenmacher, wrote an incredible book[2] on "geometry in motion," which gave a completely different perspective on geometry from the one seen in school and which our students could explore with the help of Logo. For many of our students, especially those with math anxiety, Logo was what enabled them to overcome that anxiety and discover the joy of thinking and tinkering. Many programmers today have fond memories of getting into programming via Logo, but I would argue that despite the current blistering pace of progress, it remains one of the best and gentlest introductions to problem solving and computational thinking.

[0] https://www.gentleknowledge.com/

[1] https://en.wikipedia.org/wiki/Math_circle

[2] https://www.amazon.com/dp/0817641610


I still remember when we learned logo in elementary school. I had to get my mom to go out and buy a 3.5" disk so I could save my programs.

When I realized that all of logo was actually saved on that disk and I could continue playing with the turtle at home, I was amazed.

Drawing little things, realizing that I was repeating stuff and breaking it into little functions so I could draw them again more easily. I was learning the essentials of programming and didn't even realize it.


Also as a child, I was amazed by the associative tables it offered; I thought "I can make intelligent programs". I think I was thinking AI but I won't trust my memory on this. But I played a lot more with the turtle.

We had it (or one of the clones) in middle school, but it was a demo version that had saving disabled. Half of each class was messing with the turtle. The other half was writing down the code with pen and paper so that we can have it graded.

I remember learning LOGO in school. There was a single 4K computer for the entire school, so we learned how to program by calling out turtle commands to the teacher who would draw the results with a marker on a sheet of plastic on an overhead projector.

At the end of that exercise, the accumulated commands would be taken to the computer (in another part of the school) and entered into the computer, and eventually we'd get a plotter printout showing the results.

Those early days of computing feel like we were like being on another planet.