SoCS uses MOSS (Measure of Software Similarity) to compare student submissions for plagiarism. It checks for program similarity and supports many of the languages in the programs delivered by the School (C, Python, Java, and more). While MOSS can help detect similarity between programs, results must be interpreted through human intervention to determine if plagiarism did in fact take place.
SoCS hosts a webform available at “sneakoscope.socs.uoguelph.ca”. Clients are to fill out the webform and attach an archive of both the files that must be evaluated and (optionally) any code files that were provided for the students to use.
Once the submission has been processed, a link is provided (manually until the system is fixed) with the results. The instructor will the decide whether to proceed with any cases and the result link will also be provided to the Academic Integrity Officer.
Authentication for MOSS is done through SoCS LDAP. The upload page is available to any client that are part of the faculty, sessional, or TA groups. Every semester, the result pages are manually configured for each instructor in the apache vhost config file.
The webform is implemented using Python CGI which updates masterlist.txt and creates a config file for each entry. A cron job checks the masterlist.txt every 5 minutes and processes any entries within it with local scripts stored on the server. These scripts are written in Python. They read the configuration for a submission and extract and process the archives into the format expected by Moss (one folder per student with all code at the root), and then class Moss.pl against the processed submission files.