Using the Exam Builder to grade a vocabulary question with an input field

Stid-Grenoble's picture

I'm interested by the different process of grading with an input field. I want to use other mupad grading procedures than the elementary proc  "givecredit" that we can find in the mupad file "gradproc.mu". I read somewhere in the documentation that it was possible to grade a word response.

I have  found in the corresponding maple file "gradprocdef.def"  the "comparestr" grading procedure, and if I understand well,  it is used for testing equality of one string among others (passing in arguments). I have converted it in mupad programming langage and copy it in the file "gradprocdef.mu".  But, despite all my efforts to try to pass a word in the inputfield, I didn't success to use it.

In fact, the grading procedure works well, but the parameter(s) not. Indeed, the "response" parameter that we send to the grading process is always modified as if it was a mathematical formula, (each character is considered as a variable and converted) while we want it to be sent as an unmodified string. By example, if we send the response "by parts", the mupad procedure receive something like q2b*q2y*q2p*q2a*q2r*q2t*q2s. How can we avoid this?

I tried with the TextArea input field, but the same problem occurs.

The second difficulty I encounter is the impossibility to send more than one parameter in the grading process. The "comma" I used to separate strings causes erros in the execution process. However, some grading procedures present in "gradprocdef.def" have more than one parameter, leaving me think that it's possible.

The "comparestr" proc seems to be an important tool to test an open question with one word to answer, not a formula. It would greatly enrich our tests with vocabulary open questions...What are the tricks to use it?

Finally, combining "givecredit"  and  "comparestr" procedures should easily allow us to prevent the problem of the form of the answer. If we ask to compute "2x3", it would be then possible to prevent the response "2x3" or "3x2" to be graded to "Correct", by detecting the presence of the "*" operator.