Skip to content
This repository has been archived by the owner on Jan 3, 2023. It is now read-only.

Investigate

Emily edited this page Nov 18, 2019 · 8 revisions

MoSS is a tool developed by Stanford which takes submissions of coding-style assignments and generates a measure of the similarity of the code produced (within the cohort of assignments submitted to it). MoSS submissions are made to the Stanford servers via command line, with academics using the tool often amassing a collection of bash scripts to aid them in checking their programming assignments for collusion.

Investigate is designed to make this process more user-friendly by providing a web portal for submitting jobs to the Stanford MoSS servers.

Once Investigate has been deployed (as described here), it should be ready to run without significant configuration.

Uploading Student Submissions

The tool takes a .zip file of student submissions to process. This file should contain a folder per student, with the folder name being the student number of that student. Clicking the button will cause a file chooser to pop up, allowing the user to select a .zip file matching this format from their hard drive. somethin

This zip file will be uploaded, with a successful upload being indicated by a green progress bar. somethin else

Once the student files have been uploaded, the job parameters can be edited, as outlined in the next section.

Editing Job Parameters

The MoSS tool has a number of configurable parameters which are usually set as command line arguments when a job is being submitted. These parameters are also configurable in the tool, and are outlined below:

  1. Name: the name of the report being generated (for example, CSSE1001 A1 Reports)
  2. Language: the language in which the code being submitted is written (for example, Python). This can be selected from a dropdown of options pulled from a database containing the languages which MoSS is able to process
  3. Max matches: this is the maximum number of people with matching code that MoSS will detect before it simply marks this code as being stock/supplied code (as opposed to collusion). By default, this is set to 10.
  4. Max cases: there are often pieces of code which could be flagged in every single student assignment as matching another student (such as common imports). To avoid an unnecessarily high number of these matches, a maximum cases cap can be set. After this cap is reached, MoSS will stop flagging matches. By default, this is set to 200.

An example job with parameters configured to match those given above is shown below: images/TODO

Running the Job

Once the student submissions have been uploaded and the job parameters set, the button can be pressed, and the job will be sent off to the MoSS servers for processing.

Log Output

Running this job will often take some time, as everything must be sent off to external servers, and then processed there, before being sent back. To keep up to date with the progress of the job, a tab was added.

This tab is updated with the progress of the job as it is sent to MoSS and processed, and will inform the user of any errors that occur during processing. It will also inform the user when the job is done.

Generated Reports

Viewing Past Jobs

Clone this wiki locally