Combining DOMjudge with JUnit for automated grading in algorithms and data structures courses

From ICPC
Jump to: navigation, search

Combining DOMjudge with JUnit for automated grading in algorithms and data structures courses

Tobias Werth.png

Tobias Werth

We have started to use automated grading (mostly due to budget cuts) in our algorithms and data structure course for freshmen. Since we are also involved in organizing programming contests, the idea of using a CCS (in our case DOMjudge) is quite obvious. However, the ICPC style grading is too coarse grained for our purposes. Additionally, learning how to use various I/O routines for parsing and printing is rather complicated for beginners. Thus, we extended JUnit by several annotations to assign scores to test cases and to differentiate between private and public test cases. Furthermore, our system is able to replace parts of student implementations for a subset of test cases to avoid double deduction of points in case of subsequential errors. With DOMjudge's new REST API, it was easy to integrate the DOMjudge backend / sandboxing with our existing course management system.