Final information

The CSCI 160 final will be in two parts: The programming part, and the written part. The two parts together are worth 185 points. (This is 35 points more than written in the syllabus, to make up for the fact that the originally-scheduled final lab will not occur. You will attend the programming portion during that time instead.)

Programming part

The programming part should be worth 100 points. This will occur at your last laboratory period. I will administer four versions of this exam, one for each laboratory section.

Extensive information about this portion of the final will be posted later. (Including a programming portion is a new feature for 160 that the department is introducing this semester, and we're still ironing out the details as a department.)

Written part

The written part should be worth 85 points, during the regularly scheduled for the classroom session you regularly attend. For the classroom session that meets at 8:00am during the semester, this will be 8am-10am, Thursday, May 9. For the classroom session that meets at 9:40am during the semester, this will be 11am-1pm, Thursday, May 9.

  • The test is a standardized test of 20 multiple-choice questions. It will require 45 minutes. The questions come from the AP folks, who want to test their questions on a college audience. They are well-written questions written by teams of experts (as opposed to our regular questions, which are written by only one expert).

    I have reviewed the questions on this portion, and they are all possible to complete based on the material we have covered this semester. However, many are tricky in ways for which you have not been prepared.

    Therefore, so that your score won't be thrown off by this test, I will curve your score generously. I anticipate using the following method. The parameter correct is the number of the 20 questions you complete correctly, and the parameter quartile is the number of questions scored correctly at the 75th percentile within the class.

    public static double getScore(int correct, int quartile) {
        int curve = Math.max(0, 18 - quartile);
        if(correct + curve > 20) {
            return 85.0;
        } else {
            return 4.25 * (correct + curve);
        }
    }
    
    The effect of this would be to ensure that the upper 25% of the class scores at least 76.5 points (90%) on the test, but that nobody scores more than 85 points. (I reserve the right to change this technique, particularly if I feel that people weren't trying as hard as they ought, but also if I'm just not happy about how the score distribution.)