Advertisement

Improving Programming Education Quality with Automatic Grading System

  • Yun-Zhan CaiEmail author
  • Meng-Hsun Tsai
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11937)

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

Android Continuous integration Programming education Software design 

Notes

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.

References

  1. 1.
  2. 2.
  3. 3.
    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)Google Scholar
  4. 4.
    Chacon, S., Straub, B.: Pro GIT. Apress, New York (2014)CrossRefGoogle Scholar
  5. 5.
    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)CrossRefGoogle Scholar
  6. 6.
    Cusumano, M.A.: Extreme programming compared with microsoft-style iterative development. Commun. ACM 50(10), 15–18 (2007)CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    GitHub_Inc.: Github classroom. https://github.com/education/classroom
  9. 9.
    GitHub_Inc.: Github developer: webhooks. https://developer.github.com/webhooks/
  10. 10.
    Glassy, L.: Using version control to observe student software development processes. J. Comput. Sci. Coll. 21(3), 99–106 (2006)Google Scholar
  11. 11.
    Google: Implementing continuous delivery with Travis CI and App Engine (2019). https://cloud.google.com/solutions/continuous-delivery-with-travis-ci
  12. 12.
    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)Google Scholar
  13. 13.
    Miller, A.: A hundred days of continuous integration. In: Agile 2008 Conference, pp. 289–293. IEEE (2008)Google Scholar
  14. 14.
    Rash, M.: Linux Firewalls: Attack Detection and Response with iptables, psad, and fwsnort. No Starch Press, San Francisco (2007)Google Scholar
  15. 15.
    Robolectric: Robolectric, http://robolectric.org/
  16. 16.
    The_JUnit_Team: Junit (2019). https://junit.org/
  17. 17.
  18. 18.
  19. 19.
    Travis: Travis CI education. https://education.travis-ci.com/
  20. 20.
    Watters, C., Johnson, P.: Version numbering in single development and test environment (2013)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Department of Computer Science and Information EngineeringNational Cheng Kung UniversityTainanTaiwan

Personalised recommendations