rewrite calc_GPA