Leo Crosses the Bridge
Situation
Ten days before Leo's first class, his dad told me something about his son:
“Leo 比较内向[Blush]
在家跟我说的话也不太的多”
“Hongyuan is relatively introverted.
He doesn't talk much with me at home.”
My reply was very simple:
“我没觉得 [Chuckle]”
“I didn't feel that way.”
At the time, I had only known Leo through a few conversations with his dad. I didn't really have enough evidence to say much about him.
Then came the first class.
The Slack communication bridge had finally been established at 10:31. We didn't wait for the desktop app to finish downloading. We simply opened Slack in the browser and started.
For the first fifteen minutes, there were no usual short-lived marks on the shared screen. Normally I use those little marks constantly when working with learners.
It didn't matter.
Communication friction was essentially zero.
Leo almost continued my sentences.
And then we started playing with an old friend: an A4 sheet of paper.
Turning Point
I had recently introduced Cloud to the same problem.
Take an A4 sheet, cut a square of side s from each corner, and fold up the four sides. What is the volume of the resulting open box?
Leo drew the paper.
Then he looked up the dimensions:
210 x 297
And without hesitation, he wrote the volume:
v = s*(w-2s)*(h-2s)
I said:
“It’s fine here without it. But we do need it in code.”
Then I asked:
“Let's let s = 10 and calculate a value for the volume. Do you have a calculator on your computer?”
Leo opened a black Windows calculator.
I had never seen that calculator before. 😂
He got the answer. It was correct.
Then came the more interesting question:
“Does the volume become larger when we cut bigger and bigger squares?”
Leo paused for perhaps one or two seconds.
“Not necessary.”
“Do you mean there might be a maximum somewhere?”
“Yes.”
There it was.
Before derivatives.
Before graphs.
Before Python.
Leo had already noticed that this was not simply a matter of “bigger s, bigger volume.”
Emergence
So I asked him to try some arbitrary values of s, just to get a feeling for what the volume was doing.
Then Slack finished downloading.
We reconnected.
The desktop app was finally set up.
Since we were already there, I asked:
“Do you have Python installed?”
“No.”
“Let's install it.”
His dad, an experienced programmer himself, helped a little. Python was soon ready.
Of course, Leo remembered almost zero Python syntax. 😂
But Python is Python.
One of our best friends.
I told him:
“You can simply copy those math expressions you wrote on the whiteboard. Then they ARE the code. You can simply print v to compare the output with that of your calculator.”
We weren't starting a Python lesson.
We were taking the mathematics he had already written and giving it a new life.
The first little detour was hello_turtle.py.
“Did you see this before?”
“Yes.”
“When?”
“In my primary school.”
😂
Grade 9, and turtle graphics had already visited him years ago.
Then I asked:
“Given three functions—forward, left and right—you can make a rectangle, right?”
One shot.
Rectangle.
No drama.
Then we went back to the box.
Leo understood the idea of a for loop without needing to remember every piece of syntax. Soon he had:
w=297
h=210
s=10
for i in range(0,100):
s = i+10
v=s*(w-2*s)*(h-2*s)
print(v)
There were a few missing * signs when he first translated the mathematics into Python.
That was fine.
The important thing was that he understood what the machine was supposed to do.
And then something changed.
Leo became busy watching the output.
Not memorizing syntax.
Not waiting for me to tell him the answer.
Checking the numbers. Looking for the trend.
I knew what he needed next.
“You can print out s too. Add it in front of v with a comma.”
Now the experiment could tell him not only the volume, but which s produced it.
Then I asked:
“Where is the maximum?”
He looked.
“39.”
A moment later:
“Oh, 40.”
😂
Found it.
Learning
The first class had very little to do with “learning Python.”
Leo already had the important part.
He could look at a physical object and identify its dimensions.
He could turn the geometry into variables.
He could construct a volume formula.
He could question the behavior of that formula.
He could imagine that a maximum might exist.
He could turn the formula into a computational experiment.
He could use a loop to explore many possibilities.
He could inspect the results and find the maximum.
The computer had changed roles.
At first, it was simply a calculator he had to operate.
Then, with a few lines of Python, it became his programmable calculator.
And there was another change that I didn't expect.
For the first time, this kid living in inland China shared his turtle rectangle with me.
He shared his code.
He shared something connected to calculus.
He showed me what he had already seen years ago.
Ten days earlier, his dad had described him as a boy who didn't talk much.
During this class, I didn't feel that at all.
Maybe the question was never whether Leo had a lot to say.
Maybe the question was what happens when someone opens a door he actually wants to walk through.
Theme
Thinking Before Knowledge
A learner does not need to remember every programming keyword before he can think computationally.
Sometimes the better sequence is much simpler:
paper → dimensions → variables → formula → experiment → pattern → maximum
The syntax can come later.
The thinking has already started.
What Is Possible
A ninth-grader who remembers almost none of Python syntax can turn a mathematical expression into a working computational experiment.
How Does It Happen
Start with a real question, let the learner build the mathematics, then let the computer amplify the experiment.
Why Does It Matter
Because learning does not have to begin with knowledge. Sometimes it begins with curiosity, a question, and enough freedom to find something out.