Wednesday, September 09, 2009

What Can You Do With This: StarLogo

When I saw Dan's What I Would Do With This: Groceries post, I immediately thought StarLogo. EToys would work too, but StarLogo is perfectly optimized for this kind of thing -- modeling complex systems -- and with Dan we want to respect The Rule of Least Power.

Even thinking these thoughts is painful and depressing, so I just left a short, bitter, cryptic comment:

In 2009, the easiest way for kids to approach this problem should be by writing a computer program. Of course it isn’t for myriad reasons, including kids not having computers handy. Also, it isn’t clear that solving the problem that way is “math.”

To which josh g responded.:

Tom: Is programming any better of an option in this case than using Excel? I like coding stuff but I don’t see the advantage here, other than building programming literacy (which is good, but not “easier”).

This is a good point, as I tend to forget spreadsheets exist, but also, I didn't read Dan's post that carefully and was thinking more about what I would do with it than Dan was.

Basically StarLogo is Logo with lots of independently acting turtles, instead of the traditional one turtle drawing lines. So in this case you'd create some customer turtles with a value for the number of items they've got and a "done" flag, and some checkout turtles which remove the items from a customer and flag them as done at a certain rate (based on Dan's observations), and an attached queue, and then you just run the thing as a simulation.

Just getting this basic simulation running is the biggest, and it is not hard if you know some StarLogo already, hard if you don't. StarLogo nirvana is when it is used repeatedly over a period of years (you could easily use it 5-12) in different subjects. Not so much as a one off. I'm not sure if anyone has actually achieved StarLogo nirvana.

Once you've got the core simulation working (and you could just provide it to the kids to speed the whole process up), then you can experiment in endless ways with relatively little programming. See how the whole system flows depending on how the turtles pick their lines. Study the effect of line-switching strategies. Measure the satisfaction of individual customers based on wait time. Try to maximize the average satisfaction. Try to minimize high dissatisfaction. Try one feeder line for all the registers, different cut-off points for express, etc, etc.

So that's what I'd want to do with it.

3 comments:

Ihor Charischak said...

Any chance of you actually doing it? I'm an old logo guy that would love to see one done in Logo. I'm aware of Starlogo but have never used it. In keeping with Dan's rule of least power I'd be interested in programming it Microworlds EX or even Scratch. There's plenty of turtles there to do a simplified version. What do you think?
-Ihor (aka ClimeGuy)

Tom Hoffman said...

Yeah... I've retrieved my copy of the StarLogo book and have been thinking about it.

Ihor Charischak said...

If you start the project I'd be happy to follow along with you! Let me know.
-Ihor