apluslms/mooc-grader

Make personalized exercise selection dependent on course instance

PasiSa opened this issue · 0 comments

In recent A+ versions personalized exercises are generated by teachers and all the generated alternatives are pushed into the course git repository, from where grader chooses one variant for each student. This choice is done based on user id, so that the same chosen exercise persists for the user throughout the course. If there are multiple course instances of the same course, for example for a spring course followed by a summer course, that are based on the same git repository, and if the same student participates first the spring course and then retakes the summer course they will get the same randomized assignment on both courses, because the selection is only based on user id. This is usually not desired -- one could also think about case where student retakes an A+ exam that they had participated at an earlier time.

I propose that the assignment selection logic should choose different assignments if same student participates different course instances. The selection happens in select_generated_exercise_instance. One way to fix this could be to initialize the random seed based on the course identifier. Then the selected assignment stays the same within a course instance, but different course instances will have different selections.