I’m currently in “High School” here in Germany (or better: “Gymnasium”, as we call it here) and I’ll write my final written examination in 7 weeks.
In Germany (or at least in Baden-Wüttemberg, the Southwest part of Germany ^^) we all have the opportunity to choose courses for our 11th and 12th year. One of them is “Informatik”, basically computer science, but a little more practically oriented. So I’ve had almost 2 years of 4 times 45 minute lessons a week now. First we learned HTML + PHP, including arrays, iteration, control flow and all that stuff + a little recursion. Then moved on to Java, learning Classes, little bit of OOP, recursion, Linked Lists, Sorting algorithms and currently stuff like sorted, balanced binary trees.
As of now I’m not allowed to do parts of my Abitur in Informatik. That’ll change from next year on, though (I’ll be gone then :/).
I agree to KevinWorkman. Programming should be taught to everyone. Or better: Some kind of logic thinking. Currently learning to program means learning how to use computers comprehensively, that is, learning how to use the command line (we had a little bit of this when learning Java), learning about how the internet works (HTML + PHP). Basically our computer course included a lot of specification learning, less of the “essence programming - the thinking about processes” stuff. It is also bound to current technology, or better - the technology that was “current” when they wrote the curriculum. Programming technology changes fast. It’s not like in maths, where everyone seems to have agreed to some basic concepts and syntax (Sets, Basic number operations, functions, etc.). I, for example, would have liked to learn a lot more functional language stuff in school, instead of Java, since I know functional languages will take over the world, it’s just a matter of time evil-laughter. Honestly, though, it’s not really practical to stick with one technology.
Also, I believe in the future (if programming is going to be taught to a lot of people), programming will appear much more in our daily lifes: It already started with people using Excel in their dayjobs (See Reply #38). They program macros for making their life easier. I think that is going to appear in much more applications in the future. Or at least it should. Because it could make so many things easier! 
About the “the great programmers and the rest” debate: Something like that seems to exist in everything that can be done as a hobby at home. For example Art: I know of some students in an art course at our school, who are significantly more skilled than the rest of the students. It’s not as extreme as in our computer science course, to be honest, but it’s noticable.