Search code examples
rr-exams

R/exams: implement only six boxes for the registration number


I am working with with the exams2nops function of the R/exams package. Since the student's registration number of my university includes only six numbers, I tried to adjust the reglength option (usually minimum 7) in the exams2nops function as well as the nops_scan and nops_eval functions. Creating only 6 boxes was not the problem but the evaluation process is more sensitive to scan quality and contrast problems. If the quality of the scans is perfect, the evaluation works (almost) perfectly with my adjustments but whenever there is a slight lack of quality in the scans, I have to enter some/all registration numbers manually while the interactive process. Since my adjustments were only improvised and not really elegant because I do not understand every part of the source code, I am searching for a more stable solution now. Is there any way to reduce the registration number to six boxes without having problems in the evaluation process afterwards?


Solution

  • Workaround: The minimum number of digits in the registration ID is currently 7. If you have 6-digit registration IDs, I would recommend to pre-fix all numbers with 0. I.e., to use "0123456" instead of "123456". And to make sure students remember to do so, I would announce at the beginning of the exam: Please remember to check 0 as the first digit...

    Update: In a different question an R/exams user suggested to pre-fill the initial zeros automatically on the exam sheet. This is now available, see: Fill initial student IDs with zeros in R/exams exams2nops()

    Proper implementation: Adapting the source code underlying exams2nops() and nops_eval() to work with six digits would certainly be possible. But you would need to make sure that all parts in the source code are modified correctly and are in sync. Specifically, you would need to create a new "Type" that signals the scanner how many registration digits have to be read. Otherwise the scanner might read parts of the sheet that have printed elements on it, leading to errors in reading the registration ID.

    Future plans: I will consider this request for the next major revision of the NOPS functionality in the package. But at the moment this does not have high enough priority for me because (a) I think the workaround above is acceptable and (b) improving online exam infrastructure is more important for most users due to the pandemic.