Abstract
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.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Android_Developers: Espresso. https://developer.android.com/training/testing/espresso
Android_Developers: Ui automator. https://developer.android.com/training/testing/uiautomator
Britton, J., Berglund, T.: Using version control in the classroom. In: Proceeding of the 44th ACM Technical Symposium on Computer Science Education, pp. 753–753. ACM (2013)
Chacon, S., Straub, B.: Pro GIT. Apress, New York (2014)
Clifton, C., Kaczmarczyk, L.C., Mrozek, M.: Subverting the fundamentals sequence: using version control to enhance course management. ACM SIGCSE Bull. 39(1), 86–90 (2007)
Cusumano, M.A.: Extreme programming compared with microsoft-style iterative development. Commun. ACM 50(10), 15–18 (2007)
Felt, A.P., Finifter, M., Chin, E., Hanna, S., Wagner, D.: A survey of mobile malware in the wild. In: Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices, pp. 3–14. ACM (2011)
GitHub_Inc.: Github classroom. https://github.com/education/classroom
GitHub_Inc.: Github developer: webhooks. https://developer.github.com/webhooks/
Glassy, L.: Using version control to observe student software development processes. J. Comput. Sci. Coll. 21(3), 99–106 (2006)
Google: Implementing continuous delivery with Travis CI and App Engine (2019). https://cloud.google.com/solutions/continuous-delivery-with-travis-ci
Holck, J., Jørgensen, N.: Continuous integration and quality assurance: a case study of two open source projects. Australas. J. Inf. Syst. 11(1), 45 (2003)
Miller, A.: A hundred days of continuous integration. In: Agile 2008 Conference, pp. 289–293. IEEE (2008)
Rash, M.: Linux Firewalls: Attack Detection and Response with iptables, psad, and fwsnort. No Starch Press, San Francisco (2007)
Robolectric: Robolectric, http://robolectric.org/
The_JUnit_Team: Junit (2019). https://junit.org/
Travis: Encryption keys. https://docs.travis-ci.com/user/encryption-keys/
Travis: Job lifecycle. https://docs.travis-ci.com/user/job-lifecycle/
Travis: Travis CI education. https://education.travis-ci.com/
Watters, C., Johnson, P.: Version numbering in single development and test environment (2013)
Acknowledgement
This work was supported by the Center for Open Intelligent Connectivity through the Featured Areas Research Center Program within the Framework of the Higher Education Sprout Project by the Ministry of Education in Taiwan. The work of Y.-Z. Cai was sponsored by the R&D enhancement project “R&D of Network Behavior Security Analyses for IoT Devices on Advanced Edge Switch in an AIOT plus SDN Integrated Platform,” which is executed by EstiNet Technologies Inc. and partially sponsored by Hsinchu Science Park Bureau, Ministry of Science and Technology, Taiwan, R.O.C. The work of M.-H. Tsai was supported in part by the MOST under Grant 107-2221-E-006-062 and Grant 108-2221-E-006-112, and in part by the Industrial Technology Research Institute.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Cai, YZ., Tsai, MH. (2019). Improving Programming Education Quality with Automatic Grading System. In: Rønningsbakk, L., Wu, TT., Sandnes, F., Huang, YM. (eds) Innovative Technologies and Learning. ICITL 2019. Lecture Notes in Computer Science(), vol 11937. Springer, Cham. https://doi.org/10.1007/978-3-030-35343-8_22
Download citation
DOI: https://doi.org/10.1007/978-3-030-35343-8_22
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-35342-1
Online ISBN: 978-3-030-35343-8
eBook Packages: Computer ScienceComputer Science (R0)