unionInclude.plthat implements what I think you are looking for. If you create a PG file containing
DOCUMENT(); loadMacros("unionInclude.pl"); includeRandomProblem( "file1.pg", "file2.pg", ... "filen.pg", ); ENDDOCUMENT();and then create a problem set that contains one or more instances of this file. Each copy of the file will include a different random problem from the list of files given, and each student will see the problems in a different order.
Some time ago I put together some macros for allowing a single problem to load several different problem files (at the student's request), so that a single problem could be used for practice more practice problems of the same type until the student was satisfied. This is slightly different from what you are talking about, but might be useful anyway. You can see the discussion at
(near the end of a string of comments on this -- search for Davide -- [ed.])
and a link to the macro files is
Hope that helps.
(Edited by Michael Gage - original submission Friday, 2 February 2007, 10:20 PM)
For versioned problem sets only (that is, for Gateway/Quiz assignments), it's also possible to select from a group of problems by giving for the problem source file the expression
setnameis the name of a problem set that lists all of the problems from which to select. It need not (arguably, should not) be assigned to anyone, as it serves just as a container for the group of problems that are being selected.