Forum archive 2000-2006

John Jones - A suggestion and a question on answer evaluators

John Jones - A suggestion and a question on answer evaluators

by Arnold Pizer -
Number of replies: 0
inactiveTopicA suggestion and a question on answer evaluators topic started 2/7/2002; 12:03:26 PM
last post 2/7/2002; 3:55:47 PM
userJohn Jones - A suggestion and a question on answer evaluators  blueArrow
2/7/2002; 12:03:26 PM (reads: 910, responses: 1)

I had someone ask me to write an answer evaluator which would try to force students to input particular answers exactly (e.g., when asked for sin(pi/3), they want sqrt(3)/2 but don't want a decimal approximation). You can screen this pretty easily by having the answer evaluator reject any answer with a "." in it.

I could make a separate answer evaluator for this, but then I thought that a better solution might be to modify num_cmp and NUM_CMP. The idea is to add an optional key for num_cmp and NUM_CMP which contains extra filters. When defined, it installs those filters in the answer evaluator. The idea is similar to hooks in emacs functions.

Now for the question. Is there an answer evaluator which takes a sequence of numbers and sees if it matches a list? An optional key would say whether the student's answer has to be in the same order as the official answer. The idea is to simplify making of problems where you don't want to give away the number of answers (roots of a polynomial, list of critical points of a function, all solutions to sin(x) = 1/2 in some range, ...).

If it doesn't exist, I will make it, but I want to check that it doesn't exist already.


<| Post or View Comments |>

userMichael Gage - Re: A suggestion and a question on answer evaluators  blueArrow
2/7/2002; 3:55:47 PM (reads: 1210, responses: 0)

In response to your suggestion: I think the idea of callbooks or hooks is a very good idea. First steps towards implementing this have already been taken (see the code in the last section of which defines the AnswerEvaluator objects). NUM_CMP and FUN_CMP have been modified to use this structure, but some of the other answer evaluators should probably be rewritten to use these hooks as well. You will need to look at the code itself. The documentation notes, even the pod documentation in the code, is not yet completed.

The construction is entirely around filters, and the idea is that you can construct varients of these by plugging in additional filters. Or you could simply recombine existing filters to create new answer evaluators. I think the basic structure is pretty sound, but there is a ways to go to add the right API's to make it easy to construct answer evaluators. And (of course) documentation is lacking. Take a look at and let us know what you think.

In answer to your second question, there have been some answer evaluators written to take a string of numbers, parse them and compare (for example to evaluate a vector). Gavin La Rose at University of Michigan has written some of these. I'll see if I can find the specific examples.

Hope this helps.

-- Mike

<| Post or View Comments |>