Date of Award

Spring 2016

Project Type

Thesis

Program or Major

Computer Science

Degree Name

Master of Science

First Advisor

R. Daniel Bergeron

Second Advisor

Elizabeth Varki

Third Advisor

Mark Bochert

Abstract

The grading of student programs is a time consuming process. As class sizes continue to grow, especially in entry level courses, manually grading student programs has become an even more daunting challenge. Increasing the difficulty of grading is the needs of graphical and interactive programs such as those used as part of the UNH Computer Science curriculum (and various textbooks).

There are existing tools that support the grading of introductory programming assignments (TAME and Web-CAT). There are also frameworks that can be used to test student code (JUnit, Tester, and TestNG). While these programs and frameworks are helpful, they have little or no no support for programs that use real data structures or that have interactive or graphical features. In addition, the automated tests in all these tools provide only “all or nothing” evaluation. This is a significant limitation in many circumstances. Moreover, there is little or no support for dynamic alteration of grading criteria, which means that refactoring of test classes after deployment is not easily done.

Our goal is to create a framework that can address these weaknesses. This framework needs to:

1. Support assignments that have interactive and graphical components.

2. Handle data structures in student programs such as lists, stacks, trees, and hash tables.

3. Be able to assign partial credit automatically when the instructor can predict errors in advance.

4. Provide additional answer clustering information to help graders identify and assign consistent partial credit for incorrect output that was not predefined.

Most importantly, these tools, collectively called RPM (short for Rapid Program Management), should interface effectively with our current grading support framework without requiring large amounts of rewriting or refactoring of test code.

Share

COinS