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.
[1]
Lisa C. Kaczmarczyk,et al.
Subverting the fundamentals sequence: using version control to enhance course management
,
2007,
SIGCSE '07.
[2]
Jesper Holck,et al.
Continuous Integration and Quality Assurance: a case study of two open source projects
,
2003,
Australas. J. Inf. Syst..
[3]
Ade Miller,et al.
A Hundred Days of Continuous Integration
,
2008,
Agile 2008 Conference.
[4]
Michael A. Cusumano.
Extreme programming compared with Microsoft-style iterative development
,
2007,
CACM.
[5]
Tim Berglund,et al.
Using version control in the classroom (abstract only)
,
2013,
SIGCSE '13.
[6]
Steve Hanna,et al.
A survey of mobile malware in the wild
,
2011,
SPSM '11.
[7]
Louis Glassy,et al.
Using version control to observe student software development processes
,
2006
.