6 ms·
I am a math professor with a scanned exam grading workflow that I hacked together as Bash scripts using various open source command line tools. I feed all the e
by Syzygies 5y ago
I am a math professor with a scanned exam grading workflow that I hacked together as Bash scripts using various open source command line tools. I feed all the exams through a sheet-fed scanner, decode bar codes to identify problems and students, add radio buttons for entering and tracking scores (0-6 per problem), and create PDF "books" per problem for grading and annotating.
Having grad students help grade paper is a consistency nightmare: It's look once, never look back. Instead, after each of several provisional passes I recreate the PDF "book" for that problem, with a chapter for each score, and students randomized within each chapter. In the same spirit as "checking your work lets you work three times faster" this is actually both more consistent and faster that a single pass over paper. Almost all of my attention is on the math, which I'm good at, rather than locating problems and finding again the ones I know I misgraded, which I'm not good at.
Then each student's exam needs to be extracted from these problem PDFs, scores recorded, and annotations frozen.
There are cloud services for grading. They're hopelessly primitive, with cloud lag. Like a gamer, I used to reject wireless mice because of the lag. I reject these services. I can grade everything myself faster than using a team of grad students, with the right local tools.
The PDF format is a morass. My hats off to anyone who will work with it. There are many evolutionary layers and no formal specification or verification; one tests a PDF by seeing if most programs accept it.
It's time for me to rewrite my grading system in a modern scripting language, so others could use it. I prefer Ruby, but that's mainly to stave off boredom when I'm not using Haskell. I can use Python. This would permit a more robust workflow, such as adding late exams in mid-grading without losing grading in progress.
I can't find documentation for Borb, to check off the list of features I'd need. I suspect from this being a one-person project that I might need to continue to patch together external tools.
- jhgb 5y ago> Having grad students help grade paper is a consistency nightmare: It's look once, never look back. Captcha-ize them, with several of them grading the same result, and with checking their responses against each other?
- Tijdreiziger 5y agoPerhaps you might be interested in the Zesje project: https://gitlab.kwant-project.org/zesje/zesje https://gitlab.kwant-project.org/zesje/zesje
- mkl 5y agoMore information: https://sandbox.grading.quantumtinkerer.tudelft.nl/ https://sandbox.grading.quantumtinkerer.tudelft.nl/, https://zesje.tudelft.nl/about/ https://zesje.tudelft.nl/about/ It sounds like it's still mostly a prototype?
- Tijdreiziger 5y agoSorry, I should have elaborated in my initial comment. I was briefly involved as a developer several years ago (as part of my bachelor's thesis). At that time, it was mostly beta-quality, but it was already in use by multiple professors for grading. I haven't been involved with the project since, so I'm not sure about the current status. I think the homepage [1], which you linked to and where it mentions that it's still a prototype, is at least somewhat outdated; it has a screenshot of a very old version of the software. At least the 'support' section still looks accurate, though. If you're interested in using it, I would advise getting in touch via the Mattermost channel or mailing list (both linked to from the homepage [1]) and asking about the current state of the project. Tell them Jamy sent you :) [1] https://sandbox.grading.quantumtinkerer.tudelft.nl/ https://sandbox.grading.quantumtinkerer.tudelft.nl/
- Evidlo 5y ago> There are many evolutionary layers and no formal specification or verification; There is a specification, but it's very complicated.
- hyperpallium2 5y agoPDF uses postscript, which is Turing equivalent. It's a document format with the halting problem.
- einpoklum 5y agoThat is not a realistic concern for GP. The scanned exams won't even involve any Postscript.
- deleted 5y ago[deleted]
- Syzygies 5y agoI do insert the score radio buttons using the "pdfmark" mechanism via Postscript.
- maxerickson 5y agoPostscript files are often rendered into PDF, but PDF doesn't use postscript.
- Syzygies 5y agoSee dunham's answer. Anyone who has seen a PDF file in text form would swear they're looking at Postscript. There's a common intersection that's identical. Very roughly speaking (this is a semantic debate where everyone is wrong from someone else's perspective), a PDF file is a restricted subset of Postscript, with added indexes so one can render pages in the middle without having to process the code from the beginning. The hardship in generating PDFs from scratch is getting those indexes right. It's far easier to convert a Postscript file using standard tools.
- Svetlitski 5y agoYou should consider looking into Gradescope (Gradescope.com). As a former TA, I can attest to it making grading much more pleasant and streamlined than it would be otherwise.
- strzibny 5y agoWould be cool to know the differences to Ruby's HexaPDF. One is certainly the license.
- senorsmile 5y agoWould you be willing to list all of the command line tools you're using?
- gettalong 5y agoIf you want to do something like this in Ruby, have a look at HexaPDF - https://hexapdf.gettalong.org/ https://hexapdf.gettalong.org/ - which provides a full-blown implementation for reading and writing PDFs and is quite mature already (n.b. I'm the author). It is licensed AGPL+Commercial but if you just use it for yourself, this does not matter as you can use the AGPL.