What does the 10 year old want to program? Most likely a game, which is challenging but which fortunately may be satisfied by a working snake or Space Invaders rather than requiring stereoscopic 3d with a physics engine. But a simple interactive graphing calculator can be just as much fun as a game. Tools and diagnostics are good too - instead of teaching arbitrary-seeming practices for problems the kid has not encountered yet, let them run into the problem (eg having to check the dimensions of the window on loading) and write a tool to make the computer do the work.
As a kid, I found the logic relatively easy, and the control structures moderately easy. Abstraction and complex types were the difficult part for me, and I still tend to evolve them by trial and error rather than defining them in advance (though having done so, I usually enjoy refactoring as soon as I have a working prototype).
As a kid, I found the logic relatively easy, and the control structures moderately easy. Abstraction and complex types were the difficult part for me, and I still tend to evolve them by trial and error rather than defining them in advance (though having done so, I usually enjoy refactoring as soon as I have a working prototype).