I teach a section of AP Computer Science, so I'm getting a kick out of these replies...
To people who don't have any programming experience coming in to the course, the class is a real bear. One of the big issues from the early days of the exam was the push-and-pull between high school instructors and college professors over just what an AP computer science student should proficiently be able to do.
The professors won, and began to dominate the content choices of the course and the exam. Of course, they were full of shit when they did so, and found that people who passed the course weren't usually well prepared for additional CS courses unless they had additional experience outside of APCS. This means that APCS wasn't the predictor it should have been. So there's been all kinds of fun content changes over the years. (I'm not talking about the language change from Pascal to C++ to Java; the material on the exam will be changing about 20% for just the coming year, for example, and I'm making sure I'm at an AP seminar this summer so I can properly prepare.)
As trite as it sounds, part of the challenge is funding. In Texas, where I teach, AP Computer Science is funded with the usual tax dollars, where "business programming", which is too often VB-oriented, is funded at a higher level, making it a more attractive course if you're going to teach programming. Districts and high schools are financially disincentivized from offering this course, and lesser resources are generally available.
Want to teach Microsoft Office? Here, have a brand new lab. Then have a new one three years later. Want APCS? We're sure we can scrounge up something for you. And then they wonder why no one teaches AP Computer Science. Don't get me wrong; I actually think there's a lot of value to be gained out of a properly taught Office course with proper content. But the imbalance is too great.
About 5 years ago, I was asked to go to a meeting of all of the AP teachers of the East region of Houston ISD, in order the share information and resources. (This was back when they grouped schools by geographic regions.) I really didn't want to go, but our counselor convinced me that it was important. So many if not most of the AP teachers are sitting there on gym bleachers. And we're told to meet our cohorts and talk amongst ourselves. And all of these signs go up for the different courses -- US History, Spanish, etc. And I'm sitting there at Computer Science. Then I look to my left, look to my right. And I realized that I'm the only one.
And that's what it's like to be an AP Computer Science teacher.