State-of-the-art on-line homework systems eliminate most, if not all, of the type (b) difficulties: they allow the student to type an answer in essentially the same form they would write it on paper. The system then transforms the input into a standard form meeting a strict syntax. That syntax may be that of Mathematica, or another "computer algebra system", which can then use various means to compare the student's answer with a "correct" answer (and that "correct" answer will often be calculated on-the-fly, since the question may well be parametrized or have variant forms).
So the question does not really have as much a flaw as might be imagined. It all depends on whether the student is being exposed directly to using Mathematica syntax and whether the student has previously learned, or is contemporaneously learning, Mathematica for the sake of doing more interesting things than mechanical calculations.
On Mar 12, 2014, at 3:29 AM, Richard Fateman <firstname.lastname@example.org> wrote:
> On 3/11/2014 12:16 AM, Murray Eisenberg wrote: >> One way, which doesn't involve looking at the form of the student's >> symbolic answer, is something employed by a at least one of the popular >> on-line homework systems: evaluate the "correct" answer at a number of >> judiciously chosen numerical values of x, evaluate the student's answer >> at the same values of x, and check that they're the same (within fuzz). > > For some clases of expressions you can use elements of a finite field, > in which case there is no fuzz. > > This problem has been address at least as early as the 1960's. > > There is > a major flaw in the logic behind the question. > > Namely, it requires students to (a) derive the correct answer and then > (b) understand the computer syntax and type the answer into the computer > correctly. > > You probably want to test (a), but you will also test (b). In fact, > telling a student he/she is wrong, when they only error is a type-b > error seems to me to be disheartening if not destructive. > > If you sufficiently simplify the task, I suppose it becomes > simultaneously do-able and quite dull, and you can find a discussion by > dullards on stack-overflow. > > Another possible flaw is that just typing the question in, and > evaluating, should get the right answer without the student knowing it. > >> >> Otherwise, you may have to deal with a myriad of possible forms in which >> the student might submit an answer without actually doing what you want. > > >> >> On Mar 10, 2014, at 4:38 AM, email@example.com wrote: >> >>> Hi all, >>> >>> I'm building a little Mathematica system that checks answers entered >> by students. Suppose the question is "what is Sin'[x]?" ad the student >> responds: Sin'[x] which is "correct", but not the intended answer >> (Cos[x]). I'm wondering if there is a general way to approach this sort >> of problem. In particular, is there a way to find out whether a given >> expression includes certain elements (like Derivative)? >>> >>> Thank you in advance, >>> >>> Sam >>> >> >> Murray Eisenberg firstname.lastname@example.org >> Mathematics & Statistics Dept. >> Lederle Graduate Research Tower phone 240 246-7240 (H) >> University of Massachusetts >> 710 North Pleasant Street >> Amherst, MA 01003-9305 >> >> >> >> >> >> >> >