This sounds quite a bit like the problem of giving versions of problem
sets to users, which is something the GatewayQuiz module that I've been
working on for a while has had to deal with. In this case, we're giving
a student a problem set which s/he may work on through some specified
number of submissions, after which s/he gets a new version of the set.
For the gateways we use the number of submissions is one, but the idea
should be more flexible than that.
The way the GatewayQuiz module deals with this is by defining an
'assignment_type' field in the set table (and user set table) of the
database, and using this to determine if the set is a versioned or
normal set. If it's versioned, the module checks if a new version
should be created, and then builds one. The result is that a user is
assigned the 'template set', say, "GatewayQuiz 1", and then as s/he
takes the test multiple times gets new versions assigned to her/him:
"GatewayQuiz 1,v1", "GatewayQuiz 1,v2", etc. The original template set
("GatewayQuiz 1") isn't ever completed by the student.
The result of this process is that we store successive sets, each of
which will have a different set of problems or problems with different
Obviously, the biggest difference is that this is talking about giving
different versions of a set, while you were talking about giving
different versions of a problem, but I think the ideas aren't too far
distant from each other.
(I should add that the GatewayQuiz module is generally functional,
residing in the HEAD version of WeBWorK in the CVS, and we're going to
be testing it heavily this semester.)
<| Post or View Comments |>