Living Museum of Learning

Where real moments become exhibits
← Prev Next →
From 28/30 to “Delete Them? All of Them?”

From 28/30 to “Delete Them? All of Them?”

Two hours with Enning: rebuilding foundations, taking risks, and discovering abstraction

Today's class was two hours.

We started by deliberately going back to Grade 2 mathematics on Khan Academy.

Before Enning began, I told her:

“Try to get 29.”

She got 28/30.

Good.

Then we moved on to Grade 3, where she got around 26.

Again:

“We should get 29.”

She agreed.

One little problem became particularly memorable.

The question showed three cookies and asked her to represent:

8+8+8

Enning first wrote:

3×3×3

Wrong.

Then she tried:

8×8×8

Also wrong. 😂

I shouted:

“Three 8s!”

She immediately explained:

“I was thinking about 3 eights!”

Exactly.

She had the words.

She had the idea of “three eights.”

But she wasn't yet sufficiently sensitive to what the symbols themselves were saying.

I laughed:

“Then the problem is that you're not sensitive enough to expressions like 8×8×8, which is a huge number!”

And that little mistake told me something important.

We weren't simply fixing an arithmetic error.

We were teaching her to feel the difference between expressions.

8+8+8=24

but

8×8×8=512.

Those aren't remotely the same scale.

She needs to develop that mathematical instinct—the ability to look at an expression and immediately have some sense of what kind of number it is going to produce.

In the second hour, we returned to our Chinese chessboard project.

Enning had already manually drawn several stars.

Then we created:

function drawStar(col, row) {
...
}

I asked her to replace the last manually drawn star with one function call.

She did.

Then I said:

“Add another call.”

She typed:

drawStar(

And stopped.

She thought.

And thought.

For several minutes, she genuinely didn't understand why calling the same function again would be useful.

Finally she completed it.

She looked at the screen.

“One more star?”

😂

Only then did she realize what she had created.

Once the idea clicked, she moved quickly.

She added calls for all the missing stars.

Then:

“Done!”

I asked:

“Done? Is there anything not perfect?”

She didn't see it.

So I circled the huge block of old code that had manually drawn the original three stars.

She looked at it.

“Delete them? All of them? So much code.”

I said nothing.

She deleted them.

And the three stars disappeared.

😂

Now she could see exactly what that old code had been doing.

But she also knew how to bring them back:

drawStar(...);
drawStar(...);
drawStar(...);

Three short lines.

The large block of repetitive geometry was gone.

Today's lesson wasn't simply “how to write a function.”

Enning experienced something much more important.

First, she experienced repetition.

Then she noticed that the repeated thing had the same structure but a different location.

Then we gave that structure a name:

drawStar()

Then she discovered that the function could be called repeatedly.

And finally, she discovered that once the abstraction existed, the old repetitive implementation could be deleted.

She didn't just learn that abstraction saves code.

She experienced why programmers create abstractions in the first place:

to turn repeated work into an idea.

And the contrast with the first hour matters.

The same student who is rebuilding elementary arithmetic foundations is also capable of discovering a genuinely important programming concept.

A score of 28/30—or 26/30—is only one measurement.

It doesn't tell the whole story.

Neither does a difficult coin-identification question.

Neither does a programming exercise.

Today's two hours reminded me that learning is not a straight line from “weak” to “strong.”

It is a collection of moments:

guessing → getting it right → laughing → trying again → noticing repetition → naming a pattern → deleting old code → rebuilding it more elegantly.

A student rebuilding basic mathematical foundations can simultaneously begin discovering sophisticated ideas in programming.

Give her achievable challenges, let her make guesses, let her struggle briefly, and let the abstraction emerge from work she has already done.

Because a student's current score tells us where to teach from—not how far she can ultimately go.