Description
Distinguish between "practice context" which is the collection of parameters needed for practice (e.g. including last attempt time, current time etc.) and representation of model parameters. Probably limit to floats? (this would simplify things greatly - and the above division should allow to factor out dates).
Parameters identification (keys): several possibilities, e.g. triple name+studen_id+task_id (or id instead of key? or just one string?). DB tables - if there is need for more of them, these classes should make this transparent so that rest of the application does not need to care at all about the DB model of parameters (and practice context). Maybe there is need to consider problem of race condition when two students update the same task at the same time.
Possible inspiration by Environment class at Slepé mapy.