Programming
Decomposition + the function machine
Programming is the five questions running at machine speed: What pattern exists (this loop is that loop)? What assumptions changed (the bug is always a broken assumption)? Can this generalize (that's what a function is)? Teach kids to break problems into pieces small enough to be obvious — the identical skill as splitting 13×7 along the tens. Debugging is the error autopsy with a compiler for a lab partner.
Tonight: Scratch for youngers, Python for olders — and narrate your own debugging out loud: 'my assumption broke; let's find where.'