<commit_before># blind-grader

This is a script designed to automate the anonymizing of student
submissions to classesv2.

It requires curl to access the WebDAV interface. The TF using the
script must edit it and change the CLASSESV2 variable to the
appropriate WebDAV interface for their course. (I hope to add this as
a command-line switch soon.)

We assume that each student's Dropbox has a single file (the relevant
assignment) of type docx, doc, or pdf. We assume that the files
themselves contain no identifying information.

We download the files, keeping track of the uid of each student. We
rename them to a unique hash and correlate the uid with the hash in a
csv file. The TF is then free to grade them, and then correlate them
with the student's uid at the end.

Future improvements will include a second script which automatically
renames the files to the student's user id. If anyone knows a way to
correlate user IDs with student email addresses, short of manually
looking at the class roster, this would also be helpful.<commit_msg>Update README for rot47 and deanonymizer.bash implementation.<commit_after># blind-grader

This project contains two scripts designed to automate the anonymizing
of student submissions to classesv2. It requires curl and bash.

The first script, anonymizer.bash, is entirely interactive. We assume
that each student's Dropbox has a single file (the relevant
assignment) of type docx, doc, or pdf. We assume that the files
themselves contain no identifying information, although we will rename them.

We correlate each file with the class name, assignment name, and the
uid of each student. This information is then scrambled with rot47 and
downloaded into a directory. The TF is then free to grade them.

The second script, deanonymizer.bash, is run after the TF is done
grading the assignments. It copies the files into a new directory and
unscrambles the names with a second application of rot47.

The TF then has to correlate the student ID's with email addresses and
names. I hope in a future version of this script to find some way to
do this automatically.

This project is (C) <NAME> <<EMAIL>> and licensed
under the MIT license. I welcome all comments and questions.
{'fraction_non_alphanumeric': 0.033318325078793336, 'fraction_numerical': 0.00405222872579919, 'mean_word_length': 4.5, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2381048', 'n_tokens_mistral': 569, 'n_tokens_neox': 537, 'n_words': 361}