That’s the title of a short but interesting book I finished reading early this week. It was written in 1994 by Mitchel Resnick, who had previously co-created the ‘programmable bricks’ that led to LEGO Mindstorms, and would later co-develop Scratch.

The book is subtitled Explorations in massively parallel microworlds and introduces StarLogo, a parallel Logo-like language Resnick created to allow exploration of decentralized systems in which global behaviour emerges from simple individual rules. In the chapters Foundations, Reflections and Projections he discusses decentralized systems and how people still think in a very centralized way. In the chapters Constructions and Explorations he presents StarLogo and projects he did in schools with children. The book’s title comes from those projects, simulating how ants find food, how traffic jams develop, etc.

It’s fascinating to see how the collective behaviour of many agents apparently coordinated by a central ‘invisible hand’ actually stems from simple rules followed independently by every agent. Another insightful part of the book is the description of how children tackled the various projects, often coming up first with a more complicated centrally coordinated solution that involves much more communication and state variables than the decentralized approach. As Resnick argues, most adults would come up with the same approaches: centralized reasoning is ingrained in our culture and education.

I already knew that our forthcoming introductory computing course My Digital Life is going to use an extended version of Scratch for students to do exciting projects. Now, talking to a colleague, I learned that our Natural and artificial intelligence course teaches (among many other things) similar topics to Resnick’s book but using NetLogo, which was inspired by StarLogo. I should probably borrow the course text from the library over the summer holidays: it should make for an interesting read to complement and expand on Resnick’s book.

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>