Apparently, the distribution of marks in introductory courses to programming looks like this:

How come? Some people just get it and some don’t? A failure of teaching?

See the discussion at Mik’s blog.

I don’t necessarily agree that this is caused by people falling behind and not being able to catch up (although that is probably also a problem).  If that was the case, you would probably see a skewed single peak distribution, as one of the commenters suggest.

Rather, I think the either/or explanation is the right. Now does that mean people in the left hump will never be able to learn, or are doomed to a life of poor understanding of programming? I think not, but how to move them to the ‘get it’ group is another matter..

5 thoughts on “The double hump of programming classes

  1. admin says:

    Thanks! I’m not sure I agree that the summary is better, but I didn’t see “The Camel has Two Humps” paper before now, even if Mik linked it. Although the conclusions seem controversial, the initial literature review is very excellent!


  2. eogas says:

    OOP is normally the main focus of these intro classes, and I’ve always experienced it as something that some people understand naturally whereas others, for one reason or another, just can’t seem to grasp the concept. And I think the ‘weeding out’ theory is absolutely correct. These intro classes are designed to reward those who understand the basic principles of programming and get rid of those who don’t. I actually didn’t take the intro CS course at my University (I tested out, wink, sparkle sparkle), but I have heard only that it is really hard and that it is really easy. The people who said it was hard were from non-CS majors or really shouldn’t have been in CS. The people who were actually interested in the topic, the people who program for a hobby, thought it was the easiest class ever.

  3. Do you have any evidence that OOP is to blame? In my experience, having taught objects early, late, and not at all, beginning students tend to fall behind in the same place: loops. Simple linear traversals are ok, but once you go beyond the point where the standard loops can be tweaked, a good percentage of the class has a very hard time. And that complaint is reiterated by instructors in the more advanced courses (“What do you guys do in CS1? The students that come into my class still can’t program loops!”) and even in job interviews (Google for FizzBuzz for some amusing blogs).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.