'Returns a CorrectMap for the student answer, which may include
partially correct answers.'

def get_score(self, student_answers):

    student_answer = student_answers[self.answer_id]
    student_option = self._get_submitted_option_id(student_answer)
    scoring = self.scoring_map[self.answer_id]
    is_valid = ((student_option is not None) and (student_option in scoring.keys()))
    (correctness, points) = ('incorrect', None)
    if is_valid:
        correctness = scoring[student_option]['correctness']
        points = scoring[student_option]['points']
    return CorrectMap(self.answer_id, correctness=correctness, npoints=points)
