Code Plagiarism Checking Function and Its Application for Code Writing Problem in Java Programming Learning Assistant System
-
Published:2024-01-17
Issue:1
Volume:3
Page:46-62
-
ISSN:2813-2203
-
Container-title:Analytics
-
language:en
-
Short-container-title:Analytics
Author:
Htet Ei Ei1, Wai Khaing Hsu1, Aung Soe Thandar1, Funabiki Nobuo1, Lu Xiqin1, Kyaw Htoo Htoo Sandi2, Kao Wen-Chung3
Affiliation:
1. Graduate School of Natural Science and Technology, Okayama University, Okayama 700-8530, Japan 2. Department of Computer and Information Science, Tokyo University of Agriculture and Technology, Tokyo 184-8588, Japan 3. Department of Electrical Engineering, National Taiwan Normal University, Taipei 106, Taiwan
Abstract
A web-based Java programming learning assistant system (JPLAS) has been developed for novice students to study Java programming by themselves while enhancing code reading and code writing skills. One type of the implemented exercise problem is code writing problem (CWP), which asks students to create a source code that can pass the given test code. The correctness of this answer code is validated by running them on JUnit. In previous works, a Python-based answer code validation program was implemented to assist teachers. It automatically verifies the source codes from all the students for one test code, and reports the number of passed test cases by each code in the CSV file. While this program plays a crucial role in checking the correctness of code behaviors, it cannot detect code plagiarism that can often happen in programming courses. In this paper, we implement a code plagiarism checking function in the answer code validation program, and present its application results to a Java programming course at Okayama University, Japan. This function first removes the whitespace characters and the comments using the regular expressions. Next, it calculates the Levenshtein distance and similarity score for each pair of source codes from different students in the class. If the score is larger than a given threshold, they are regarded as plagiarism. Finally, it outputs the scores as a CSV file with the student IDs. For evaluations, we applied the proposed function to a total of 877 source codes for 45 CWP assignments submitted from 9 to 39 students and analyzed the results. It was found that (1) CWP assignments asking for shorter source codes generate higher scores than those for longer codes due to the use of test codes, (2) proper thresholds are different by assignments, and (3) some students often copied source codes from certain students.
Reference24 articles.
1. Aung, S.T., Funabiki, N., Aung, L.H., Htet, H., Kyaw, H.H.S., and Sugawara, S. (2022, January 9–11). An implementation of Java programming learning assistant system platform using Node.js. Proceedings of the International Conference on Information and Education Technology, Matsue, Japan. 2. (2023, November 04). Node.js. Available online: https://nodejs.org/en. 3. (2023, November 04). Docker. Available online: https://www.docker.com/. 4. Wai, K.H., Funabiki, N., Aung, S.T., Mon, K.T., Kyaw, H.H.S., and Kao, W.-C. (2023, January 18–20). An implementation of answer code validation program for code writing problem in java programming learning assistant system. Proceedings of the International Conference on Information and Education Technology, Fujisawa, Japan. 5. Ala-Mutka, K. (2004). Problems in Learning and Teaching Programming. A Literature Study for Developing Visualizations in the Codewitz-Minerva Project, Tampere University of Technology.
|
|