This article has some decent insights about the topic. It's a little long, but worth reading. Why would-be engineers end up as English majors - CNN.com My own opinion, having been through this meat grinder, is that the biggest culprit is assigning grades for an entire class to a bell curve. Curves are simply a bullshit way of covering the professor's butt when the administration comes around every once in a while to ask how many students are getting As, Bs, etc. Any competent professor should know how to design tests to find out how well a student has mastered the material. If everyone in the class fully masters the material, everyone should get an A. This should be the goal, not something to avoid. Of course, if no one deserves better than a C or D, it's a sign that the quality of the teaching sucks. So kids, when you sign up for classes, just say no to the curve.