Tags

, , , ,

Su Su (nee Stanford, now at the Teachers College of Columbia University) and I are spearheading an initiative to promote METALS, the explicit inclusion of logic as a part of STEM/STEAM. If you add L to STEAM and work around the letters a little, you get METALS, which is a pretty good acronym.

Our first act of “public METALS” (METALSing? METALing? meddling?) is to create model Hopscotch programs, that depict explicit logic problems as games. The idea is to lead kids into logic through the creation of little logic game programs, based upon our models.

The idea of rendering logic into a graphical form comes slightly from the Tarski’s world logic education paradigm, which Su Su has worked on as a TA and instructional designer. We observed that Tarski’s world isn’t actually much fun (for a kid, anyway), and that it could be significantly simplified and at the same time made more fun. Moreover, we HAD to do this because (a) we wanted to let kids try to program the underlying machinery, and (b) we wanted to re-program it to game-ify it. But you don’t have to get nearly that complicated to gamify logic!

It’s very easy to create simple logic games in Hopscotch. It also has a very natural community model, which allows others to very easily fork, modify, and republish programs. Here’s our first METALS effort, called “Monster Logic 01”. (At the end of this note I’ll expose some of the code, and talk about what made this somewhat hard in Hopscotch, and suggest other approaches.)

IMG_1957

(Medfgu is a bunch of random letters that Leo typed when we originally setup his account, so now I’m stuck with it! 🙂

Here’s what you see when you play the game:

IMG_1958

When you click on monsters, they rotate 90 degrees. When you think you have it, you click on the check. (The annoying over-written instructions vanish after a few seconds.)

After a few clicks:

IMG_1960

Oops!

If you don’t get it right, you can keep trying.

Here’s a correct solution:

IMG_1962

One of the central themes of our METALS initiative, and Tarski’s world, is to be explicit about the translation from natural ways of expression (i.e., “word problems”) into formal logical expressions.It turns out that it’s hard to turn the expression in Monster Logic 01 into formal logic…well, harder than we wanted to do for a kid…so Su wanted to start with less complex games. Here’s one she wrote (slightly modified by Leo and me):

photo 1

What makes this one interesting is that you can expose the formal formula:

photo 2

We’re planning to create a whole bunch of these, demonstrating various aspects of logic, and walking kids through creating one of their own.

Su is now working on this for her Masters project at The Teachers College. Technically her target age is 8-12, but here’s the age that I think that you should start teaching logic to your child:

IMG_0037

(Photo Credit: Rod Golden @ widgetphotography.com)

Some notes on programming in Hopscotch.

It’s actually pretty painful to do anything complex in Hopscotch. In service of simplification they’ve unfortunately wrung the concepts of abstraction and data structures almost entirely out of the language, so you can’t copy objects, reuse code, nor operate on abstract data. For what it does, it is indeed quite simple, but it hits its limits pretty quick. In the Monster Logic 01 I had to repetitively recode each Monster’s methods, and then refer to each one separately in the scoring code. (IMHO, what one really wants, these days, is a Scratch Javascript that runs in browsers!) It’s possible that I’ll be able to come up with tricks that reduce this burden, but I haven’t found any yet. On the other hand, it is a very very easy programming language, which is good, and has the great community model that I mentioned above.