Improving Programming Education Quality with Automatic Grading System

As the rapid growth of information technology, the demand for proficiency in software programming skyrockets. Compared to teaching with slides traditionally, hands-on programming training is more beneficial and practical. However, it is exhausting and time-consuming for educators to grade all assignments in person. Besides, students may not get feedback immediately to correct their wrong conceptions. Therefore, an automatic grading system is required to grade and send feedback to students. Based on an existing continuous integration system, which checks whether new programs behave as expected, we develop a set of course management tools and deploy an automatic grading system in this paper. Our system requires a server to run and test the programs. However, the server is susceptible to being compromised by hackers. Therefore, how we protect sensitive data and prevent malicious network traffic are demonstrated in this paper as well. The tools were applied in an Android application development course with 140 students enrolled. Around 72% of the students indicate the automatic grading system is beneficial to their learning.