rr-exams

What is student number in error message from exams2nops/R-exams referring to?


Background: We are currently evaluating PNG files of over 180 exam sheets that were created via the exams2nops function in R/exams following the offical tutorial.

Problem: We aim at evaluating the PNG via

eval_v1 <- nops_eval(
  register = "registration.csv",
  solutions = "exam_evaluation_file.rds",
  scans = Sys.glob(".../nops_scan_*.zip"),
  eval = exams_eval(partial = FALSE, negative = FALSE),
  interactive = FALSE
)

We receive the following error message:

The following students were not registered or incorrectly filled in their registration numbers:
32, 173
For the following students the exam IDs are not available or were incorrectly scanned:
110, 162
Error in nops_eval(register = "registration.csv", solutions = "exam_evaluation_file.rds",  : 
  Some IDs of exams/students could not be matched to solutions/registrations.

Question: What do these numbers (32, 173, 119, 162) refer to? The respective scan, the respective exam ID, or something else? In our understanding, there must be exam sheets including exam IDs that are not included in the solution file (?), and/or registration numbers that are not included in the registration.csv file. However, despite careful checking, we have been unable to identify the source of the issue.

What we have tried already: We have tried to check both the respective scans (i.e., …32.png and so on) and the exam IDs (i.e., "DATE00032"). Either way, these students exist in the registration.csv, and the information about exam ID and registration number, both on the scans and in the Daten.txt file, is identical.

That is, we are a bit puzzled about what the error message could be referring to.


Solution

  • All scanned PDF and/or PNG files are collected in a data set and the numbers in the warning messages refer to the rows of this data.

    If you want to see this data, you can look at the Daten.txt file inside the nops_scan_*.zip file. The ordering of the rows in this data depend on the order of the scanned files which by default depends on the lexicographical ordering (which depends on the locale).

    However, you typically do not have to inspect this manually but you can do it interactively in nops_eval() and/or via nops_fix(). The latter is still a relatively new function and a detailed tutorial is under preparation. The corresponding manual page already has some useful examples, though.

    The idea for the workflow is:

    Internally, these function unzip the nops_scan_*.zip files, edit the Daten.txt, and then zip everything again. But they try to do all the tedious details for you.