Forum archive 2000-2006

John E. Doner - multiple correct answers

John E. Doner - multiple correct answers

by Arnold Pizer -
Number of replies: 0
inactiveTopicmultiple correct answers topic started 11/5/2003; 1:10:53 PM
last post 11/5/2003; 10:19:20 PM
userJohn E. Doner - multiple correct answers  blueArrow
11/5/2003; 1:10:53 PM (reads: 941, responses: 3)
I have a situation where the students must define a curve using an equation 0 = f(x,y). But if that's a correct answer, so is this one: 0 = -f(x,y). I found a way to wrap the student's answer in abs(), but is there a better way to handle this situation? How about multiple correct answers more generally?

Yes, other answers to my question are also correct, like 0=2f(x,y), 0=f(x,y)^2, etc., but I doubt any student will do something like that. On the other hand, switching the sign is a real possibility.

John Doner UCSB

<| Post or View Comments |>

userThomas R. Shemanske - Re: multiple correct answers  blueArrow
11/5/2003; 3:38:14 PM (reads: 1144, responses: 0)
I usually just give them one of the coefficients to normalize things.  For example if I expect ax^2 + by^2 + c = 0 I tell them to give me the equation with one of a, b, or c specified (based on their data).


<| Post or View Comments |>

userJohn Jones - Re: multiple correct answers  blueArrow
11/5/2003; 6:25:31 PM (reads: 1142, responses: 0)
A simple solution is to normalize the answer. You can still accomplish the result to a certain extent by using parameters in fun_cmp (which takes care of the factors of -1 or 2). You can also go the extra mile to insure that they don't cheat with 0=0 f(x,y) by using the partial credit evaluator or equation_cmp. This came up in another thread some time ago.

None of these approaches deals with f(x,y)^2, but I would write it off as too unlikely to come from an actual student.


<| Post or View Comments |>

userMichael Gage - Re: multiple correct answers  blueArrow
11/5/2003; 10:19:20 PM (reads: 1132, responses: 0)
Another approach is to make sure that the answer is constant on the level curves of your function f(x,y). I use this approach in checking answers to exact differential equations. See for example: or

Part of the source code is below:

DOCUMENT() ;        # This should be the first executable line in the problem.

) ;

TEXT(&beginproblem) ;
$showPartialCorrectAnswers = 0 ;


The following differential equation is exact.
Find a function F(x,y) whose level curves are solutions to the differential equation
[ ydy -xdx= 0 ]
( F(x,y) = ) { ans_rule(30) }


ANS( level_curve_check("x/y", "2x^2-2y^2", initial_t =>1 , initial_y=>2 ) );

The answer evaluator "level_curve_check" is in which is in the the courseScripts directory. (Or you can view it from the CVS at

As written the level_curve_check is incomplete, although it was good enough to handle my differential equation class. The idea is to create one or more curves satisfying the ODE f_x dx + f_y dy = 0. The students answer should be constant on these curves. If they enter a function g(f(x,y)) instead of f(x,y) it will still be constant.

As written the level_curve_check can be fooled by entering a constant function (e.g. F(x,y) =1) but it wouldn't be hard to modify the answer evaluator to check that the function is not constant as you stray off a level curve. I'll do that before I use those problems again in a course.

The first entry of level curve check is the RHS of dy/dx = g(x,y)=- f_x/f_y. The second entry is the instructor's expected answer (serves as a check) and the initial t = x value and the initial y value for the level curve.

Much could be done to improve this answer evaluator. Check more than one level curve for example, and of course check that the function is not constant along non-level curves -- but it it's a reasonable start.


<| Post or View Comments |>