The impression I got from that article was a concerned teacher, wondering if this gap was normal, and how he can increase his teaching prowess to help the students better. Basically the guy was looking to do better at his job.
As for how smart you are: wow thats great -- have a cookie for having interest and aptitude above and beyond other students who may also have that interest and aptitude, but did not discover that fact on their own.
Don't get me wrong, I'm not trying to elevate myself or be self promotional. I'm by far not one of the smartest programmers. I'm a good programmer, I "get" programming but I'm far from even thinking about trying to teach others how to program. I'm simply identifying two typical sides of student population for programming. From my own experience there were two very apparent groups of students. Aptitude wise, there were those that were cut out for it and those that aren't. I was in the group of students who was [and I'm not even insinuating I'm at the top of that group] and it was in common agreement that the pacing of the courses was inappropriate for either group. It was too slow for us, and too fast for them. It's just not possible to strike that balance. The first year or two of college programming classes is really for weeding out the batch of people that aren't cut out for programming. The people that make it through this selection have yet to really enter into serious programming topics. My point for stating this, is to make it clear that Jr or Sr level students aren't seasoned, they are simply the selection of students are are capable and ready to be turned into good programmers. They are still seedlings though, and can't be expected to compete against some one at a professional level.
Perhaps my wording was a little to aggressive in my comment, I wasn't trying to attack the professor, I was only trying to make it a clear point that being comparative between a seasoned professor and naive programmer is well, absurd.
To determine the people "cut out" or "not cut out" for something, based on a single class or two ignores a host of problems which have nothing to do with aptitude nor interest in the material. The way it is taught, the teacher, the fellow students, all contribute to success in an academic endeavor.
Further, some people struggle with subjects for a long time, then one day "get it" and surpass those who were obviously in the good group all through studies. Some people thrive under one teaching methodology and curriculum and others thrive under different conditions.
Basically the thing you describe only selects the subset of people who represent the intersection of the sets (people with an aptitude for proramming) (people who thrive under this curriculum) (people who get it quicly/incrementally). There could be plenty of other people in the (people with and aptitude for programming) set.
Another vaguely related bit of thinking: A lot of the best programmers I know come out of non-cs curriculums like math, music, geography, philosophy and so on.
As for how smart you are: wow thats great -- have a cookie for having interest and aptitude above and beyond other students who may also have that interest and aptitude, but did not discover that fact on their own.