This shouldn't be summed.  It's the highest score that matters, not the total (each score is the score the student got on one attempt of the task, so summing them together just aggregates multiple attempts).  

So something like:

last_child = task_states[-1]
max_score = 0
if last_chlid['child_history'] and len(last_child['child_history']) > 0:
    max_score = max([last_child['child_history'][i].get('score', 0) for i in xrange(len(last_child['child_history']))])