A better mousetrap so to speak
What we do later is what I was trying to change for a while: For some years I have been using Scribd as a platform to make available the marked exams to my students. As I did not have a better tool, I started by doing the scan of the big pile of exams to later make it available as a document they can browse on the web (but not download).
Making all the exams available to all the students is a liability that created me no trouble so far, but I can see privacy concerns plus fear of putting too much information in the hands of the students. To address the privacy concerns I did not made the document visible or public, but private so only those with the secret URL could browse it. On top of that, marked exams were kept available for a couple of weeks before being deleted.
The idea of a student being able to review the whole marking process may not be entirely wrong, as it seems a great exercise of transparency, but it makes most of my colleagues uncomfortable.
Of course I could scan each exam on a different file and later send a copy to each student. But while this approach may be better, it takes a lot of work.
So what I did today was to put together a nice set of tools which help me get a working solution:
- ZXing project provides tools for you to create barcodes but mostly for decoding them. It is Java based and it works nicely.
- barcode is a linux command-line tool that can easily create a set of barcodes by reading from a textfile (containing names or whatever other info you want to encode).
- ImageMagick is a fantastic command-line set of tools for image manipulation
- Postfix (or sendmail) can be used to send email alerts to the students (unfortunately my ubuntu version is old and I cannot install new stuff anymore, time to upgrade to next LTS, so I had to make a hack in Java for sending email using SMTP and Sockets).
- Once student is turning in the exam, a barcode with his/her email is sticked to the first page of the exam. Several pages of barcodes were created using "barcode" program from the list of emails of the students. Each barcode the text version of the email too for human identification. Code 128 was used.
- The big pile of exams is scanned at grayscale 300dpi as a sing PDF file.
- PDF file is processed, extracting each page as a bitmap file.
- Each bitmap file is processed by ZXing with the option --try_harder so the code is read no matter were on the page it was stuck.
- Once the last page of a lot is detected (as the new one has an email barcode) the sequence of pages of that exam were stored in a special folder on a web server, with a name derived from email value.
- An email containing links to each one of the scanned images of the marked exam stored on a web server are sent to the student (directory listing is not possible in that server, only valid URL are shown).