One of the requirements that has been introduced into the lower division courses is the ``C-minus Rule.'' The C-minus Rule states that all students must attain a C- or better in both the Lab (programming) and Lecture (theory) components of the introductory sequence in order to earn the C- required to advance. If one component or the other does not meet this requirement, then no grade better than a D+ shall be awarded to the student, even if numerically it would result in a higher grade.
This is a very necessary rule. In many ways it makes more sense for the introductory courses to be taught with separate lecture and lab grades, however the administrative overhead of such a change outweighs the benefit. Without actually breaking up the courses, this is the only way to ensure students are understanding the material presented in class (Lecture) and are proficient in their primary CS skill: programming (Lab).
However, this rule does have one unexpected side-effect: strongly
bimodal distribution of grades, especially if the average is anywhere
near the C range. This is logical: if a student is failing one
portion, but not the other, it is more likely that the student is a C
student anyway (during the summer course, there was one student who
briefly was earning a B overall but had a D in lab and thus was
dropped to a D+. All other students affected by this rule, through
the session, had a C overall), now moving to a D. During the summer
session, where lecture grades were generally high, as many as
of the C students were being dropped to a D grade as a
result of their lack of programming points. If you take any normally
distributed set of grades A-F, and move half of the C's to D's, you
get a bimodal distribution. The bi-modality that was noted in
mid-course grades is, to a large extent, the result of the C-minus
Rule.
Things that need to be kept in mind when dealing with the C-minus rule: