Automated Code Assessment for Education: Review, Classification and Perspectives on Techniques and Tools
Abstract
:1. Introduction
1.1. Motivations
1.2. Research Questions
- What kinds of automatic code assessments are feasible?
- To what extent can an automated code assessment tool generate results that are as good as those obtained manually by a human grading process?
- What are the key challenges related to automatic code assessment?
1.3. Methodology
1.4. Related Work
- the kinds of coding/program aspects that should be assessed;
- the methods and techniques used to analyse the code;
- the types of feedback that are presented to learners and instructors;
- the kinds of systems developed to support the automated code assessment;
- the ways they are integrated in the learning process and used in education;
- the quality and impact of the automatically produced assessments.
2. Automated Code Assessment
2.1. Code and Program Aspects
2.1.1. Code Syntax
2.1.2. Anti-Plagiarism
2.1.3. Code Semantic
2.1.4. Code Performance
2.1.5. Code Quality
2.1.6. Other Aspects
2.2. Methods and Techniques
2.2.1. Static Approaches
2.2.2. Dynamic Approaches
2.2.3. Hybrid Approaches
2.2.4. Modelling
2.2.5. Artificial Intelligence
2.3. Feedback
2.3.1. Status
2.3.2. Mark
2.3.3. Rubric
2.3.4. Counterexample
2.3.5. Comment
2.3.6. Report
2.3.7. Other Kinds of Feedback
3. Automated Assessment Tools
3.1. Features
3.2. Tools and Systems
3.3. Security
4. Integration in the Learning Process
4.1. Grading
4.2. Active Learning
4.3. Learning Behaviour
4.4. Semi-Automated Code Assessment
5. Discussions
5.1. Feasible Kinds of Assessment
5.2. Assessment Quality
5.3. Challenges for Automated Code Assessment
5.3.1. Human Intervention and Assessment Quality
5.3.2. Cheating and Creativity
5.3.3. Collaboration and Interoperability
6. Conclusions
Funding
Conflicts of Interest
References
- Douce, C.; Livingstone, D.; Orwell, J. Automatic Test-Based Assessment of Programming: A Review. J. Educ. Resour. Comput. 2005, 5, 215–221. [Google Scholar] [CrossRef]
- Ala-Mutka, K.M. A Survey of Automated Assessment Approaches for Programming Assignments. Comput. Sci. Educ. 2005, 15, 83–102. [Google Scholar] [CrossRef]
- Lajis, A.; Baharudin, S.A.; Kadir, D.A.; Ralim, N.M.; Nasir, H.M.; Aziz, N.A. A Review of Techniques in Automatic Programming Assessment for Practical Skill Test. J. Telecommun. Electron. Comput. Eng. 2018, 10, 109–113. [Google Scholar]
- Keuning, H.; Jeuring, J.; Heeren, B. A Systematic Literature Review of Automated Feedback Generation for Programming Exercises. ACM Trans. Comput. Educ. 2018, 19, 1–43. [Google Scholar] [CrossRef]
- Aldriye, H.; Alkhalaf, A.; Alkhalaf, M. Automated Grading Systems for Programming Assignments: A Literature Review. Int. J. Adv. Comput. Sci. Appl. 2019, 10, 215–221. [Google Scholar] [CrossRef]
- Ismail, M.H.; Lakulu, M.M. A Critical Review on Recent Proposed Automated Programming Assessment Tool. Turk. J. Comput. Math. Educ. 2021, 12, 884–894. [Google Scholar]
- Rahman, K.A.; Nordin, M.J. A Review on the Static Analysis Approach in the Automated Programming Assessment Systems. In Proceedings of the 2007 National Conference on Programming, Montreal, QC, Canada, 21–25 October 2007. [Google Scholar]
- Liang, Y.; Liu, Q.; Xu, J.; Wang, D. The Recent Development of Automated Programming Assessment. In Proceedings of the 2009 International Conference on Computational Intelligence and Software Engineering, Wuhan, China, 11–13 December 2009. [Google Scholar]
- Ihantola, P.; Ahoniemi, T.; Karavirta, V.; Seppälä, O. Review of Recent Systems for Automatic Assessment of Programming Assignments. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research, Koli, Finland, 28–31 October 2010; ACM: New York, NY, USA, 2010; pp. 86–93. [Google Scholar]
- Romli, R.; Sulaiman, S.; Zamli, K.Z. Automatic Programming Assessment and Test Data Generation: A Review on its Approaches. In Proceedings of the 2010 International Symposium on Information Technology, Kuala Lumpur, Malaysia, 15–17 June 2010; pp. 1186–1192. [Google Scholar]
- Pieterse, V. Automated Assessment of Programming Assignments. In Proceedings of the 3rd Computer Science Education Research Conference on Computer Science Education Research, Arnhem, The Netherlands, 4–5 April 2013; ACM: New York, NY, USA, 2013; pp. 45–56. [Google Scholar]
- Caiza, J.C.; Alamo, J.M.D. Programming Assignments Automatic Grading: Review of Tools and Implementations. In Proceedings of the 7th International Technology, Education and Development Conference, Valencia, Spain, 4–6 March 2013; pp. 5691–5700. [Google Scholar]
- Striewe, M.; Goedicke, M. A Review of Static Analysis Approaches for Programming Exercises. In Proceedings of the 2014 International Computer Assisted Assessment Conference, Zeist, The Netherlands, 30 June–1 July 2014; Springer: Berlin/Heidelberg, Germany, 2014; pp. 100–113. [Google Scholar]
- Staubitz, T.; Klement, H.; Renz, J.; Teusner, R.; Meinel, C. Towards practical programming exercises and automated assessment in Massive Open Online Courses. In Proceedings of the 2015 IEEE International Conference on Teaching, Assessment, and Learning for Engineering, Zhuhai, China, 10–12 December 2015; pp. 23–30. [Google Scholar]
- Arifi, S.M.; Abdellah, I.N.; Zahi, A.; Benabbou, R. Automatic Program Assessment Using Static and Dynamic Analysis. In Proceedings of the Third World Conference on Complex Systems, Marrakech, Morocco, 23–25 November 2015. [Google Scholar]
- Keuning, H.; Jeuring, J.; Heeren, B. Towards a Systematic Review of Automated Feedback Generation for Programming Exercises. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, Arequipa, Peru, 11–13 July 2016; ACM: New York, NY, USA, 2016; pp. 41–46. [Google Scholar]
- Souza, D.M.; Felizardo, K.R.; Barbosa, E.F. A Systematic Literature Review of Assessment Tools For Programming Assignments. In Proceedings of the IEEE 29th International Conference on Software Engineering Education and Training, Dallas, TX, USA, 5–6 April 2016; pp. 147–156. [Google Scholar]
- Gupta, S.; Gupta, A. E-Assessment Tools for Programming Languages: A Review. In Proceedings of the First International Conference on Information Technology and Knowledge Management, New Delhi, India, 22–23 December 2017; pp. 65–70. [Google Scholar]
- Hollingsworth, J. Automatic Graders for Programming Classes. Commun. ACM 1960, 3, 528–529. [Google Scholar] [CrossRef]
- Hegarty-Kelly, E.; Mooney, A. Analysis of an Automatic Grading System Within First Year Computer Science Programming Modules. In Proceedings of the Computing Education Practice, Durham, UK, 7 January 2021; ACM: New York, NY, USA, 2021; pp. 17–20. [Google Scholar]
- Saikkonen, R.; Malmi, L.; Korhonen, A. Fully Automatic Assessment of Programming Exercises. In Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education, Canterbury, UK, 25–27 June 2001; ACM: New York, NY, USA, 2001; pp. 133–136. [Google Scholar]
- Albluwi, I. Plagiarism in Programming Assessments: A Systematic Review. ACM Trans. Comput. Educ. 2020, 20, 1–28. [Google Scholar] [CrossRef] [Green Version]
- Novak, M. Review of Source-Code Plagiarism Detection in Academia. In Proceedings of the 39th International Convention on Information and Communication Technology, Electronics and Microelectronics, Opatija, Croatia, 30 May–3 June 2016; pp. 796–801. [Google Scholar]
- Novak, M.; Joy, M.; Kermek, D. Source-Code Similarity Detection and Detection Tools Used in Academia: A Systematic Review. ACM Trans. Comput. Educ. 2019, 19, 1–37. [Google Scholar] [CrossRef]
- Colton, D.; Fife, L.; Thompson, A. A Web-Based Automatic Program Grader. Inf. Syst. Educ. J. 2006, 4, 7. [Google Scholar]
- Alhami, I.; Alsmadi, I. Automatic Code Homework Grading Based on Concept Extraction. Int. J. Softw. Eng. Its Appl. 2011, 5, 77–84. [Google Scholar]
- Kurtukova, A.; Romanov, A.; Shelupanov, A. Source Code Authorship Identification Using Deep Neural Networks. Symmetry 2020, 12, 2044. [Google Scholar] [CrossRef]
- Karnalim, O.; Kurniawati, G. Programming Style on Source Code Plagiarism and Collusion Detection. Int. J. Comput. 2020, 19, 27–38. [Google Scholar] [CrossRef]
- Cosma, G.; Joy, M. Towards a Definition of Source-Code Plagiarism. IEEE Trans. Educ. 2008, 51, 195–200. [Google Scholar] [CrossRef]
- Hamilton, M.; Tahaghoghi, S.; Walker, C. Educating Students about Plagiarism Avoidance—A Computer Science Perspective. In Proceedings of the 2004 International Conference on Computers in Education, Melbourne, Australia, 30 November 2004; pp. 1275–1284. [Google Scholar]
- Pierce, J.; Zilles, C. Investigating Student Plagiarism Patterns and Correlations to Grades. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, Seattle, WA, USA, 8–11 March 2017; ACM: New York, NY, USA, 2017; pp. 471–476. [Google Scholar]
- Bruzual, D.; Montoya Freire, M.L.; Di Francesco, M. Automated Assessment of Android Exercises with Cloud-native Technologies. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education, Trondheim, Norway, 15–19 June 2020; ACM: New York, NY, USA, 2020; pp. 40–46. [Google Scholar]
- Khalid, A. Automatic Assessment of Java Code. Maldives Natl. J. Res. 2013, 1, 7–32. [Google Scholar]
- English, J. Automated Assessment of GUI Programs using JEWL. SIGCSE Bull. 2004, 36, 137–141. [Google Scholar] [CrossRef]
- Feng, M.Y.; McAllister, A. A Tool for Automated GUI Program Grading. In Proceedings of the 36th ASEE/IEEE Frontiers in Education Conference, San Diego, CA, USA, 27–31 October 2006. [Google Scholar]
- Hull, M.; Guerin, C.; Chen, J.; Routray, S.; Chau, D.H. Towards Automatic Grading of D3.js Visualizations. In Proceedings of the 2021 IEEE Visualization Conference, New Orleans, LA, USA, 24–29 October 2021. [Google Scholar]
- Lingling, M.; Xiaojie, Q.; Zhihong, Z.; Gang, Z.; Ying, X. An Assessment Tool for Assembly Language Programming. In Proceedings of the 2008 International Conference on Computer Science and Software Engineering, Wuhan, China, 12–14 December 2008; pp. 882–884. [Google Scholar]
- Cheang, B.; Kurnia, A.; Lim, A.; Oon, W.C. On Automated Grading of Programming Assignments in an Academic Institution. Comput. Educ. 2003, 41, 121–131. [Google Scholar] [CrossRef]
- Combéfis, S.; le Clément de Saint-Marcq, V. Teaching Programming and Algorithm Design with Pythia, a Web-Based Learning Platform. Olymp. Informat. 2012, 6, 31–43. [Google Scholar]
- Karavirta, V.; Ihantola, P. Automatic Assessment of JavaScript Exercises. In Proceedings of the 1st Educators’ Day on Web Engineering Curricula, Vienna, Austria, 5–9 July 2010. [Google Scholar]
- Keuning, H.; Heeren, B.; Jeuring, J. Code Quality Issues in Student Programs. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, Bologna, Italy, 3–5 July 2017; ACM: New York, NY, USA, 2017; pp. 110–115. [Google Scholar]
- Chen, H.M.; Chen, W.H.; Lee, C.C. An Automated Assessment System for Analysis of Coding Convention Violations in Java Programming Assignments. J. Inf. Sci. Eng. 2018, 34, 1203–1221. [Google Scholar]
- Jansen, J.; Oprescu, A.; Bruntink, M. The Impact of Automated Code Quality Feedback in Programming Education. In Proceedings of the 2017 Seminar Series on Advanced Techniques and Tools for Software Evolution, Madrid, Spain, 7–9 June 2017. [Google Scholar]
- Moghadam, J.B.; Choudhury, R.R.; Yin, H.; Fox, A. AutoStyle: Toward Coding Style Feedback at Scale. In Proceedings of the 2nd ACM Conference on Learning @ Scale, Vancouver, BC, Canada, 14–18 March 2015; ACM: New York, NY, USA, 2015; pp. 261–266. [Google Scholar]
- Yulianto, S.V.; Liem, I. Automatic Grader for Programming Assignment Using Source Code Analyzer. In Proceedings of the 2014 International Conference on Data and Software Engineering, Bandung, Indonesia, 26–27 November 2014. [Google Scholar]
- Ala-Mutka, K.; Uimonen, T.; Jarvinen, H.M. Supporting Students in C++ Programming Courses with Automatic Program Style Assessment. J. Inf. Technol. Educ. 2004, 3, 245–262. [Google Scholar] [CrossRef] [Green Version]
- Fu, X.; Peltsverger, B.; Qian, K.; Tao, L.; Liu, J. APOGEE: Automated Project Grading and Instant Feedback System for Web-Based Computing. ACM SIGCSE Bull. 2008, 40, 77–81. [Google Scholar] [CrossRef]
- Gradjanin, E.; Prazina, I.; Okanovic, V. Automatic Web Page Robustness Grading. In Proceedings of the 44th International Convention on Information, Communication and Electronic Technology, Opatija, Croatia, 27 September–1 October 2021. [Google Scholar]
- Solecki, I.; Porto, J.; da Cruz Alves, N.; Gresse von Wangenheim, C.; Hauck, J.; Borgatto, A.F. Automated Assessment of the Visual Design of Android Apps Developed with App Inventor. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, Portland, OR, USA, 11–14 March 2020; pp. 51–57. [Google Scholar]
- Stanger, N. Semi-Automated Assessment of SQL Schemas via Database Unit Testing. In Proceedings of the 26th International Conference on Computers in Education, Manila, Philippines, 26–30 November 2018. [Google Scholar]
- Moreno-León, J.; Robles, G.; Román-González, M. Dr. Scratch: Automatic Analysis of Scratch Projects to Assess and Foster Computational Thinking. RED-Rev. Educ. Distancia 2015, 46, 1–23. [Google Scholar]
- von Wangenheim, C.G.; Hauck, J.C.; Demetrio, M.F.; Pelle, R.; da Cruz Alves, N.; Barbosa, H.; Azevedo, L.F. CodeMaster—Automatic Assessment and Grading of App Inventor and Snap! Programs. Informat. Educ. 2018, 17, 117–150. [Google Scholar] [CrossRef]
- Hodgkinson, B.; Lutteroth, C.; Wünsche, B. glGetFeedback—Towards Automatic Feedback and Assessment for OpenGL 3D Modelling Assignments. In Proceedings of the 2016 International Conference on Image and Vision Computing New Zealand, Palmerston North, New Zealand, 21–22 November 2016. [Google Scholar]
- Wünsche, B.C.; Chen, Z.; Shaw, L.; Suselo, T.; Leung, K.C.; Dimalen, D.; van der Mark, W.; Luxton-Reilly, A.; Lobb, R. Automatic Assessment of OpenGL Computer Graphics Assignments. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, Larnaca, Cyprus, 2–4 July 2018; ACM: New York, NY, USA, 2018; pp. 81–86. [Google Scholar]
- Korhonen, A.; Malmi, L. Algorithm Simulation with Automatic Assessment. In Proceedings of the 5th Annual SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Education, Helsinki, Finland, 11–13 July 2000; ACM: New York, NY, USA, 2000; pp. 160–163. [Google Scholar]
- Kaila, E.; Rajala, T.; Laakso, M.J.; Salakoski, T. Automatic Assessment of Program Visualization Exercises. In Proceedings of the 8th International Conference on Computing Education Research, Koli, Finland, 13–16 November 2008; ACM: New York, NY, USA, 2008; pp. 101–104. [Google Scholar]
- Pape, S.; Flake, J.; Beckmann, A.; Jürjens, J. STAGE: A Software Tool for Automatic Grading of Testing Exercises: A Case Study Paper. In Proceedings of the 38th International Conference on Software Engineering Companion, Austin, TX, USA, 14–22 May 2016; pp. 491–500. [Google Scholar]
- Edwards, S.H. Improving Student Performance by Evaluating How Well Students Test Their Own Programs. J. Educ. Resour. Comput. 2003, 3. [Google Scholar] [CrossRef]
- Serth, S.; Staubitz, T.; Teusner, R.; Meinel, C. CodeOcean and CodeHarbor: Auto-Grader and Code Repository. In Proceedings of the 7th SPLICE Workshop at SIGCSE 2021: CS Education Infrastructure for All III: From Ideas to Practice, online, 15–16 March 2021. [Google Scholar]
- Ardimento, P.; Bernardi, M.L.; Cimitile, M. Towards automatic assessment of object-oriented programs. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings, Seoul, Korea, 5–11 October 2020; ACM: New York, NY, USA, 2020; pp. 276–277. [Google Scholar]
- Helmick, M.T. Interface-Based Programming Assignments and Automatic Grading of Java Programs. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, Dundee, Scotland, UK, 25–27 June 2007; ACM: New York, NY, USA, 2012; pp. 63–67. [Google Scholar]
- Blau, H.; Moss, J.E.B. FrenchPress Gives Students Automated Feedback on Java Program Flaws. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, Vilnius, Lithuania, 4–8 July 2015; ACM: New York, NY, USA, 2015; pp. 15–20. [Google Scholar]
- Abelló, A.; Burgués, X.; Casany, M.J.; Martín, C.; Quer, C.; Rodríguez, M.E.; Romero, O.; Urpí, T. A Software Tool for E-Assessment of Relational Database Skills. Int. J. Eng. Educ. 2016, 32, 1289–1312. [Google Scholar]
- Chandra, B.; Chawda, B.; Kar, B.; Reddy, K.V.M.; Shah, S.; Sudarshan, S. Data Generation for Testing and Grading SQL Queries. VLDB J. 2015, 24, 731–755. [Google Scholar] [CrossRef]
- Simanjuntak, H. Proposed Framework for Automatic Grading System of ER Diagram. In Proceedings of the 7th International Conference on Information Technology and Electrical Engineering, Chiang Mai, Thailand, 29–30 October 2015; pp. 141–146. [Google Scholar]
- Thomas, P.; Waugh, K.; Smith, N. Experiments in the Automatic Marking of ER-Diagrams. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, Monte de Caparica, Portugal, 27–29 June 2005; ACM: New York, NY, USA, 2005; pp. 158–162. [Google Scholar]
- Higgins, C.; Symeonidis, P.; Tsintsifas, A. The Marking System for CourseMaster. ACM SIGCSE Bull. 2002, 34, 46–50. [Google Scholar] [CrossRef]
- Wang, Z.; Xu, L. Grading Programs Based on Hybrid Analysis. In Proceedings of the International Conference on Web Information Systems and Applications, Qingdao, China, 20–22 September 2019; Springer: Berlin/Heidelberg, Germany, 2019; pp. 626–637. [Google Scholar]
- Wang, J.; Zhao, Y.; Tang, Z.; Xing, Z. Combining Dynamic and Static Analysis for Automated Grading SQL Statements. J. Netw. Intell. 2020, 5, 179–190. [Google Scholar]
- Breuker, D.M.; Derriks, J.; Brunekreef, J. Measuring Static Quality of Student Code. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education, Darmstadt, Germany, 27–29 June 2011; ACM: New York, NY, USA, 2011; pp. 13–17. [Google Scholar]
- Earle, C.B.; Åke Fredlund, L.; Hughes, J. Automatic Grading of Programming Exercises using Property-Based Testing. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, Arequipa, Peru, 11–13 July 2016; ACM: New York, NY, USA, 2016; pp. 47–52. [Google Scholar]
- AlShamsi, F.; Elnagar, A. An Automated Assessment and Reporting Tool for Introductory Java Programs. In Proceedings of the 2011 International Conference on Innovations in Information Technology, Abu Dhabi, UAE, 25–27 April 2011; pp. 324–329. [Google Scholar]
- Wang, T.; Su, X.; Ma, P.; Wang, Y.; Wang, K. Ability-Training-Oriented Automated Assessment in Introductory Programming Course. Comput. Educ. 2011, 56, 220–226. [Google Scholar] [CrossRef]
- Tremblay, G.; Labonté, E. Semi-Automatic Marking of Java Programs Using JUnit. In Proceedings of the International Conference on Education and Information Systems: Technologies and Applications, Orlando, FL, USA, July 31–August 2 2003; pp. 42–47. [Google Scholar]
- Ellsworth, C.C.; Fenwick, J.B.; Kurtz, B.L. The Quiver System. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Norfolk, VA, USA, 3–7 March 2004; ACM: New York, NY, USA, 2004; pp. 205–209. [Google Scholar]
- Jones, E.L. Grading Student Programs—A Software Testing Approach. J. Comput. Sci. Coll. 2001, 16, 185–192. [Google Scholar]
- Combéfis, S.; de Moffarts, G. Automated Generation of Computer Graded Unit Testing-Based Programming Assessments for Education. In Proceedings of the 6th International Conference on Computer Science, Engineering and Information Technology, Zurich, Switzerland, 23–24 November 2019; pp. 91–100. [Google Scholar]
- Combéfis, S.; Paques, A. Pythia reloaded: An Intelligent Unit Testing-Based Code Grader for Education. In Proceedings of the 1st Int’l Code Hunt Workshop on Educational Software Engineering, Baltimore, MD, USA, 14 July 2015; ACM: New York, NY, USA, 2015; pp. 5–8. [Google Scholar]
- Fonte, D.; da Cruz, D.; Gançarski, A.L.; Henriques, P.R. A Flexible Dynamic System for Automatic Grading of Programming Exercises. In Proceedings of the 2nd Symposium on Languages, Applications and Technologies, Porto, Portugal, 20–21 June 2013; pp. 129–144. [Google Scholar]
- Morris, D.S. Automatically Grading Java Programming Assignments via Reflection, Inheritance, and Regular Expressions. In Proceedings of the 32nd ASEE/IEEE Annual Frontiers in Education, Boston, MA, USA, 6–9 November 2002. [Google Scholar]
- Sztipanovits, M.; Qian, K.; Fu, X. The Automated Web Application Testing (AWAT) System. In Proceedings of the 46th Annual Southeast Regional Conference on XX, Auburn, AL, USA, 28–29 March 2008; ACM: New York, NY, USA, 2008; pp. 88–93. [Google Scholar]
- Gulwani, S.; Radiček, I.; Zuleger, F. Automated Clustering and Program Repair for Introductory Programming Assignments. ACM Sigplan Not. 2018, 53, 465–480. [Google Scholar] [CrossRef]
- Parihar, S.; Dadachanji, Z.; Singh, P.K.; Das, R.; Karkare, A.; Bhattacharya, A. Automatic Grading and Feedback using Program Repair for Introductory Programming Courses. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, Bologna, Italy, 3–5 July 2017; ACM: New York, NY, USA, 2017; pp. 92–97. [Google Scholar]
- Liu, X.; Wang, S.; Wang, P.; Wu, D. Automatic Grading of Programming Assignments: An Approach Based on Formal Semantics. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering: Software Engineering Education and Training, Montreal, QC, Canada, 25–31 May 2019; pp. 126–137. [Google Scholar]
- Srikant, S.; Aggarwal, V. Automatic Grading of Computer Programs: A Machine Learning Approach. In Proceedings of the 12th International Conference on Machine Learning and Applications, Miami, FL, USA, 4–7 December 2013; pp. 85–92. [Google Scholar]
- Srikant, S.; Aggarwal, V. A System to Grade Computer Programming Skills Using Machine Learning. In Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, New York, NY, USA, 24–27 August 2014; ACM: New York, NY, USA, 2014; pp. 1887–1896. [Google Scholar]
- Rogers, S.; Tang, S.; Canny, J. ACCE: Automatic Coding Composition Evaluator. In Proceedings of the 1st ACM Conference on Learning @ Scale, Atlanta, GA, USA, 4–5 March 2014; ACM: New York, NY, USA, 2014; pp. 191–192. [Google Scholar]
- Juedes, D.W. Web-Based Grading: Further Experiences and Student Attitudes. In Proceedings of the 35th ASEE/IEEE Frontiers in Education Conference, Indianopolis, IN, USA, 19–22 October 2005. [Google Scholar]
- Krusche, S.; Seitz, A. ArTEMiS: An Automatic Assessment Management System for Interactive Learning. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education, Baltimore, MD, USA, 21–24 February 2018; ACM: New York, NY, USA, 2018; pp. 284–289. [Google Scholar]
- Hattie, J.; Timperley, H. The Power of Feedback. Rev. Educ. Res. 2007, 77, 81–112. [Google Scholar] [CrossRef]
- Shute, V.J. Focus on Formative Feedback. Rev. Educ. Res. 2008, 78, 153–189. [Google Scholar] [CrossRef]
- Combéfis, S.; Beresnevičius, G.; Dagienė, V. Learning Programming through Games and Contests: Overview, Characterisation and Discussion. Olymp. Informat. 2016, 10, 39–60. [Google Scholar] [CrossRef]
- Falkner, N.; Vivian, R.; Piper, D.; Falkner, K. Increasing the Effectiveness of Automated Assessment by Increasing Marking Granularity and Feedback Units. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, Atlanta, GA, USA, 5–8 March 2014; ACM: New York, NY, USA, 2014; pp. 9–14. [Google Scholar]
- Hull, M.; Powell, D.; Klein, E. Infandango: Automated Grading for Student Programming. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education, Darmstadt, Germany, 27–29 June 2011; ACM: New York, NY, USA, 2011; p. 330. [Google Scholar]
- Cerioli, M.; Cinelli, P. GRASP: Grading and Rating ASsistant Professor. In Proceedings of the ACM-IFIP Informatics Education Europe III Conference, Venice, Italy, 4–5 December 2008; pp. 37–51. [Google Scholar]
- Blumenstein, M.; Green, S.; Nguyen, A.; Muthukkumarasamy, V. GAME: A Generic Automated Marking Environment for Programming Assessment. In Proceedings of the 2004 International Conference on Information Technology: Coding and Computing, Las Vegas, NV, USA, 5–7 April 2004; pp. 212–216. [Google Scholar]
- Allen, D.; Tanner, K. Rubrics: Tools for Making Learning Goals and Evaluation Criteria Explicit for Both Teachers and Learners. CBE Life Sci. Educ. 2006, 5, 197–203. [Google Scholar] [CrossRef] [Green Version]
- Stegeman, M.; Barendsen, E.; Smetsers, S. Designing a Rubric for Feedback on Code Quality in Programming Courses. In Proceedings of the 16th Koli Calling International Conference on Computing Education Research, Koli, Finland, 24–27 November 2016; ACM: New York, NY, USA, 2016; pp. 160–164. [Google Scholar]
- Becker, K. Grading Programming Assignments Using Rubrics. In Proceedings of the 8th Annual Conference on Innovation and Technology in Computer Science Education, Thessaloniki, Greece, 30 June–2 July 2003; ACM: New York, NY, USA, 2003; p. 253. [Google Scholar]
- Zhang, J.K.; Lin, C.H.; Hovik, M.; Bricker, L.J. GitGrade: A Scalable Platform Improving Grading Experiences. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, Portland, OR, USA, 11–14 March 2020; ACM: New York, NY, USA, 2020; p. 1284. [Google Scholar]
- Hristova, M.; Misra, A.; Rutter, M.; Mercuri, R. Identifying and Correcting Java Programming Errors for Introductory Computer Science Students. ACM SIGCSE Bull. 2003, 35, 153–156. [Google Scholar] [CrossRef]
- Blok, T.; Fehnker, A. Automated Program Analysis for Novice Programmers. In Proceedings of the 3rd International Conference on Higher Education Advances, Valencia, Spain, 21–23 June 2017. [Google Scholar]
- Combéfis, S.; Schils, A. Automatic Programming Error Class Identification with Code Plagiarism-Based Clustering. In Proceedings of the 2nd Int’l Code Hunt Workshop on Educational Software Engineering, Seattle, WA, USA, 18 November 2016; ACM: New York, NY, USA, 2016; pp. 1–6. [Google Scholar]
- Singh, R.; Gulwani, S.; Solar-Lezama, A. Automated Feedback Generation for Introductory Programming Assignments. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, Seattle, WA, USA, 16–19 June 2013; ACM: New York, NY, USA, 2013; pp. 15–26. [Google Scholar]
- Juedes, D.W. Experiences in Web-Based Grading. In Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference, Westminster, CO, USA, 5–8 November 2003. [Google Scholar]
- Rump, A.; Fehnker, A.; Mader, A. Automated Assessment of Learning Objectives in Programming Assignments. In Proceedings of the 17th International Conference on Intelligent Tutoring Systems, Athens, Greece, 7–11 June 2021; Springer: Berlin/Heidelberg, Germany, 2021; pp. 299–309. [Google Scholar]
- del Pino, J.C.R.; Rubio-Royo, E.; Hernández-Figueroa, Z.J. A Virtual Programming Lab for Moodle with automatic assessment and anti-plagiarism features. In Proceedings of the 2012 International Conference on e-Learning, e-Business, Enterprise Information Systems, & e-Government, Las Vegas, NV, USA, 16–19 July 2012. [Google Scholar]
- Choudhury, R.R.; Yin, H.; Moghadam, J.; Fox, A. AutoStyle: Toward Coding Style Feedback at Scale. In Proceedings of the 19th ACM Conference on Computer Supported Cooperative Work and Social Computing Companion, San Francisco, CA, USA, 26 February–2 March 2016; ACM: New York, NY, USA, 2016; pp. 21–24. [Google Scholar]
- Joy, M.; Griffiths, N.; Boyatt, R. The BOSS Online Submission and Assessment System. J. Educ. Resour. Comput. 2005, 5, 2–es. [Google Scholar] [CrossRef] [Green Version]
- Delgado-Pérez, P.; Medina-Bulo, I. Customisable and Scalable Automated Assessment of C/C++ programming assignments. Comput. Appl. Eng. Educ. 2020, 28, 1449–1466. [Google Scholar] [CrossRef]
- Foxley, E.; Higgins, C.; Hegazy, T.; Symeonidis, P.; Tsintsifas, A. The CourseMaster CBA System: Improvements over Ceilidh. In Proceedings of the 5th International Computer Assisted Assessment Conference, Loughborough, UK, 2–3 July 2001. [Google Scholar]
- Delev, T.; Gjorgjevikj, D. E-Lab: Web Based System for Automatic Assessment of Programming Problems. In Proceedings of the ICT Innovations 2012 Conference, Ohrid, North Macedonia, 12–15 September 2012; pp. 75–84. [Google Scholar]
- Blumenstein, M.; Green, S.; Nguyen, A.; Muthukkumarasamy, V. An Experimental Analysis of GAME: A Generic Automated Marking Environment. ACM SIGCSE Bull. 2004, 36, 67–71. [Google Scholar] [CrossRef]
- Clegg, B.; Villa-Uriol, M.C.; McMinn, P.; Fraser, G. Gradeer: An Open-Source Modular Hybrid Grader. In Proceedings of the 43rd ACM/IEEE International Conference on Software Engineering: Software Engineering Education and Training, Madrid, Spain, 25–28 May 2021. [Google Scholar]
- Morris, D.S. Automatic Grading of Student’s Programming Assignments: An Interactive Process and Suite of Programs. In Proceedings of the 33rd Annual Frontiers in Education, Westminster, CO, USA, 5–8 November 2003. [Google Scholar]
- Derval, G.; Gego, A.; Reinbold, P.; Frantzen, B.; Roy, P.V. Automatic grading of programming exercises in a MOOC using the INGInious platform. In Proceedings of the European MOOC Stakeholder Summit 2015, Mons, Belgium, 18–20 May 2015; pp. 86–91. [Google Scholar]
- Insa, D.; Silva, J. Semi-Automatic Assessment of Unrestrained Java Code: A Library, a DSL, and a Workbench to Assess Exams and Exercises. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, Vilnius, Lithuania, 4–8 July 2015; ACM: New York, NY, USA, 2015; pp. 39–44. [Google Scholar]
- Insa, D.; Silva, J. Automatic Assessment of Java Code. Comput. Lang. Syst. Struct. 2018, 53, 59–72. [Google Scholar] [CrossRef]
- Jackson, D. A Semi-Automated Approach to Online Assessment. ACM SIGCSE Bull. 2000, 32, 164–167. [Google Scholar] [CrossRef]
- Chen, H.M.; Chen, W.H.; Hsueh, N.L.; Lee, C.C.; Li, C.H. ProgEdu—An Automatic Assessment Platform for Programming Courses. In Proceedings of the 2017 International Conference on Applied System Innovation, Sapporo, Japan, 13–17 May 2017; pp. 173–176. [Google Scholar]
- Colton, D.; Fife, L.; Winters, R.; Nilson, J.; Booth, K. Building a Computer Program Grader. Inf. Syst. Educ. J. 2005, 3, 1–16. [Google Scholar]
- Edwards, S.H.; Perez-Quinones, M.A. Web-CAT: Automatically Grading Programming Assignments. In Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education, Madrid, Spain, 30 June–2 July 2008; ACM: New York, NY, USA, 2008; p. 328. [Google Scholar]
- Chen, H.M.; Nguyen, B.A.; Yan, Y.X.; Dow, C.R. Analysis of Learning Behavior in an Automated Programming Assessment Environment: A Code Quality Perspective. IEEE Access 2020, 8, 167341–167354. [Google Scholar] [CrossRef]
- Pribela, I.; Pracner, D.; Budimac, Z. Bringing Together Manual and Automated Code Assessment. In Proceedings of the 2015 AIP Conference 1648, Rhodes, Greece, 22–28 September 2014. [Google Scholar]
- Edwards, S.H. Using Software Testing to Move Students From Trial-and-Error to Reflection-in-Action. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Norfolk, VA, USA, 3–7 March 2004; ACM: New York, NY, USA, 2004; pp. 26–30. [Google Scholar]
- Schrittwieser, S.; Katzenbeisser, S.; Kinder, J.; Merzdovnik, G.; Weippl, E. Protecting Software through Obfuscation: Can It Keep Pace with Progress in Code Analysis. ACM Comput. Surv. 2017, 49, 1–37. [Google Scholar] [CrossRef]
- Pettit, R.; Prather, J. Automated Assessment Tools: Too Many Cooks, not Enough Collaboration. J. Comput. Sci. Coll. 2017, 32, 113–121. [Google Scholar]
Method/Technique | Code Syntax | Anti-Plagiarism | Code Semantic | Code Quality |
---|---|---|---|---|
Static approach |
|
| ||
Dynamic approach |
| |||
Hybrid approach |
| |||
Modelling |
| |||
Artificial Intelligence |
|
Method/Technique | Code Syntax | Code Semantic | Code Performance | Code Quality |
---|---|---|---|---|
Status |
|
|
| |
Mark | ||||
Rubric |
|
|
| |
Counterexample |
|
| ||
Comment |
|
|
|
|
Report |
|
Tool | References | Kind of Tool or System | Code and Program Aspects | Methods and Techniques | Feedback | Programming Languages | Anti-Plagiarism |
---|---|---|---|---|---|---|---|
ACCE | [87] | Script | Quality (style) | AST edit distance and clustering | – | Python | – |
Apollo | [106] | Program | Learning objective | Static analyses and metrics (PMD) | Report | Processing | – |
ArTEMiS | [89] | Web-based | Semantic | Unit-testing | Report | Agnostic | – |
AutoGrader | [61] | Program | Semantic and quality | Unit-testing and metrics (PMD) | Report | Mainly Java | – |
AutoGrader | [84] | Python program | Semantic | Symbolic execution | Counterexample | – | – |
AutoLEP | [73] | Program | Syntax and semantic | Dependence graph similarity and test-based | Counterexample and report | – | – |
Automata | [85,86] | Web-based | Semantic and quality | Test-based and machine learning | Mark and report | – | – |
AutoStyle | [44,108] | GUI program | Quality (style) | Edit distance | Status and comment | – | – |
AWAT | [81] | Program | Semantic | Test-based (web-browser automation) | – | Agnostic | – |
BOSS | [109] | Program and Web-based | Semantic and quality | Unit-testing and metrics | Mark and report | Mainly Java | Sherlock |
CAC++ | [110] | C++ library | Syntax | Static analyses | Comment | C, C++ | |
CodeMaster | [49,52] | Web-based | Syntax | Keyword search | Mark, badge and rubric | App Inventor and Snap! projects | – |
CodeOcean | [59] | Web-based | Syntax, semantic and quality | Unit-testing and linter | Comment | Agnostic | – |
CourseMaster | [67,111] | – | Syntax, semantic and quality | Static analyses and test-based | Mark and comment | Java and C++ | – |
eGrader | [72] | Program | Syntax, semantic and quality | Unit-testing, graph similarity and metrics | Mark, comment and report | Java | – |
E-Lab | [112] | Web-based | Semantic | Test-based | – | C, C++ and Java | MOSS |
Fitchfork | [11] | Web-based | Semantic and performance | Unit-testing | Comment and report | Agnostic | – |
FrenchPress | [62] | Eclipse plug-in | Syntax and quality | Static analyses | Comment | Java | – |
GAME | [96,113] | GUI program | Syntax, semantic and quality | Static analyses, input–output and metrics | Mark and report | Java, C and C++ | No |
GitGrade | [100] | Web-based | Syntax, semantic and quality | Script and manual review | Mark, rubrics, comment | Agnostic | MOSS |
Gradeer | [114] | CLI program | Syntax, semantic and quality | Script, unit testing, style analyses and manual review | Mark and comment | Java | – |
GradeIT | [83] | Prutor plug-in | Semantic | Program repair and unit testing | Mark and comment | C | – |
GRASP | [95] | Program | Semantic | Unit-testing | Mark | .NET framework languages | – |
GUI_Grader | [35] | Backend program | Semantic | Test-based and user interaction simulation | Mark and report | Java | – |
HoGG | [80,115] | Program | Semantic and quality | Test-based | Report | Java | – |
Infandango | [94] | Web-based | Semantic | Unit-testing | Mark and counterexample | Java | – |
INGInious | [116] | Backend server | Semantic | Unit-testing | Pass-or-fail and comment | Agnostic | – |
JavAssess | [117,118] | Java library | Syntax and semantic | AST analyses and test-based | Mark | Java | |
JEWL | [34] | Java library | Semantic | Unit-testing | – | Java | – |
js-assess | [40] | Web-based (client-only) | Syntax, semantic, quality and performance | Unit testing, linter, style analyses and metrics | Report | JavaScript | – |
mark44 | [119] | UNIX shell script | Syntax, semantic and quality | Input-output, metrics and manual review | Mark and report | C | – |
OCETJ | [74] | Web-based | Semantic | Unit-testing | Comment | Java | – |
Online Judge | [38] | Program | Semantic, performance and quality | Test-based | Status and report | – | Yes |
ProgEdu | [42,120] | Web-based | Syntax, semantic and quality | Style analyses (CheckStyle) | Report | Java | Yes |
ProtoAPOGEE | [47] | Web-based CMS | Semantic and quality | Test-based (web-browser automation) | Mark, report and counterexample | Agnostic | – |
Pythia | [39,77,78] | Backend server | Syntax, semantic and quality | Input-output, unit testing and script | Mark, comment and report | Agnostic | – |
PSGE | [76] | Unix-based program | Semantic | Test-based | Report and manual | Agnostic | – |
Quiver | [75] | Web-based and GUI program | Syntax and semantic | Unit-testing | Comment | C++, Java and MIPS Assembly Language | – |
SCAGrader | [45] | Web-based | Syntax | Style analyses | Mark | C, Java and PHP | – |
Scheme-Robo | [21] | Email-based | Syntax and semantic | Structure analyses, input–output (value) and unit testing (fixed and random) | Mark and comment | Scheme | Yes |
SPT | [60] | Eclipse plug-in | Quality | – | Report | Java | – |
STAGE | [57] | Moodle plugin | Semantic and quality | Metrics | Mark | Java | – |
Style++ | [46] | Program (CLI and GUI) | Quality | Style analyses | Mark and comment | C++ | – |
VPL | [107] | Moodle plugin | Dynamic | Input-output, unit testing, style analyses and test coverage | Mark, comment and report | Agnostic | |
WBGP | [88,105] | Software | Syntax, semantic and quality | Script and manual review | Mark, comment and report | Agnostic | MOSS |
WebBot | [25,121] | Web-Based | Semantic | Input-output | Counterexample and comment | Multi-language | History comparison |
Web-CAT | [58,122] | Program | Semantic and quality | Unit-testing and test coverage | Mark and report | Agnostic | – |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Combéfis, S. Automated Code Assessment for Education: Review, Classification and Perspectives on Techniques and Tools. Software 2022, 1, 3-30. https://doi.org/10.3390/software1010002
Combéfis S. Automated Code Assessment for Education: Review, Classification and Perspectives on Techniques and Tools. Software. 2022; 1(1):3-30. https://doi.org/10.3390/software1010002
Chicago/Turabian StyleCombéfis, Sébastien. 2022. "Automated Code Assessment for Education: Review, Classification and Perspectives on Techniques and Tools" Software 1, no. 1: 3-30. https://doi.org/10.3390/software1010002