Grading computer programs for student submissions in introductory computer science classes is a long and laborious task if done by hand. Autograding software are available for purchase and for free; however, they all have limitations. We have developed a program that is quite general and will work for autograding any Java program. The only requirement is that the instructor must make available to the students the exact name of the required classes and signature of methods and these must be adhered to by the students. An instructor who uses the autograder must do three things in advance of grading. First, they must have a correct implementation of the program, called the solution. Next, the instructor must write test cases as individual methods in a TestSuite class and assign point values in a particular format. Finally, the instructor must run the autograder against the solution in order to obtain the correct (expected) results. Then, the instructor runs the autograder against each student solution which compares this to the expected results. The autograder produces a report for each student showing the expected and actual output for each test case, whether the test succeed or failed, the incremental points awarded, and the final tally of points. The autograder is comprised of two main classes: TestSuite which contains the test methods and TestEngine which uses reflection to discover the test methods in TestSuite, and the runs the test methods on the student submission, evaluates the student’s results, and generates the report.

This document is currently not available here.