One solution would be to give them an 8-bit emulator so they can the basics such as direct memory mapped I/O (graphics, keyboard, sound), dont have to worry about breaking anything, can learn the fundamentals of hex, of pointers, etc.
From experience with kids, that won't help. When I started learning to code at age 7 on a z80-based computer they were few and far between. Everything was new, and new techniques were being developed all the time. The reason I wanted to code all sorts of algorithms and programs was because there was nothing like them available to me - I enjoyed problem solving because the solution enabled me to achieve a particular goal.
Now there are no goals left of that sort of simplicity - you have to tell the kids that yes, this is important and yes you need to learn it before you can code your own FPS or spreadsheet or whatever, but the software is already out there to scratch that sort of itch. So now you have the majority of kids not wanting to bother with programming because they don't need to. An 8-bit emulator is restricted in terms of both speed, graphical ability and storage whereas they know that the larger PCs are not restricted in those ways and so won't enjoy learning to code on an 8bit emulator.
And a kid that isn't enjoying him or herself won't learn very well at all. That said, I've seen plenty of adults learn to code on an emulator but they learn differently.