assignment submission. The system is able to detect suspected cases of
plagiarism automatically on behalf of the markers. The plagiarism detection
algorithm has been discussed in the previous section. It uses parse trees to check
for program similarities. Each program to be compared is converted into a parse
tree first. A parse tree is composed of nodes and tokens and the structure of
parse tree is well defined for any particular programming language. Then the
parse tree is broken down into sub-trees. Each sub-tree represents a sub-part of
the program. Different sub-trees of the same type in different programs are
compared. A mark is assigned for the similarity of that pair of sub-trees. The
final score for the two parse trees is calculated. If the score is higher than a
preset threshold, the system considers those cases as suspicious plagiarism
copies.
The system also provides a feature for tutors (markers) to run and test the
submitted programs using different test cases (see Figure 7). Tutors can read an
automated testing report of a studentís program, and input useful comments or