let student_corrected_mean (s:student) = 
  let all_teams  = H.assoc_to_list s.teams in 
  let all_grades = List.map (fun t -> student_grade s (t.proj)) all_teams in
  let all_coeffs = List.map (fun t -> t.c) all_teams in
  let sum_grades = List.fold_left2 (fun x a b -> x +. a*.b)
                     0. all_grades all_coeffs in 
  let sum_coeffs = float (List.fold_left (fun u v -> if (v>0.) then u+1 else u) 
                            0 all_grades) in  
    sum_grades /. sum_coeffs