I had an absolutely fantastic IT teacher, he really cared about technology and teaching and he was the best teacher I've ever had but he was very restricted by the curriculum. This was a teacher who enjoyed programming and could teach it, he could teach complex (relative to the classes intelligence level) computing things and teach it in a way we could understand, but the material he was forced to teach was awful, absolutely awful. For my entire last year of school my required work was (If I remember correctly (this is how awful it was, I do not remember it well today)) write an explanation / brief about a microsoft access database system, the extent of our freedom was to choose the subject (dvd store, grocery store etc) and this was an entire years worth of work.
What we need is two things, teachers who really care about teaching and providing a real education and a good curriculum that promotes learning not consumption (and subsequent regurgitation) of information. I left high school and in the last 4 years of it I really did not learn anything that is useful to me today, everything I need to know today is stuff I was taught early on, the last 4 years was being given information to consume, information that as soon as I left the classroom was absolutely worthless.
The IT teacher I had left the school after a year to teach in Switzerland, I think that's pretty telling. The system we have pushes good teachers away and the shitty ones who are just content reciting material stick around, I would also assume relevant to this point is a teacher I had of Spanish is still with the school, but he is such a bad teacher they re-assigned him after many years to "cooking". Someone the school deemed qualified and able enough to teach Spanish for many years is now using his full power to teach cooking?