'Standard grading for checkbox problems.
100% credit if all choices are correct; 0% otherwise
Arguments: student_answer, which is the items the student actually chose'

def grade_without_partial_credit(self, **kwargs):

    student_answer = kwargs['student_answer']
    required_selected = (len((self.correct_choices - student_answer)) == 0)
    no_extra_selected = (len((student_answer - self.correct_choices)) == 0)
    correct = (required_selected & no_extra_selected)
    if correct:
        return CorrectMap(self.answer_id, 'correct')
    else:
        return CorrectMap(self.answer_id, 'incorrect')
