PlagCheck provides algorithmic analysis of Moss results.


1. Node#

Nodes are results returned by Moss i.e every individual file.

2. Tags#

Tags are roles which a file serves i.e. a tag is a potential distributor or potential culprit or both.

3. M-group#

m-groups (moss-groups) are groups of solution which have similar code. For example A student who solves a programming problem may share their solution with 3 of his/her friends, that is a single m-group with 4 nodes.

For example if you run, insights() will return the following data:

{'DCtoC Paths': [('testfiles/', 'testfiles/'),
                 ('testfiles/', 'testfiles/')],
 'DtoC Paths': [('testfiles/', 'testfiles/'),
                ('testfiles/', 'testfiles/'),
                ('testfiles/', 'testfiles/')],
 'DtoDC Paths': [('testfiles/', 'testfiles/'),
                 ('testfiles/', 'testfiles/')]}

This analysis can be visualized into following Disconnected Directed Graph

moss results

We assign Tags to every individual Node.

  1. D - Distributor Student(s) who distributed their code in a group.
  2. C - Culprit Student(s) who copied the shared code.
  3. DC - Both a Distributor & Culprit

In the above depicted graph, there are 2 unique m-groups.

  1. Group 1 : [1, 2, 3, 4, 5]
  2. Group 2 : [7, 6]