What isn’t remembering in context is invention

In his talk the Power of Simplicity, Alan Kay managed to express much more elegantly what I was trying to say in the last post:

  1. Most human learning is remembering in context
  2. Learning a new idea requires almost as much creativity as the original invention

In the Pythagorean example, we were asking students to remember Pythagorean theorem but the context was completely wrong. The context of two points on a grid is one that is totally unfamiliar to students hence there is nothing for them to remember (point #1).

The first act of applying geometric theorems to points on a grid was a legitimate invention by mathematicians — a blue escape from the pink world — and Alan Kay’s point with #2 is that for a student to rediscover it during an exam is a crazy standard.

An example from my own experience. I’m in my first month as an Android programmer so I’m in the process of learning a lot of new things. Last week I had some unexpected behavior in my program regarding a text edit field. Most of my effort involved looking at the values of certain variables at certain times. This was like better observing my context. My coworkers who have strong understanding of Android presented a few ideas that I could quickly eliminate. A coworker had the idea that there were two Views (a text edit field is a kind of View) with the same ID so my code was targeting another View. We actually rejected this idea for a while, but I used a tool called the View Hierarchy to find out that was true — another case of enriching my context.

The “missing” understanding behind my problem was that two views in a hierarchy have the same root. My coworkers certainly had this understanding but didn’t have the context to apply it immediately to a solution. This idea is really simple as an experienced programmer (hierarchies, better known as tree structures, are everywhere). But the difficulty came from lots of wondering around in the context to spot the issue. (Another insight from Kay from the same talk is that problem solving is a weak heuristic.) Finally we were able to target the point in the code that was finding the ID from the root of the hierarchy and fix it.

Top down understanding was useless here. There are way too many potential “tops”.

Does this apply to most tasks in life or is top down understanding useful if you’re in a field that is less pedantic than computer programming? I don’t know the answer to that. Maybe I don’t have the top down understanding to problem solve this one.

Note: I originally accidentally published this as a partial draft. Apologies for the confusion, especially for misquoting Alan Kay and not crediting him.

  • Dan Meyer

    “Top down understanding was useless here. There are way too many potential ‘tops’.”

    Am I missing a definition of “top down understanding”?

  • http://ryan.learnstream.org/ Ryan Muller

    I only have a vague one: top down understanding would be if one was able to start with “understanding of view hierarchies” in their head (“top level”/more abstract), think about the problem, and then ended up with a concrete set of code changes to make (“bottom level”/more concrete). I’m not sure that anyone actually thinks the world works this way, and there’s nothing extraordinary about the example — that’s how most of my work plays out — the experience just felt like what I was imagining for the geometry student.

    BTW I’m finally reading How People Learn which has great examples of how different levels of abstraction interact. The story is definitely more nuanced than “disregard high level understanding”.

    Thanks for the question!