'Lazily queries and returns all the scores stored in the user
state (in CSM) for the course, while caching the result.'

@lazy
def _csm_scores(self):

    scorable_locations = [block_key for block_key in self.course_data.structure if possibly_scored(block_key)]
    return ScoresClient.create_for_locations(self.course_data.course_key, self.student.id, scorable_locations)
