Procedure for estimating your CS 3 course grade

The CS 3 "General Information" document contained information about the relative contribution of quizzes, homework, projects, and exams toward your course grade, along with the correspondence between total course points and grade in CS 3. However, it was rather vague about how the points for homework and quizzes would be computed. Here are more details.

Here is a Scheme procedure that implements this computation. It estimates your final project score by the sum of your scores on the miniprojects, and estimates your final exam score by the sum of your scores on the midterm exams.

    (define (total-course-pts midterms miniprojects homework quizzes)
      (cond
        ((< (count midterms) 2) 
         (error "You should supply scores for both your midterms.") )
        ((> (count midterms) 2) 
         (error "You supplied too many midterm scores!") )
        ((< (count miniprojects) 3)
         (error "You should guess at your missing miniproject scores.") )
        ((> (count miniprojects) 3)
         (error "You supplied too many miniproject scores!") )
        ((< (count homework) 19)
         (error "You should guess at your missing homework scores.") )
        ((> (count homework) 19)
         (error "You supplied too many homework scores!") )
        ((< (count quizzes) 19)
         (error "You should guess at your missing quiz scores.") )
        ((> (count quizzes) 19)
         (error "You supplied too many quiz scores!") )
        (else
          (let
            ((midterm-pts (apply + midterms))
             (miniproj-pts (* 24 (/ (apply + miniprojects) 60)))
             (hw-pts (* 24 (/ (min 141.3 (apply + homework)) 141.3)))
             (quiz-pts (* 16 (/ (min 171 (apply + quizzes)) 171))))
            (show "Estimate of CS 3 course points (max = 200)")
            (+ 
              midterm-pts    ; estimate of final exam
              midterm-pts    ; actual points from midterms
              miniproj-pts   ; estimate of final project
              miniproj-pts   ; actual points from miniprojects
              hw-pts
              quiz-pts) ) ) ) )

A sample call for a student that neglected to contribute to a few of the homework discussions and did badly on alternate quizzes and pretty well in everything else is

    (total-course-pts 
      '(22 24)     ; just above average on the exams
      '(20 15 20)  ; good miniproject scores (guess that miniproject 3 will be perfect)
      '(10 7 15 0 10 10 4 3 13 11 10 0 3 16 6 3 10 3 8)
      '(5 10 5 10 5 10 5 10 5 10 5 10 5 10 5 10 5 10 5))

This student's estimate comes out to around 173 course points (which would earn her or him an A).

Once you get the course point total, you can match it up with the table in the "General Information" document to find the corresponding course grade:

points 185-200 165-185 155-165 145-155 135-145 125-135
grade A+ A A– B+ B B–
points 115-125 105-115 95-105 75-97 <75
grade C+ C C– D F