Teaching computer programming to every child in school is the stuff of delusions. As it is, we can't even teach every kid how to use Microsoft Word. Not every child is smart, and it has nothing to do with their genetics (there is another massive Lounge post about that) but mostly with work ethic and motivation. Some kids aren't necessarily in a bad environmental situation, but turn themselves into stupid fools because of peers and what is viewed as the normal adult today (usually a false assumption). But, if you are to teach programming, I strongly believe you should teach it in a class using GCC on a Linux-based computer with X Window System disabled (no GUI whatsoever for anything, for all of you non-NIX-ers). That way you won't have a bunch of graduates from high school going into computer science expecting a drag-drop high level interface like in Alice or Scratch.
"Alice", yep, saw that one... in college... a class for using it was part of the required curriculum for a CS major.
general response of people being "how is this programming?...", and yet you still had people in class who can't figure out the whole "drag and drop to make 3D characters do stuff" thing...
indirectly though, it did have a minor influence on something I called the "sequenced event" system for my 3D engine, so much as events can happen sequentially or in parallel and operate with delay-timers (partly as it is a little more usable for various tasks than building stuff via the more traditional Quake style "trigger_whatever" and "target_whatever" systems, but these also exist...). and, also, the sequenced-event system at least has the dignity of being text-based and being able to execute globs of script-code as well...
although, yes, it probably was still kind of a waste to have a whole semester about it...
(I think I got bored and mostly just did other stuff...).
yet, all this was paired up with *actually difficult* classes, mostly stuff like math and similar (then getting repeatedly owned due to not really being very good at math...). (fun time with derivatives, conic sections, limits, integrals, and a good helping of set-notation as gravy to put on everything... and generally at the mid point of a semester being like "I have no idea what is going on at this point"...).