Feeds:
Posts
Comments

Mirror Palindrome Numbers

sym_nums_odometer

I took this picture while driving, much to the panicked screams of my passengers. What they couldn’t see, and I had very little time to capture, was that the odometer was displaying a very curious number, namely “122551”. It may not be obvious in the font being used here, but on my dashboard, rendered in seven-segment LED numbers, it exhibited perfect mirror symmetry. These kinds of numbers are related to palindromic numbers (which I explored earlier this year), but are just a little bit more odd because they rely on how the numbers are represented visually.

The question I began to think about was something like: “How many times will the odometer of my car display a number that contains it’s own reflection?” In this strange kind of numerical analysis, some numbers will never show up (3, 4, 6, 7, and 9), some exhibit self mirror-symmetry by the nature of being symmetrical about the vertical axis (0, 1, 8) and then 2 and 5 are a reflective pair. What that means is that any time a 2 or a 5 shows up, there must a corresponding opposite 5 or 2. For the record, 9 and 6 don’t count because they are rotations not reflections. So how is this essentially arbitrary property distributed along the number line?

To examine a few million integers efficiently, I would have to create an efficient way to check a number for mirror symmetry (in python). I decided to treat all mirror-able numbers as if they have a mirror pair the way 5 and 2 do — this simplifies the comparison step. For odd length numbers, I check for self-symmetry on the central digit.

SymPairs = {'0':'0', '1':'1', '2':'5', '5':'2', '8':'8'}
SymMonads = ['0', '1', '8']

def sym_check(v):
    l = len(v)
    match_count = 0
    for i in range(l/2):
        target = v[i]
        if not target in SymPairs:
            continue
        match = SymPairs[target]
        if v[l-1-i] == match:
            match_count += 2
    if l & 0x1:  # odd length
        # check center digit
        if v[l/2] in SymMonads:
            match_count += 1
    rval = 0.0
    if match_count > 0:
        rval = match_count / float(l)
    if rval == 1.0:
        print v
    return rval

Armed with a function that returns 1.0 for fully mirror-palindrome numbers, I checked to see how many there were between 0 and 100,000:

0	15821
1	18081
8	18181
11	18881
25	20005
52	20105
88	20805
101	21015
111	21115
181	21815
205	22055
215	22155
285	22855
502	25025
512	25125
582	25825
808	28085
818	28185
888	28885
1001	50002
1111	50102
1251	50802
1521	51012
1881	51112
2005	51812
2115	52052
2255	52152
2525	52852
2885	55022
5002	55122
5112	55822
5252	58082
5522	58182
5882	58882
8008	80008
8118	80108
8258	80808
8528	81018
8888	81118
10001	81818
10101	82058
10801	82158
11011	82858
11111	85028
11811	85128
12051	85828
12151	88088
12851	88188
15021	88888
15121

The great thing about this function is that it returns 1.0 for a perfect mirror-symmetry number, and something less than that for something that exhibits some symmetry. So we can visualize that as grey scale in an image. Here’s the corner of an image that contains a rendering of all the numbers from 0 to 1,000,000. In the upper left corner is 0 with the pixels representing 0, 1, 2, 3, 4 and so on moving to the right. Pixels 0, 1, and 8, are bright green because they are self-mirroring. Checking the list above, we see pixels representing 11, 25, 52, and 88 lit up as well. In this rendering, grey pixels are kind of symmetrical, and black pixels exhibit no symmetry (according to how the code is testing for it).

sym_nums_1-crop

That pattern of rectangles continues, with an evolving variation, from there on out. Viewed as a graph, you can see the gaps between fairly evenly distributed ranges more clearly.

Screen Shot 2017-07-19 at 10.52.23 PM

Start looking for patterns in numbers, and you will find them. This is also true for all endeavors, mathematical or otherwise.

TS-StructEngBingo-v01-thumb

This is an experiment in tracking how, when, and why, big structural engineering concepts come up in Tinkering School. I’m not sure “bingo” is striking the right note, but this is a portion of a little chart I made for myself as I head into another big Tinkering School summer.

When I speak at conferences, my distaste for grades, and most forms of measurement applied to student learning, comes across quite clearly. This stance often leads to a question of the form “If we don’t test them, how will we know they are learning?” The answer is, simply, if you knew them, you would know if they were learning or not – and if they aren’t, testing isn’t going to help you understand why. “So,” someone will ask, “if we don’t measure the kids, what can we measure?” I believe that it might be useful to measure the school; how well is it engaging the students? how happy are the students and staff? how excited are students and staff to start the day? how much after the school day are they talking about the ideas of the day? are they making excuses to stay longer at school? This chart is a small experiment in measuring and documenting my own practice.

In my 12 years or so of Tinkering School, the kids that have come multiple times have developed strong intuitions about structural engineering. Structural engineering is a discipline, and I like this definition from Wikipedia:

Structural engineering theory is based upon applied physical laws and empirical knowledge of the structural performance of different materials and geometries. Structural engineering design utilizes a number of relatively simple structural elements to build complex structural systems. Structural engineers are responsible for making creative and efficient use of funds, structural elements and materials to achieve these goals.

Look at any of the past years of Tinkering School projects and you will quickly see the emergence and use of “relatively simple structural elements to build complex structural systems”. These patterns are near-perfect examples of basic structural engineering concepts, despite the fact that we hardly ever do anything that resembles a lecture about engineering (although in Overnight camp we do sometimes have a morning “vitamin” that looks suspiciously like a five-minute lecture/demonstration). There is a strong rolling culture at Tinkering School that is fostered and maintained by the alumni tinkerers. A major component of that culture is the accumulated knowledge, both tacit and explicit, about structural engineering. It is quite common for an older tinkerer to give advice to a younger tinkerer and to frame it in terms of previous projects; “When we were working on the windmill tower…” For example, large rectangular frames of wood are often easy starting points for new constructions, and as one comes together, the alumni student will (more or less gracefully) suggest that a corner gusset or diagonal member would be a good way to keep it from skewing over sideways and turning into a trapezoid.

When we are working with the kids, we use all of the real terms from structural engineering (“lever”, “moment arm”, “compression”, “tension”, etc), and then explain as needed in the context. These terms don’t always stick on the first encounter, but by the end of the week, they start reliably popping up in conversations.

We’ve never looked really closely at how the topics come up and which contexts create the most durable learning moments. So, I created this chart of the most common concepts and at the end of each day during our team reflections, I will see which boxes I can check and write anecdotes to capture some details. It’s not perfect, but I’m curious to see what it looks like at the end of the week and to see if there are any patterns to the anecdotes.

Here’s the full chart.

TS-StructEngBingo-v01

Assume that numbers like 121 and 23432 are interesting because they are palindromes (rendered in bright green), and that numbers like 122 and 22432 are kind of interesting because they are almost palindromes (rendered in a shade of gray corresponding to how palindromic they are). Now calculate and render that for every pixel in a 1000×1000 image, with pixel 0 being in the upper left hand corner and pixel 999,999 in the lower right, and you’ll end up with something like this:

Palindromic numbers from 0 to 999,999

Code developed in Jupyter notebook, here.

Notes to New Tinkerer

A few years ago, a teacher in New York asked me to describe how I would do a simple project in a classroom setting that retained key elements (open-ended, self-directed, engagement-based) of the Tinkering School pedagogy.

Doodlebots – an exploration of kinetics

Materials
There are six important ingredients:
– batteries (AA)
– wire (almost any insulated wire will work)
– motor (http://bit.ly/amI7ik – $1.09 each if you buy 10 or more)
– duct tape (although we’ve had some good results with scotch tape)
– pens (felt-tips produce the brightest marks)
– stuff from the recycle bin (plastic tubs, cardboard, lids, etc)

You may also want some scissors, a utility knife, and some stiff wire (home improvement stores sell a soft iron wire for tying rebar together that is easy for kids to work with – we keep a couple of rolls around just because it’s so handy).

Project Stages
Remember that this is an exploration, not a series of goals per se. We want the kids to discover the properties of the materials, share their discoveries virally, and build on each other’s ideas. The adult collaborator is there to help and should only offer suggestions when specific questions are asked. Avoid getting the kids into an “ok, I did that, what next?” cycle by never directly answering the “what next?” style questions – the kids will look to each other for inspiration. Only if there is a real drop in momentum should the collaborator actively nudge the kids in a direction (and often the best way to do this is if the collaborator starts building something themselves – the kids will see what they are doing and start to emulate it, then discover a new path).

Finally, don’t reveal all of the materials at once.

Stage 0 – prep
If the kids are young (say less than 6), cut some 6 inch lengths of wire and strip the ends (you need about 1/2″ of bare wire on each end of a wire). Each kid will need two wires. If it’s bigger kids, just put the spool of wire out and give them the wire-strippers to cut and strip their own wires.

Cover the table with butcher paper to protect it from getting covered in doodles.

Stage 1 – playing with motors
Put the motors, the wire, the tape, and the batteries on the table (one motor and one battery per kid). I like to say “These are for you.” to make it clear that they each now “own” a motor and a battery. Allow the kids to discover how to get the motors going. There is no potential for disaster here and when the kids get the motors going they will revel in their success. Often there are a few kids with enough of an inkling of how motors and batteries work that they will get things going. If after 10 minutes of fooling around, no one has a motor going, the collaborator should demonstrate. Once the motors are going, let the kids play with them for a good 10-20 minutes. If there is active exploration of spinning motors, let it keep going.

Stage 2 – Vibration
All it takes create motion is some vibration. The easy way to do this is to put tape on the shaft of the motor, or tape something to the shaft of the motor. Often a hunk of tape is sufficient.

Stage 3 – Chassis
Bots need bodies. Introduce the collection of recycled materials. No two creations will be the same, and it’s not a competition (although sometimes kids will compete with each other spontaneously) so it’s not important that everyone get exactly the same materials in this stage. Just put the pile out and suggest that they might want something to attach their motors to – the kids will pick out the things that inspire them. This stage takes a while. There are an infinite number of solutions to the problem of getting the motors to move the bots, so let the kids discover these the same way they discovered how to get the motors going – let them fool around.

Stage 4 – Doodling
Bring out the pens. You hardly have to say anything, but if they get distracted decorating their machines (a perfectly acceptable behavior), select the most disengaged child and ask if you can “try something”. Add the pen to the bot in the least sophisticated way possible and set it down on the work surface to see what happens.

Resources:
Lots of people have done this project in one form or another, but the Exploratorium also has a nice write-up for use in the classroom.

I am a fan of the work of Jane McGonigal, but as I think about the details of the actual school day at Brightworks and consider the use of game mechanics to engage children in the day to day tasks of keeping the place shipshape, I face some concerns. Ideas like Chore Wars certainly have some appeal, but I wonder what the long-term effects of this kind of experience might be.

Rewards and the Implication of Authority
The notion of a reward, some kind of benefit for having done something measurable, carries with it the idea that someone (be it person or algorithm) has judged your effort and found it worthy. At Brightworks, we deliberately avoid judgement-based evaluation of the children’s work and try to let the work speak for itself – both to the child and to the world. If a team of children builds a sailboat and it sinks on the maiden voyage, nobody has to tell them that the boat didn’t work right – the boat tells them that directly, and in a more nuanced and appropriate manner. We may need to help them see the event as just a momentary setback on the journey to building a great boat, but they understand that their boat didn’t work. Likewise, if they make a great boat and sail it across the bay, we don’t need to give them a gold star or an ‘A’ – the boat does this as well, and again, in a more nuanced and appropriate manner.

To Dream The Impossible Dream

In a (somewhat infamous) project at Tinkering School, we built sail-powered carts that we intended to use in an empty field near the seashore. Despite the excellent construction, and the voluminous sails, the carts never moved under wind power. Had this been a gamified experience, the kids might have received no points for completing the project – and yet this project remains a durable and valuable memory in the history of Tinkering School. The kids who worked on these carts remember the experience in vivid detail and can explain in enormous detail the whys and wherefores of the failure. Simple game mechanics would not award any points, but I defend the experience as immensely valuable. Perhaps this is why the role of the human dungeon master in Dungeons & Dragons is so important to the experience – life is complicated, and learning experiences are doubly so. The long-term benefits of an experience cannot be summarily judged and awarded in the moment. The value may be cumulative and not visible or even meaningful until years later.

Do we habituate ourselves to external validation by always expecting an award for doing something? It seems to me that we might undermine our ability perceive our own efforts and the efforts of others as positive without some sort of score or reward. As in most things, a polarized view of gamification is probably not useful. I am certain that making chores fun by awarding experience points has its place and in and of itself is not harmful, but as we see gameplay introduced to more and more of our lives, we should keep an eye on the net impact. If awarding points gets more people contributing to social good, then I have a hard time seeing that as bad. But I fear that over time we may forget how to perceive value for ourselves (unless… we can be awarded points for having an internal perception of the value).


Kevin makes the excellent point that I’m taking a very reductionist approach to thinking about gamification:

I’m sure the popular notion of gamification is the gold-star interpretation, but games don’t have to point-based. I think the bigger benefit to games in many contexts, like education or business, is the shift from linear to-do lists into holistic/systemic thinking about things encountered. One of the strongest elements of gaming is the narrative that give the mechanics life. I love the notion of businesses having DMs, not PMs.

Which Daniel also backs up with a relevant example:

… Compare Gowalla’s design (which emphasizes curating a digital “passport” or story of your life and travels, and discovering and exploring new places and cities) with Foursquare’s design (a points-based system nominally about retaining “mayorship” of the places you frequent) and I think you get a very good contrast of two wildly alternate takes on “gamification.”

And Tim Gill of the Rethinking Childhood blog adds:

Agree. Say no to star charts! My friend the UK child psychologist and writer Jennie Lindon has written about where you end up when children are told “If I’m good, they will give me stickers.”

Chad Calease wonders:

could it create a “play backlash” where counterculture rebels against “gameful influence”? counterculture eventually bcomes culture

And, on the pro-gamification side, there is this recent talk from TEDxBrussels, where Gabe Zichermann makes the point that gamification, when done well, can be a really good thing.

John Conti thinks it boils down to something fairly simple:

All important points. For me, the distillation of all this is:

  • Adult Encouragement => Children feel loved
  • Children allowed to fail and then learn => Children feel confident
  • Children earn points for actions => Children learn how to be a player, in a system, a cog…

And Richard Bartle, speaking at a conference in Barcelona, thinks that it might not be very fun once everything is gamified (because the experiences are not being designed, just gamified):

The big thing about social games that they don’t like to tell you, is they’re not actually social. Games played on social network sites is what we mean by social games … These games are categorized more by the platform than that they are social themselves. The way they engage their players is not through interesting gameplay, it’s done through extrinsic rewards — basically bribes. … The difference is, social games rely on the extrinsic rewards so as to be compelling. People keep playing the game because it keeps giving them things — rewards. This has led to gamification. In the hands of designers, this has a great deal of potential, but unfortunately it’s not in the hands of designers, it’s in the hands of marketers.

Daniel Bigler (in a recent tweet):

Gamification backfires for Khan Academy. Interesting comment section, too.
…The creators of Khan Academy added badges to make it more interesting and motivating, not to make you ignore everything else and just aim for the badges. [full story]

In the Afterlife...

I was chatting with a friend about ghosts and ancestor worship recently, and put forth the notion that if a genetic mutation allowed you to exist (in some form) beyond the death of your body, and *if* you could influence the physical world in some way (however limited), then you might behave in a manner that had a positive benefit for your surviving family members.

Imagine that you are a ghost and you can stand watch over your family at night to wake them up (perhaps by disturbing their dreams?) when danger looms. The family has the uncanny sense that they were lucky that they woke up just in the nick of time, but in reality they are awake because of the direct beneficial efforts of you, their dead relative/ancestor. These minor acts of supernatural disturbance constitute a benefit for the surviving members of the family and they have a small advantage, genetically speaking, over the other members of their tribe who cannot come back as ghosts.

Then I happened upon this interesting description of an experiment that showed good evidence that the brain might be able to send information backwards in time to itself in order to shorten nerve response times:

All of which got me thinking that there could be a whole slew of cognitive-effect mutations that would be hard to detect or test for, but that might still be beneficial to the survival of a genetic line. Things like “luck” might be explained by extending the reach of the backwards transmission of information described in the video, and once you have a durable consciousness that outlasts the body, you can imagine that it might sometimes take up residence in another body (something we might call “possession” in the aggressive case, or reincarnation if it happens early enough).

Just as there are viral explanations for vampirism, it’s fun to come up with plausible explanations for psychic abilities. Although, being born a Kennedy aside, it does seem like we would have noticed by now, if some families or individuals really had a paranormal advantage.

Some of my speaking engagements have been captured on video and rather than keep digging up the links every time someone asks where to find them, I now keep this list updated.

TED 2007
Five Dangerous Things (you should let your children do)
Some thoughts on the dangers of over-protection and five (or six, depending on how you count) simple things that every child should be comfortable doing.

TED 2009
Life Lessons Through Tinkering
A taste of what Tinkering School is about.

Big Ideas Fest 2009
Experience First – a radical approach to curriculum development
I share the “secrets” of Tinkering School as I explore the core ideas and guiding principles.

TEDxAtlanta 2010
Re-imagining Education
In our approach to public education we should dare to do less and let children do more.

Maker Faire 2010
Natural History of Danger
Exploring the notion that our ideas about what is and isn’t dangerous might have very little to do with the inherent risks. This talk is also available as a comic book.