--- loncom/html/adm/help/tex/Custom_Response_Problems.tex 2006/07/18 17:24:45 1.1
+++ loncom/html/adm/help/tex/Custom_Response_Problems.tex 2012/01/20 04:14:04 1.6
@@ -2,14 +2,17 @@
Custom Response is a way to have a problem graded based on an algorithm. The use of this response type is
generally discouraged, since the responses will not be analyzable by the LON-CAPA statistics tools.
-The student answer is stored in the
-variable \$submission, and needs to be evaluated by Perl code inside the -tag. Custom Response needs to return a standard LON-CAPA grading code:
+For a single textfield, the student's answer will be in a variable \$submission. If the Custom Response has multiple textfields, the answers will be in an array
+reference, and can be accessed as \$\$submission[0], \$\$submission[1], etc.
+
+The student answer needs to be evaluated by Perl code inside the -tag. Custom Response needs to return a standard LON-CAPA. The most common response are:
\begin{itemize}
\item EXACT\_ANS: return if solved exactly correctly
\item APPROX\_ANS: return if solved approximately
-\item INCORRECT: return if not correct, loose try
-\item SIG\_FAIL, NO\_UNIT, ANS\_CNT\_NOT\_MATCH, BAD\_FORMULA,
-WANTED\_NUMERIC: return if not correct for different reasons, do not loose try
+\item INCORRECT: return if not correct, uses up a try
+\item ASSIGNED\_SCORE: partial credit (also return the credit factor, e.g. return(ASSIGNED\_SCORE,0.3);)
+\item SIG\_FAIL, NO\_UNIT, EXTRA\_ANSWER, MISSING\_ANSWER, BAD\_FORMULA,
+WANTED\_NUMERIC, WRONG\_FORMAT: return if not correct for different reasons, does not use up a try
\end{itemize}
The answer display is shown instead of the student response in 'show answer' mode.
The following example illustrates this:
@@ -19,7 +22,7 @@ The following example illustrates this:
# We do not want a vector
-if ($submission=~/\,/) { return 'ANS_CNT_NOT_MATCH'; }
+if ($submission=~/\,/) { return 'EXTRA_ANSWER'; }
# Need a numerical answer here
if ($submission!~/^[\d\.\-\e]+$/i) { return 'WANTED_NUMERIC'; }
$difference=abs(90-abs($submission));
@@ -30,3 +33,32 @@ return 'INCORRECT';
\end{verbatim}
+
+
+Full list of possible return codes:
+\begin{itemize}
+\item EXACT\_ANS: student is exactly correct
+\item APPROX\_ANS: student is approximately correct
+\item NO\_RESPONSE: student submitted no response
+\item MISSING\_ANSWER: student submitted some but not all parts of a response
+\item EXTRA\_ANSWER: student submitted a vector of values when a scalar was expected
+\item WANTED\_NUMERIC: expected a numeric answer and didn't get one
+\item SIG\_FAIL: incorrect number of Significant Figures
+\item UNIT\_FAIL: incorrect unit
+\item UNIT\_NOTNEEDED: submitted a unit when one shouldn't
+\item UNIT\_INVALID\_INSTRUCTOR: the unit provided by the author of the problem is unparsable
+\item UNIT\_INVALID\_STUDENT: the unit provided by the student is unparasable
+\item UNIT\_IRRECONCIBLE: the unit from the student and the instructor are of different types
+\item NO\_UNIT: needed a unit but none was submitted
+\item BAD\_FORMULA: syntax error in submitted formula
+\item WRONG\_FORMAT: student submission did not have the expected format
+\item INCORRECT: answer was wrong
+\item SUBMITTED: submission wasn't graded
+\item DRAFT: submission only stored
+\item MISORDERED\_RANK: student submitted a poorly order rank response
+\item ERROR: unable to get a grade
+\item ASSIGNED\_SCORE: partial credit; the customresponse needs to return the award followed by the partial credit factor
+\item TOO\_LONG: answer submission was deemed too long
+\item INVALID\_FILETYPE: student tried to upload a file that was of an extension that was not specifically allowed
+\item COMMA\_FAIL: answer requires the use of comma grouping and it wasn't provided or was incorrect
+\end{itemize}