Forum archive 2000-2006

Boyd Duffee - Generating many related problems

Boyd Duffee - Generating many related problems

by Arnold Pizer -
Number of replies: 0
inactiveTopicGenerating many related problems topic started 11/10/2004; 8:49:35 AM
last post 11/15/2004; 9:10:14 AM
userBoyd Duffee - Generating many related problems  blueArrow
11/10/2004; 8:49:35 AM (reads: 1059, responses: 4)
I have a user who is trying to ascertain whether a "Variations on a Theme" type quiz is possible and how we could proceed. He wants to use WebWork more as a learning tool, rather than an evaluation tool. He'd like to generate quickly about 20 questions that randomly draw initial conditions from a pool that are different cases of the same type of problem.

Where could I look to answer this question and have I made any sense here?

TIA, Boyd Duffee

<| Post or View Comments |>


userRobert (Rochester ugrad) - Re: Generating many related problems  blueArrow
11/10/2004; 3:49:27 PM (reads: 1314, responses: 0)
One easy response would be to create a set where all 20 questions use the same problem source code. One or more variables in a given question is usually generated randomly so each problem in the set will be (hopefully) unique.

The only drawback to that is that there is no guarantee that the seed for the random number generator will be different for each problem for each student.

Also, if by variations you mean changing more than just the constants used in an equation that could be a little more complicated.

<| Post or View Comments |>


userGavin LaRose - Re: Generating many related problems  blueArrow
11/11/2004; 8:45:45 AM (reads: 1304, responses: 0)
Another answer which I think isn't quite the right one, but may be interesting.

At Michigan this Fall we ran a pilot test of a modification of the WeBWorK system which allows us to do gateway testing. One aspect of this is to generate tests (that is, homework sets) by selecting problems from topic groups. Each test consists of some number of problems, and each problem is picked at random from one of 100 or so different variations on a theme---e.g., a "product rule" problem, a "quotient rule" problem, etc.

Each of these problems is then a case of the same type of problem, each is substantially different within the case, and each could then be made even more variable through the introduction of different parameter values.

Gavin

<| Post or View Comments |>


userBoyd Duffee - Re: Generating many related problems  blueArrow
11/12/2004; 12:04:22 PM (reads: 1328, responses: 0)
You both seem to understand what I'm looking for, even though the parameters will be text (symptoms). I was wondering if there was another approach rather than cut and paste 20 times, which is fine for me, but harder to sell to my user.

Gavin, how did you implement the topic groups?

<| Post or View Comments |>


userGavin LaRose - Re: Generating many related problems  blueArrow
11/15/2004; 9:10:14 AM (reads: 1253, responses: 0)
Re: topic groups:

The topic groups are defined as a problem set, and then are inserted into other problem sets by using a "group:" prefix in the source file entry for the set. Then when the set is assigned to a student, the code that does the assignment is modified to pick out a problem from the group and insert that into the set_user table entry.

In slightly greater detail: in the set that is assigned to a user, we indicate that a problem comes from a topic group by using the notation

group:groupname

instead of the usual
path/to/problem.pg

for the problem_source entry in the set definition. The topic group is then defined as a stand-alone set that is never assigned to a user. This set contains all of the problems in the group.

To get the problem from the topic group, we modify the set assignment routine to check for the "group:" prefix and appropriately deal with that when it's found. I'm only doing this with versioned problems, which requires more hacks to the WeBWorK system (but should show up in the main release somewhere along the line), so I put this check in my "assignSetVersionToUser" and "assignProblemToUserSetVersion" routines, rather than in the default "assignSetToUser" and "assignProblemToUserSet" routines. All of these are in Instructor.pm.

Does that answer your question?

Gavin

<| Post or View Comments |>