From: P. G. L. <gl...@um...> - 2006-05-15 15:22:29
|
Hi all, This is a question about adding problems to a set from a group of problems, which is done for gateway tests. This is (only) implemented for versioned sets (that is, gateway tests). The idea is that one can define a problem set (gateway test) for which each problem on the set is drawn from a group of possible problems. (For example, on a derivative gateway test we might want one "derivatives of trig functions" problem, one "derivatives of exponentials", etc.) This is done in the following manner. - a set, say, settopic1.def, is created that lists all of the problems in the group. then - in the set definition for the set including a problem from the group declares the problem source to be "group:topic1" - this source file name is caught by the subroutine Instructor::assignProblemToUserSetVersion when a new version of the set is being created for the user, and the problem that is actually added to the user's set is randomly selected from the list of problems in the topic1 set. I'm now thinking about how to include more than one problem from a problem group. I think the logical way to do this is to refine the way problems are selected from the group to include an indication of the number of problems to be selected from the group. That is, instead of having the set declare a problem "group:topic1", have the declaration be "group:topic1:N", where N is the number of problems to include. Then when a new version of the set is created and assignProblemToUserSetVersion is called, it would actually add N problems to the user's set version. An argument against this might be that it's aesthetically displeasing: the set is being created with Instructor:assignSetVersionToUser, which (currently) makes one call to assignProblemToUserSetVersion for every problem to be added to the set. What I've suggested above would push some of the "set construction" down into the problem assignment (because assignProblemToUserSetVersion could now be doing multiple assignments per "problem"), which seems logically incorrect. The other option would be to allow multiple problems to be assigned from the group, and to have some check built into assignProblemToUserSetVersion that it's not assigning the same problem that's already been assigned. But that would be rather more difficult to implement. Any comments? Thanks, Gavin -- P. Gavin LaRose / Instructional Tech., The tough problem is not in iden- Math Dept., University of Michigan tifying winners; it is in making gl...@um... winners of ordinary people. That, 734.764.6454 after all, is the overwhelming http://www.math.lsa.umich.edu/~glarose/ purpose of education. -K.P.Cross |