Skip to content

mpascucci/moRexams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moRexams

Rexam is a very powerful R package for exam sheets genration and correction. The package is rich and its functions are highly customizable. For the same reason its use might be confusing at first. This package is the synthesis of one year wokring with r-exams. moRexams is built to facilitate users access to the rexam functionalities, possibly lowering the entry cost.

morexams wraps rexam and mainly adds three features:

  • adds checks to avoid simple problems (duplicate students, missing sheets ...) which are difficult to debug in rexam
  • adds an init function to initialize a working folder with a basic structure needed to use rexams out of the box. The init function generates a fully-working example to immediately start with rexam.
  • move the configuration from the function parameters to a configuration file, useful to store configurations and simplify the script writing.

Install

Install devtools and morexams with the following commands:

install.packages("devtools")
library(devtools)
install_github("mpascucci/morexams")

Initialization

Open R in an empty directiory which will contain your new exam and run:

library(morexams)
morexams_init()

This will setup the folder by copying the main R scripts, config and tutorial files.

Folder structure

|-Generated        #generated exam sheets
|-Logo             #an image for exam sheets header
|-Questions        #exam questions
|-Scan             #scanned exam sheets
|-Students         #students list
|-Evaluation       #exam results
exam_generation.R  #R script for exams sheet generation
exam_correction.R  #R script for auto exams correction
config.R           #the exam configuration file

Exam procedure

This procedure is the result of one semester trial-and-error experience. Watch out: most of the complexity (and possible problems) lie in the physical steps of the procedure (printing, explaining, collecting, scanning) more than in the software.

  1. edit the configuration file config.R where you can specify the exam's properties (e.g. title, author, ...)
  2. generate the exam copies by following the example in exams_generation.R
  3. make a backup copy of the Generated folder for safety.
  4. print the exam sheets two-sided and clipse them.
  5. take the time to carefully explain the exam methodology to the students: explain that a ball-point pen (black or blue) must be used, give a clear example on how to fill the student-ID part in the first page of the exam sheet.
  6. do the exercices yourself: verify that the correct answer is present in each multiple-choice question (i.e. the exercices are written correctly).

Exam

  1. take some extra ball-point pens with you.
  2. carefully explain how the form should be filled with the student's ID and the chosen answers. Make clear that only crosses whould be used to mark the answers and that the writing must be clean.
  3. if the exam contains open questions, ask the students to write their name and ID within the first answer field.
  4. ask the student to separate the exam sheets and return only one solution sheet per exam part (multiple-choice and open-questions), which should be piled separately. All other official exam sheets shall also be returned (even empty).
  5. make shure the students wrote their name and ID on all returned sheets.
  6. tell the students to keep the exam text. It is unique, therefore they will need it for correction.

Scan

  • Count the copies that do not have a student ID (if any) and remove them before scanning.
  • Put all copies in the same orientation, scan them bottom first.
  • force fromat A4 in the scanner settings.
  • choose PNG format (no PDF), and set resolution to 300dpi.

Correction

  1. correct the open questions first (if any) and give a note by marking only one of the cases in the note field (upper right part of the sheet). No mark corresponds to zero (=very bad), the other cases correspond to 1 to 5 (=perfect) from left to right. Do not mark more than one case. The actual points will be determined in the evaluation script later.
  2. scan the solution sheets and put the image files in the Scan/qcm and Scan/string folders for multiple-choice and open questions respectively.
  3. evaluate the exam by following the example in exams_correction.R. The evaluation is interactive and will ask to check in case of ambigiuity.
  4. double check that the pages are all in the same orientation if you get strange error messages.
  5. in case you get an error like the following:
	Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
	line 8 did not have 6 elements

this means that the optical reading failed and that line 8 in the Daten.txt file automatically generated has to be corrected manually. Find this file in the nops_scan zip file in the ./Scan/nops folder generated by the correction process. You should unzip it, correct it and then update the zip file. WARNING: Use a simple text editor to edit the Daten.txt file in order to preserve the leading zeros in the fields.

Archive

After the exam evaluation, copy the following folders for a backup:

  • Evaluation
  • Scan
  • Generation

Note on using PDF scans (instead of PNG)

This feature does not always work propery, therefore has been temporarely removed. If you want to restore it these are the required steps to make ImageMagik work on Linux:

  • On linux install ImageMagik
  • modify /etc/ImageMagick-6/policy.xml from <policy domain="coder" rights="none" pattern="PDF" /> to <policy domain="coder" rights="read|write" pattern="PDF" />