Comment Start simple and young, slowly build up from there (Score 1) 313
I'd say the best approach is to just take your time. Most first world kids are in school for at least a decade, which is plenty of time to cover the fundamentals without overwhelming anyone who just doesn't grok it before they reach a point where they can opt out altogether in secondary school. So, small steps starting when they are young. Kids love to play with stuff, so start them off with programmable toys once they have the basics of the Three Rs down. At the outset this should be more fun than programming; driving Turtles with LOGO and building robots that do stuff with LEGO Mindstorms, for instance. When they get to 8 or 9, move on to stuff like the Raspberry Pi and introduce the concepts of programming structure, flow control, compiling and other staples. Follow that up with a couple years of "proper" high level programming of simple Apps (kids love Apps too, so let them develop some). Anyone who isn't hooked by now probably isn't ever going to be, which is fine, because by now the kids are at the point where they are choosing which subjects they are actually going to continue to study and sit final exams in anyway.
That just leaves the biggest problem of all... Finding enough (any?) qualified teachers who are both willing and capable of actually delivering the tutition.
That just leaves the biggest problem of all... Finding enough (any?) qualified teachers who are both willing and capable of actually delivering the tutition.