Why does taking a programming class in a language you already know suck so much? Allow me to explain with a short narrative:

Mr. X begins to lecture about variables and constants, a hopelessly minute and thoroughly understood topic for an individual such as myself who already codes in the language he is teaching. As I begin to snooze through his soporism, I miss his discussion about the differences between constants and variables, assignment to variables, the various types of variables, etc. Not a problem. I know this, after all.

Some time later, I am awakened and we promptly turn to our computers to begin work on the exercises that Mr. X has assigned for the day. No problem: "Write a program that demonstrates the difference between a constant and a variable." I write out the code in about 3 seconds. Next task: "Write a program that accepts a radius as input, stores it in a variable, and computes the circumference of the circle". Easy. Done in 3.2 seconds.

I go home thinking that all is well as good in AP Computer Science. But what do I find the next day? I lost half credit on both exercises. Why? I forget to print out my name before the rest of the output of the code and because I did not use a constant to represent pi in my circumference program! Sure, I did not exactly follow instructions (of course, I was asleep during the lecture), I can understand that. But half credit?! It's like I forgot to write a return statement if I was workin with recursion.

As for you, Mr. X. You are the most ignorant programming teacher I have ever known! I have never heard so many incorrect statements come out of a teacher's mouth about their subject. C can't do as much as C++ is capable of because it's not object-oriented? So how does a proccesor's function-oriented instruction set even cope with objects? Your problem is that your don't understand the low level aspects of the computer, or even your own beloved C++ objects for that matter. Take some time to learn the language. Generic teaching skills will not get you through.