Hacker News new | past | comments | ask | show | jobs | submit login
Mindstorms: Children, Computers, and Powerful Ideas (1980) [pdf] (worrydream.com)
125 points by tosh on Nov 2, 2018 | hide | past | favorite | 23 comments

I like this bit: "In the LOGO environment new ideas are often acquired as a means of satisfying a personal need to do something one could not do before. In a traditional school setting, the beginning student encounters the notion of variable in little problems such as: 5 + X = 8. What is X? Few children see this as a personally relevant problem, and even fewer experience the method of solution as a source of power. They are right. In the context of, their lives, they can't do much with it. In the LOGO encounter, the situation is very much different. Here the child has a personal need: To make a spiral. In this context the idea of a variable is a source of personal power, power to do something desired but inaccessible without this idea. Of course, many children who encounter the not~ion of variable in a traditional setting do learn to use it effectively. But it seldom conveys a sense of "mathpower," not even to the mathematically best and brightest. And this is the point of greatest contrast between an encounter with the idea of variables in the traditional school and in the LOGO environment. In LOGO, the concept empowers the child, and the child experiences what it is like for mathematics to enable whole cultures to do what no one could do before."

This book is way up there on my list to read! And I really should, because I probably don't agree with everything, but I probably also know nothing.

Rant follows:

I went home from school every day seeing an application in my own projects for everything I learnt, from mathematics to history, because I could include it in my software projects, or table top related games, so the text reminded me of teenager's typical complaints regarding learning mathematics.

Kids say that they don't need mathematics because it has no application in the real world, but if kids were qualified to make that comment, then they should be out working from a very young age, to gain real world experience.

"5 + X = 8" represents abstract thought, which kids find challenging, and teenagers don't like to be challenged, whereas, when kids start to read and write, they love being challenged, and yet, they comfortably learn a tool which also represents abstract thought.

I think teenagers are just learning to be sufficiently lazy and pragmatic, but that they aren't qualified to know how to stretch their brains in the long term.

Teaching math in the absence of its applications is the problem. Algebra and calculus seem pointless when you don’t know why you’d really use it beyond simple word problems on exams. Given an interesting reason and purpose to use math would probably improve learning a lot. Having a class called math is maybe not the best place to learn math, maybe they should learn it in physics instead.

My biggest LEGO discoveries as a child came about due to limitations:

My mom would take me to visit her parents, which (once the sun went down and I couldn't run around outside) was very boring. I didn't have my huge lego collection from home, but they did have a small collection from when their kids were younger.

No hinges, no spinners, no windows - basically nothing special, just bricks and long-thin-flat pieces. (I don't know the terms).

boring, boring, boring...until I discovered that you could take a thin piece and connect one dot from above and below to other pieces( "-=" ), and that piece was now free to swivel. If the two pieces you used were also long thin pieces, you could connect the other end to a single dot of a fourth piece, and you now had a double joint. ( "-=-" )

I built many "robots" top play with like this, that were basically 90 degrees from normal (the "top" of the legos would be the "front" of the robot.

I played with Legos for years in a variety of ways, but this was one of the few where I "discovered" something. Other times I learned to alter direction of the build by containing a length of joints inside a "tunnel" of bricks, so that the plane of the joints would be at 90 degrees to the plane of the bricks (the "top" of the bricks could be the "top" of the figure, while the "top" of the joints would be the "front" of the figure, or vice-versa). This allowed me to build humanoid figures with knees that faced forward but arms that bent outward or over the "chest", or scorpion-like figures with claws that closed side-to-side but legs that extended out to the sides and moved up-down.

Later I expanded the collection with more special pieces that allowed me to put such joints on hinges or spinners, but I honestly believe I'd never have gotten there if I hadn't been bored with no other options. I'm POSITIVE others knew these tricks, but I never encountered it in any of their materials and I didn't have friends to tell me.

I was excited about mindstorms, but as they became more advanced when I was just out of college and busy learning how to handle a marriage and a career I never got into them, and I wonder if they encourage their own sort of discovery like that, or if it's too specific.

You know this is the book about pedagogy and computing by Seymour Papert, and not the product by LEGO, right?

Seems relevant.

The analogy would be following the Lego set instructions vs. self-directed free play with a few limited pieces is like traditional math class vs. learning math via playing with the Logo turtle.

Also the “Lego Mindstorms” product was a collaborative effort with the MIT media lab, and is named after Papert’s book.

However Lego analogy breaks down when we progress to stage II (image making) and III (theorizing).

> I discovered that you could take a thin piece and connect one dot from above and below to other pieces( "-=" ), and that piece was now free to swivel.

That opens up tons of interesting possibilities. Goes to show you what a kid can think of when they want to have some fun.

> busy learning how to handle a marriage and a career I never got into them

Well, I hope your kids get a chance to do that, you may live vicariously through them.

Even as someone who was exposed to LOGO as a child and didn't like it I found this book really excellent when I read it a couple of decades go.

A great quote from the foreword: "Slowly I began to formulate what I still consider the fundamental fact about learning: Anything is easy if you can assimilate it to your collection of models. If you can't, anything can be painfully difficult."

I can only skim a nearly 300 page book but I get the impression that the basic point is that, done right, computers can be an amazing tool to allow a child's natural impulses to play and exploration to grow and flourish.

Seems reasonable enough. So what went wrong to the point that today, primary advice to parents wanting to encourage growth in their kids is to remove the computer completely?

This also is connected in my mind to the period where learning to program was connected to basic literacy but now just avoiding the computer until one is old enough to handle it is closer to a road to basic literacy.

Is there a different way we can take this.

I think the suggestion to remove the kids' computer arises out of the expected likelihood that the kids will just load up Facebook, YouTube, Twitch etc. and install Steam, and never engage with anything other than those activities.

When I was a kid and I spent hours on the computer, none of that stuff existed, and it was difficult _not_ to learn interesting things because the primitive nature of the computers forced me to figure out a lot of non-obvious things. I wanted to play computer games too, but sometimes I had to figure out pretty advanced troubleshooting processes to even launch a game (for example).

Same. Had a Commodore 64 hooked up to a CRT in the living room. Thinking back - "a programming language as an 'operating system'" is actually still very cool idea for those reasons you mention above.

Hell, even moving foward - in the 90s using DOS - you had to be somewhat computer literate to get anything to run well (esp games those days which bundled their own hw drivers, etc). HIMEM.SYS, different system boot files per application, etc.

In some ways things are much better now... in some ways they are far far inferior.

This mini-dichotomy reminds me of Rich Hickey's "Simple and Easy" talk.

Much in favor of more Alan Kay, Bret Victor, Doug Engelbart type ideas coming to market as opposed to being "locked" (somewhat) in academia.

I've not finished the book yet, but I'm partway through it. I can share an anecdote from my own adult experience.

I have played around with coding (HTML/CSS/game modding/etc) a little bit for many years, but I will admit I knew very little of "programming" until after I was an adult, after college. I learned programming through learning JavaScript, and once I got a tiny foothold on the language I went through and did a number of explorations:

- string formatting (outputting song lyrics that contain predictable patterns, usually kids songs) - calculating simple math problems like restaurant tip split between friends, or final % abv of a mixed drink of two liquids with different volumes and different %abv - using randomness to generate simple things like images or natural language based on a variety of inputs - producing sound via web audio APIs and reaffirming music theory (notes, harmony, scales, musical instruments like theremin and piano) - creating very basic games with a simple event loop - creating very basic turn-based games like hangman - recreating a number of dead-simple mobile apps: reminder list, memo pad, clock, etc

As I learned to program, I basically went through each aspect of education I had learned as a child and teenager and not only reaffirmed and brushed up what I thought I knew, codifying it into executable code I could demonstrate and show to others - but I expanded what I knew by harnessing language + math together in an interactive environment.

Personally, I see the computer as an AMAZING tool for thinking, but that's only if you're the one writing the software.

Computers for kids are as good an idea as literacy, and numeracy - it's like the next level of literacy where your thoughts come alive.

However, just like how literacy is a huge benefit to any child, reading trash literature is bad.

I think we need to stop lumping all computer use into one category. Perhaps there's little benefit to some uses of a computer, like using software written by others, or using it for little more than a television set…but computers as a tool for mind-expansion are unbeatable with any other tool we have.

We need to teach kids how to be COMPUTER users, not SOFTWARE users. It's when you are the person writing the software that you're fully using the power of the machine.

What went wrong is that these systems were designed by extremely smart CS PhDs who massively overestimated the abilities of the average human.

Papert, Kay, etc, are all world-class smart, capable, and inventive people. They designed these systems in their own image, probably with a more or less conscious desire to build something they would have wanted in their own childhoods.

An average human with average abilities doesn't have the cognitive horsepower or the creativity to get much from these systems. They can play with them in a fairly superficial way, but only a relatively small proportion - I'd guess less than 25% - will get excited by the ability to imagine and build their own systems.

Without that excitement there's no motivation, and without the motivation any kind of programming becomes an exercise in pointlessness.

So - you can move a pointer around and draw lines? By typing words? Cute. But so what? Why should I care?

The real challenge - much harder than designing computer software - is working out political and educational strategies that reach the (nominal) 75% who don't find that kind of problem solving particularly interesting.

I've literally just been reading Kay's mini-book on the history of Smalltalk. Here's a quote on literacy:

"Literacy, for example, is being able to fluently read and follow the 50 page argument in Paine's Common Sense and being able (and happy) to fluently write a critique or defense of it. Another kind of 20th century literacy is being able to hear about a new fatal contagious incurable disease and instantly know that a disastrous exponential relationship holds and early action is of the highest priority. Another kind of literacy would take citizens to their personal computers where they can fluently and without pain build a systems simulation of the disease to use as a comparison against further information."

This sounds perfect, but I think the experience of almost everyone who has been to school knows that a fair proportion of their age cohort not only can't think at this level, but has absolutely no interest in being able to.

You might - possibly - be able to do something about this with a historically unique social engineering program supported by a media campaign that made abstract skills appear desirable and heroic. (A version of this happened during the Cold War, kind of.) But even then, it's not obvious from history just how far you could take that.

Either way, technology on its own is never going to be a solution. It may support policy, but it's never going to be powerful enough to enlighten the surrounding culture.

What actually happens is that economic and political pressures steer technology towards offering simple - often poor, but understandable - solutions to common problems. Worse wins out over better, and over time the possibilities shrink instead of expanding.

> it's never going to be powerful enough to enlighten the surrounding culture

But one of Kay's central arguments is that literacy (meaning reading/writing media, especially print) did precisely what you are saying isn't possible. If computing is such a medium, we can't even imagine what kinds of enlightenment will be possible -- the same way oral cultures cannot imagine the ways of thinking of literate cultures.

Mindstorms is not about technology, it is about a particular approach to learning (constructionism) that happens to mesh very well with interactive computation. See http://namodemello.com.br/pdf/tendencias/situatingconstrutiv...

I took Mindstorms to be more about a necessity-driven approach to learning. I would guess you're right: not everyone will find Logo interesting. But I think that everyone has something they want to do and are currently incapable of doing. I thought that Papert was using Logo to show how a general education can occur in the process of acquiring that desired capability. In the context of Mindstorms, this was always a new capability as a Logo programmer, e.g. being able to draw flowers. But I thought the more fundamental point was that people will acquire generaly applicable knowledge through the pursuit of some specific and sometimes (seemingly) trivial skill. This principle isn't contingent on using Logo for anything.

> these systems were designed by extremely smart CS PhDs who massively overestimated the abilities of the average human.

Papert would intentionally pick the worst-performing students in a regular school, put them in his "Papertian" math class (i.e. LOGO playground with very little teacher time), and see them perform on-par or better than the top students by the end of the year.

It's all in the book. Please read the book.

What went wrong is that these systems were designed by extremely smart CS PhDs who massively overestimated the abilities of the average human.

The point about literacy to begin with offering this kind of leap is important.

But another thing about systems is that, designed by smart or by mediocre men, they have the problem that their difficulty increases much more rapidly with their size than does that of, say, a novel.

A literate world could exchange one essay for another. A computer programmer couldn't as easily write a rejoinder for a given system without writing much than is involved with the original system (that sounds clunky but you have to admit code-size growth is whole different situation than the grow of books).

I sense this won't be a popular answer, but it aligns with my experience teaching both english and math to undergraduates, as well as my personal observation.

Disheartening but true.

Have you tried teaching 5 year olds? By the time they reach college, the curiosity has been thoroughly stomped out of many people.

One thing I liked from Mindstorms was the concept of Microworlds. (Both names have since been turned into product names, but seemingly unrelated to the actual ideas.)

Turtle graphics is one Microworld, specifically based around geometry. Hence its relatively novel use of angles and lengths instead of coordinates.

Each world gives people something to explore. That they do it programmatically is interesting, and allows for different kinds of exploration, but it's the world they are exploring, not the code.

Mindstorms hints at the idea that there should be many such microworlds. Maybe they all use Logo, or maybe not.

What didn't happen is all those other Microworlds. But some have happened: Processing (https://processing.org/) is one example. And I think it's notable that "Processing", the graphical approach, is treated separately from any particular language implementation; Processing.js is another valid implementation of the same microworld.

But there could be many more! And I think it's much more interesting than yet another puzzle-based block programming language to teach coding.

1. Choose Your Own Adventure approaches to nonlinear fiction, which starts without any programming but easily opens up into all sorts of other complexity. (http://twinery.org/ is an example implementation)

2. Music generation. (e.g., http://foxdot.org/)

3. Lots of procedural generation, really. Something as simple as cartoon face generation could be interesting. But starting with primitives (like in https://happycoding.io/examples/processing/creating-variable...) hides the fun and interesting part behind graphics coding.

4. Eliza, in her original implementation, is like a very simple programming language for interaction.

5. Quiz generation. Writing a program that creates a math worksheet seems dumb, but I think a lot of kids would find it both interesting and satisfying.

6. Agent simulation (ala https://ccl.northwestern.edu/netlogo/docs/)

Of course all these things exist, but they often aren't matched up with an appropriate introduction and a humane programming environment designed to actually work for children. Working towards that – and doing so with a love not just for programming, but for the concrete (if simulated) worlds you are opening up through programming – could lead to something much more interesting than a lot of current technology-based education.

Explorable microworld is an interesting way to think about specialized Language+IDE combos.

For example I like LiveCodeLab[1] a lot, and it’s also a fun tool to intro total beginners to the pleasure of programming (“write and something happens”). It has very few primitives, but you can build some very interesting live visuals, and the language is build on interesting choices driven by its live nature [2]

Another great combined tool is OpenSCAD [3]. It’s really a computational tool to explore solid, printable objects, and thus seems to fit the microworld category.

A weird, niche one is Context Free, that didn’t grow like Processing but has it’s own advantages and particularity (like how randomness is managed) [4]

[1] https://livecodelab.net/ [2] https://rumblesan.com/static/LiveCodeLang-Farm2014.pdf [3] https://www.openscad.org/ [4] https://www.contextfreeart.org/

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