Hi,
Any help or comments regarding any submission handling would be appreciated.
The CAPA engine which determines correctness of submissions for
numericalresponse items (amongst others) tries its best to extract a
number from data submitted by the student. However, LON-CAPA
faithfully records the learner's actual submission.
Accordingly, it is possible, as you have found, for a student to
provide some misshapen input in an initial part in a multi-part
problem, which LON-CAPA grades as correct, but then when you come to
use that submission in a perl script block for a subsequent part, it
does not behave as you might expect.
See comment #3 in bug 6614 -- http://bugs.loncapa.org/show_bug.cgi?id=6614#c3
There are three related enhancement requests: 6609, 6613 and 6614 (all
resolved in 2.11.0), with option (b) below.
Your options are:
(a) Include a preprocessor routine. (There is a problem template:
"Numerical Response with Pre-Processing" which is an example of this
functionality). The "preprocess" attribute was first included in
LON-CAPA 2.10.1
or
(b) Retrieve the student's previously submitted data using
&submission() in place of &EXT(), and specify desired clean-up in the
optional fifth argument in the call to &submission(). This fifth
argument is a reference to a hash, with one or more of the following
keys => values:
exponent => 1, comma => 1, letterforzero => 1, spaces => 1, format => 'ns'
(where n is an integer, i.e., number of significant digits).
An example call, where part id of first part is "one", and response ID of
numericalresponse in that part is "11" would be:
$first = &submission('one','11','','',{exponent => 1, comma => 1,
letterforzero
=> 1, spaces => 1, format => '3s'});
with spaces => 1 included:
0. 44 in learner data would be converted to 0.44
This fifth argument in &submission() was first included in LON-CAPA 2.11.0.
If you want to try this out, but your library server is running
2.10.1, visit: https://testdrive.loncapa.org/ and create a username
and authoring space in the testdrive domain (not connected to the main
LON-CAPA network) - running 2.11.0.
or
(c) Create your own clean-up routines (e.g., in a .library file) and
import the file into your problems, and then within the script block
call the routine you created to clean up the learner data.
or some combination of two or more of (a), (b), and (c).
Some time I ago I created a library file containing a routine:
&cleaneq() which could be used to clean up algebraic expressions.
This file is published source XML open, so select an author role, and
then browse the /res/msu/raeburn/ directory in the shared repository
with the "Source Available" checkbox checked, and you will be able to
click on "Source Code" to pop-open a window displaying the perl
regular expressions used in the cleaneq routine in the cleaneq.library
file.
Stuart Raeburn
LON-CAPA Academic Consortium
Quoting Bob Gonzales <rgon...@binghamton.edu>:
Hi,
I'd like to look at the code that Loncapa uses to clean up submissions in
numerical response problems. I'm referring to clean-up actions like
converting exponents from '1x10^1' to '1e1' and removing leading '+' signs.
We have some lab exercises in which we use the student's entered data in
some numerical response problems. I'm getting the previously submitted
data via the &EXT() function.
Every once in a while a student will submit their data with something like
a leading '+' sign, which Loncapa cleans up, and the data is accepted as
correct. So, it would be good for me to do the same clean up before I use
the submission.
I've looked around in the system and I see some cleanup in the
'implicit_multiplication' routine in 'caparesponse.pm' but I'm not sure
I'm even in the right place.
Any help or comments regarding any submission handling would be appreciated.
Thanks,
Bob Gonzales
Chemistry Dept
Binghamton University
_______________________________________________
LON-CAPA-users mailing list
LON-CAPA-users@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-users