Automatic grading of student's programming assignments: an interactive process and suite of programs

A system for automatic grading of programming assignments is described here. This grading system consists of a suite of Perl and Java programs, linked by a database, and driven by an interactive, user-grader controlled grading process. The rationale for the process, the process itself-and the process's interaction-with the programs, the database, and the user himself are discussed. This grading system has the ability to discover and accommodate unanticipated solutions by means of a grading process that is highly interactive with its user-the grader. It also has the ability to automatically accommodate a wide range of simple student errors, which can easily befuddle a more naive grading system. This system has been used since the Spring 2000 semester at Rutgers University, as a core part of the students' performance evaluation activities, in the Introduction to computer science course, where it routinely grades some 300-600 weekly assignments.