The myth of ability

“Historically, societies have always been divided by myths of difference: between peasants and nobility, slaves and slave owners, or minorities and majorities. Today, the most pervasive and enduring of those myths — the myth of ability — is being challenged.”

-John Mighton (The Myth of Ability)

There are no excuses for letting children fail

John Mighton writes in The Myth of Ability:

As far as I am aware, no program in mathematics was ever developed with the expectation that every child in the program would excel. To most educators, the idea of an entire class doing well in any subject seems absurd.

That was published in 2003, but today it is still widely assumed that the “curve” in test scores is a “natural” result of innate differences in human intelligence.

Through a tutoring program that he later extended to classroom teaching, Mighton showed that in fact every child could excel. And he found that such a result requires only two essential ingredients (which match my definition of profound: obvious only in retrospect). They are:

1. The teacher must actually believe that every student can excel.

2. The curriculum and teaching methods must be designed, tested, and refined in a way that treats any student’s failure to learn as being a failure of the curriculum and teaching methods.

This is entirely analogous to creating usable software. Instead of blaming problems on “user error,” you blame the software — and, critically, use that knowledge as an opportunity to improve the design. Creating great software is not easy, but it’s also not rocket science.

Mighton has experimented with various best practices in teaching, many of which have been well documented elsewhere in the psychology literature (and popular literature by authors such as the Heath brothers, Malcom Gladwell, Carol Dweck, Martin Seligman, etc.). For example, he neatly sums up the research on the importance of flow:

Nothing focuses the attention of children more sharply than the feeling that they are meeting a series of challenges and succeeding brilliantly.

But the crucial thing that John Mighton has shown is not in the particulars of his curriculum or philosophy. Rather, it is the simple, incontrovertible fact that he made every single student succeed in math — without requiring extra money or super-human energy or even teachers who previously knew anything about math.

It is an existence proof.

And it means that all of the excuses are bogus. “They can’t focus.” “They don’t care.” “There’s not enough time or money to get through to them.” Every student brought to him as “unteachable” was in fact taught to excel. And it was not even particularly difficult. It was certainly not rocket science.

But if we know how to teach in such a way that every child succeeds, why are we not doing it? Mighton says,

I believe the answer lies in the profound inertia of human thought: when an entire society believes something is impossible, it suppresses, by its very way of life, the evidence that would contradict that belief.

I think it’s harder than that, and a good analogy is racism or sexism. When injustice is ingrained — when “that’s the way it has always been” — elaborate excuses and rationales must be crafted to avoid the conclusion that well-meaning people are perpetuating discrimination (in this case, discrimination against the very students they purport to help). It’s a terrible conclusion to come to. To accept it means admitting that for decades we have been undermining the potential of millions of eager young students.

After seeing how children flourish with even a modest amount of attention, I have come to believe that when a child fails a test it should be regarded as a failure of our system of education. And when millions of children, year after year, fail tests they could easily pass, it should be regarded as the failure of an entire society to care for its young.

Supporting change implies acceptance of this terrible conclusion: that for generations we have been letting students fail, letting poverty persist, and letting the economy correspondingly sink — and that there is no excuse for it. How can we live with that guilt? Especially as a student or teacher in the system that is perpetuating the injustice — someone who has the power to make change?

I think that Dweck’s “growth mindset” is a good place to start. It helps us accept the truth as a learning opportunity to do better.

Because the fact is, we already know how to do better. And putting it off is only making the situation worse. As Matt Wilka and I concluded, “just do it!”

Know the history

I found out today that IBM Research was working on scenarios for computers in education as early as the 1960’s (when programming meant feeding stacks of punched cards into a machine the size of a building).

Automation vs. ownership

“Where once workers enjoyed their work but were unable to produce enough to give themselves leisure and material satisfactions, now they are gaining the leisure and material satisfactions while losing the enjoyment of work.”

-Melvin Kransberg & Joseph Gies, By the Sweat of Thy Brow (1975)

Being too clever

“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you are as clever as you can be when you write it, how will you ever debug it?”

-Brian Kernighan

Don’t reinvent the world

“Our job is not to reinvent the world; it’s to take stuff that we know exists already — but hardly anyone’s got it — and get it out to them.”

-Steve Jobs, 1997 [link]

It’s all about managing complexity

When I was working on a natural language processing system at Johns Hopkins during the summer of 2005, I remember having a minor epiphany: I realized that the strategy our research team was using was essentially just a way of converting an intractably complex problem into a series of computable smaller problems. It didn’t take me long to make the jump to realizing that this is an essential part of all science and engineering.

I was reminded of this when watching a Steve Jobs video recording from 1997 (via daringfireball). Steve is talking about why he thinks better developer tools and APIs are so important to progress (around 25 minutes into the video):

It’s all about managing complexity. It’s like scaffolding, right? You erect some scaffolding and if you keep going up and up and up, eventually the scaffolding collapses of its own weight. That’s what building software is. It’s how much scaffolding you can erect before the whole thing collapses of its own weight. It doesn’t matter how many people you have working on it — doesn’t matter if you’re Microsoft, with 500 people on a team — it will collapse under its own weight.… These [new developer tools] allow you to not have to worry about 90% of the stuff you worry about, so that you can erect your 5 stories of scaffolding, but starting at story number 23 instead of starting at story number 6. You can get a lot higher.

This is related to the fundamental notion of abstraction, and to “the mythical man-month” (which Steve also references). It’s a good reminder.

In a related section, Steve responds to a question asking about how visual programming tools might fit into this. His answer (around 42 minutes in):

Here’s the deal. The way you get programmer productivity is not by increasing the lines of code per programmer per day. That doesn’t work. The way you get programmer productivity is by eliminating lines of code you have to write. The line of code that’s fastest to write, that never breaks, that doesn’t need maintenance, is the line you never had to write! So the goal here is to eliminate 80% of the code that you have to write for your app. That’s the goal. So along the way, if we can provide vizi-this and vizi-that and visual this and visual that, well that’s fine, but the high-order bit is to eliminate 80% of the code. When you ‘draw the line’ in interface builder, you’re eliminating code of one form. But that only goes so far. Maybe we can go further. I’ve seen a lot of demos of things that try to take it all the way back into the algorithmic part of the codebase, and none of them have ever been any good. If there are any good ones out there, show them to me — I’d love to see them.

In other words, abstraction is far more important to productivity than whether a language is visual or textual. Making languages visual is only a win if it can help solve the “higher order” issues: bugs, maintenance, and complexity. Steve’s 1997 claim is that he has not seen compelling demos of this in the visual programming space.

I think this is crucially important to keep in mind when thinking about visual programming languages that could be generally adopted. They have to provide an advantage in terms of abstraction. It seems that so far the opposite has been true: abstraction has been the main weakness of visual programming systems.

Sugar

I finally finished reading the NYTimes article about the likely negative effects of eating too much sugar. People eat a crazy amount of sugar from an evolutionary perspective. The conclusion of the piece is that the science is still not conclusive, but the scientists say, “Sugar scares me.” There are likely links not just to diabetes but to many forms of cancer. And the story has the makings of a credible conspiracy because so many huge food industries would be devastated by sugar being labeled as a toxin.

Anyway. We’ll see what happens. In the meantime, I’ll aim for moderation, as usual.

Artificial intelligence will come gradually

It is worth remembering that artificial intelligence will not arrive suddenly and dramatically as it sometimes does in science fiction, but rather will happen gradually over time. It is unlikely that a computer program will on a specific day pass a Turing test as if it’s a black and white distinction; instead, programs will gradually pass the Turing test with an increasingly higher success rate.

It has long been noted that the trouble with being a researcher in artificial intelligence is that whenever a task becomes well understood enough to automate on a computer (such as playing chess or recognizing human faces), the task no longer seems so intelligent. This will continue to be the case as artificial intelligence progresses. For example, driving a car or taking a good photograph will no longer be judged to require cleverness or sentience.

After all, humans are just one data point along a spectrum of intelligence and intelligences. Computers will surpass our various capabilities at different times and with varying price tags. When artificial intelligence does arrive, it is likely that we will fully realize it only in retrospect, in history (e)books.