This is more of a logic question than a programming question, but it is programming related. I have created some online tutorials for my students. The students download HTML, CSS and JavaScript files from the site, edit them based on the instructions given in the tutorial, and then re-upload them for grading. Because the instructions are all the same, the files created by each student will basically be the same. I am worried that students will share their files with each other and some students will upload files created by other students. Because they are uploading plain text files (.html, .css, and .js files), I am looking for a way to add a unique identifier to each file that is tied to a specific student. That way if the identifier doesn’t match, I will know they have gotten the file from another student.
Here is what I have already thought of and why I don’t think it would work:
-
Add a hashed string at the beginning of each file (in a comment) – That would catch the lazy students who just uploaded a file created by another student, but it wouldn’t stop a student who copied and pasted the HTML, CSS, and/or JavaScript code from another student’s file into their own file and then uploaded it (unless they happened to copy and pasted the hashed string as well).
-
Add a string of invisible ASCII characters at the beginning in some unique order that corresponds with a specific student – This is perhaps better than option #1, but the only invisible characters I am aware of are unicode and that might not work if the file is not encoded properly when students save their edits.
-
Use a hashed string for the file name – again, doesn’t stop a student who opens their own file, copies the code from another file into their own and then uploads that file.
I’ve looked into checksums, but I am not sure if that would work either because they are making changes to the original file and re-uploading it.
Any suggestions on how to detect if the student uploads a file from another student?