Forum archive 2000-2006

christelle scharff - Question/Answer with feedback

christelle scharff - Question/Answer with feedback

by Arnold Pizer -
Number of replies: 0
inactiveTopicQuestion/Answer with feedback topic started 12/18/2006; 11:58:29 AM
last post 12/22/2006; 11:08:01 AM
userchristelle scharff - Question/Answer with feedback  blueArrow
12/18/2006; 11:58:29 AM (reads: 124, responses: 2)

In WeBWorK is there a type of question that would give student feeback when an incorrect answer is submitted?



<| Post or View Comments |>

userMichael Gage - Re: Question/Answer with feedback  blueArrow
12/21/2006; 7:29:50 PM (reads: 137, responses: 0)
Hi Christelle,

These can be constructed, but it's function that could use the development of some more tools to provide syntactic sugar for the process. Here is an example:

The example below does a standard num_cmp with the number 3.14159 but gives a hint and encouragement (?) if your answer is off by less than .2.


# Load whatever macros you need for the problem

## Do NOT show partial correct answers
$showPartialCorrectAnswers = 0;


Enter a value for (\pi)

sub addAnswerMessage {
my $ans_eval = shift;
if ( $ans_eval->{score} == 0 and abs ( $ans_eval->{student_ans}-$PI) <.2 ) {
$ans_eval->{ans_message} = "Close but no cigar";

$ans_eval = num_cmp(3.14159,reltol=>.01);



The $ans_eval->{debug}=1; line prints out a trace of evaluator as it works -- there is currently too much information, but it will give you some idea of the process as the student's response progresses down the pipeline of the evaluator. In particular it will tell you what fields have been defined in the particular answer evaluator you are working with.

You should look through the AnswerEvaluator object in the lib/ file.

I expect to be adding some features to this object so I'd appreciate any feedback on what you would like to see to make it easier to modify existing answer evaluators.


<| Post or View Comments |>

userJohn Jones - Re: Question/Answer with feedback  blueArrow
12/22/2006; 11:08:01 AM (reads: 131, responses: 0)

One possibility is to use pc_evaluator. You give it a list of answer checkers and webwork will match the student's answer until it finds a match. It then awards the specified amount of credit for that answer, and optionally gives a message. The name comes from the idea of giving partial credit for certain answers, but it can also be used for feedback.

I don't know what you want to have trigger the feedback. Here is an artificial example. Note, in the loadMacros part of the problem, you need to load so that pc_evaluator is defined.

ANS(pc_evaluator([[num_cmp(10), 0, "hi"], [num_cmp(20), 0.5, "ho"],
If the student enters "10", they get no credit and a message of "hi", of they enter "20" they get half credit and a message of "ho", and an answer of "23" gives them full credit (no special message, but you could have one).

Another example would be

ANS(pc_evaluator([[num_cmp(23), 1], [auto_right(1), 0, "Try 23"]]));
This gives full credit if the student answers "23", otherwise they get no credit and a helpful suggestion.


<| Post or View Comments |>