let give_mark_to_student (login:string) (padd:paddress) (grade:float) = 
  let stu = find_student !student_list login in 
  let tim = (try 
               H.get_assoc stu.teams padd 
             with _ -> make_steam ~proj:padd ~r:Prog ()) in 
    if ((grade < 0.) && (tim.n < 0)) then
      H.remove_assoc stu.teams padd
    else begin
      debug (Printf.sprintf "Grade   : %.1f to student %s (g.%d) in project '%s'"  
               grade login stu.group (pa_to_string padd));
      H.update_assoc stu.teams padd (update_grade tim grade);
    end