Skip to main content

Continuous integration framework for automated evaluation of student work

As a graduate teaching assistant in 2011, I piloted the use of continuous integration in software engineering course projects at NCSU. Students committed coding assignments to individual repositories, and a continuous integration server built student submissions and ran student-written test cases for evaluation. Dr. Sarah Heckman, a colleague, later adapted the framework for the CSC216 course to run static analysis tools (Checkstyle, PMD, FindBugs, etc.) and to combine the content of student repositories with ‘hidden’ teaching staff test cases for automated evaluation of student work. Dr. Heckman and I presented our work and experience with the framework at SIGCSE in 2015 , 2016 , and 2018 . The framework is now used in several courses, including CSC116, CSC216, CSC230 (C and Software Tools), CSC316, and CSC326 (Software Engineering).

Samples & Details

Scripts for managing the continuous integration workflow are available at the Science of Software – Computing Education Research Group website.

Sample build information from the Jenkins Continuous Integration server

Related Publications

  • Heckman, S. and King, J., “Developing Software Engineering Skills using Real Tools for Automated Grading,” in Proceedings of the 49th ACM Technical Symposium on Computer Science Education, New York, NY, USA, pp.794-795, 2018.
  • Heckman, S., and King, J. “Teaching Software Engineering Skills in CS1.5: Incorporating Real-World Practices and Tools,” Poster: 2016 SIGCSE Technical Symposium, 2016, p. 696-697.
  • Heckman, S., King, J., and Winters, M. “Automating Software Engineering Best Practices Using an Open Source Continuous Integration Framework,” Poster: 2015 SIGCSE Technical Symposium, 2015, p. 677.