Phát hiện các bài nộp có sự hỗ trợ của AI trong lập trình nhập môn thông qua bất thường mã

Oscar Karnalim1, Hapnes Toba1, Meliana Christianti Johan1
1Maranatha Christian University, Bandung, Indonesia

Tóm tắt

Trí tuệ nhân tạo (AI) có thể thúc đẩy giáo dục nhưng cũng có thể bị lạm dụng để xâm phạm tính toàn vẹn học thuật. Các mô hình ngôn ngữ lớn như ChatGPT có khả năng tạo ra các giải pháp cho các bài đánh giá cá nhân mà đáng lẽ phải được hoàn thành một cách độc lập. Có một số công cụ phát hiện tự động cho công việc được hỗ trợ bởi AI. Tuy nhiên, hầu hết chúng không được dành riêng cho lập trình và/hoặc dựa vào các bài nộp đã có của sinh viên (tức là, phương pháp học tập). Bài báo này trình bày một công cụ phát hiện đơn giản cho mã có sự hỗ trợ của AI, dựa vào sự bất thường của mã. Không cần các bài nộp của sinh viên đã có. Công cụ phát hiện sử dụng 34 đặc điểm bao gồm các hằng số, cấu trúc dữ liệu, nhánh, vòng lặp, hàm và các yếu tố khác. Theo đánh giá của chúng tôi trên ba tập dữ liệu, công cụ phát hiện và biến thể chuẩn hóa của nó có hiệu quả với độ chính xác hàng đầu 89%. Tuy nhiên, việc cho phép thảo luận giữa các đồng nghiệp và truy cập internet có thể làm giảm hiệu quả xuống 25%. Hiệu quả cũng giảm xuống khoảng mức tương tự khi sự hỗ trợ của AI chỉ được sử dụng cho một số nhiệm vụ, không phải toàn bộ bài nộp. Mặc dù các công cụ phát hiện của chúng tôi nên được sử dụng cẩn thận do những hạn chế, nhưng nó cho thấy đủ rằng sự bất thường mã có thể là đặc trưng để xác định công việc được hỗ trợ bởi AI. Giảng viên có thể bắt đầu tìm kiếm bất thường mã trong các bài nộp để xác định như vậy.

Từ khóa

#Trí tuệ nhân tạo #phát hiện mã #tính toàn vẹn học thuật #lập trình #bất thường mã

Tài liệu tham khảo

Allen, J.M., Vahid, F., Downey, K., Edgcomb, A.D. (2018). Weekly programs in a cs1 class: experiences with auto-graded many-small programs (msp). Asee annual conference & exposition. Alon, U., Zilberstein, M., & Levy, O. (2019). code2vec: Learning distributed representations of code. ACM on Programming Languages, 3, 1–29. Aurelia, S., Thanuja, R., Chowdhury, S., Hu, Y.C. (2023). Ai-based online proctoring: a review of the state-of-the-art techniques and open challenges. Multimedia Tools and Applications, 1–23 Behera, C. K., & Bhaskari, D. L. (2015). Different obfuscation techniques for code protection. Procedia Computer Science, 70, 757–763. Bhattathiripad, P.V. (2012). Software piracy forensics: A proposal for incorporating dead codes and other programming blunders as important evidence in afc test. 2012 ieee 36th annual computer software and applications conference workshops (pp. 206–212) Budiman, A., & Karnalim, O. (2019). Automated hints generation for investigating source code plagiarism and identifying the culprits on in-class individual programming assessment. Computers, 8(1), 11. Burrows, S., & Tahaghoghi, S.M. (2007). Source code authorship attribution using n-grams. Twelth australasian document computing symposium, melbourne, australia, rmit university (pp. 32–39) Burrows, S., Uitdenbogerd, A.L., Turpin, A. (2009). Application of information retrieval techniques for source code authorship attribution. Database systems for advanced pplications: 14th international conference, dasfaa 2009, brisbane, australia, april 21-23, 2009. proceedings 14 (pp. 699–713) Byun, J., Park, J., Oh, A. (2020). Detecting contract cheaters in online programming classes with keystroke dynamics. Seventh acm conference on learning scale (pp. 273-276). ACM Carlini, N., Tramer, F., Wallace, E., Jagielski, M., Herbert-Voss, A., Lee, K., ... et al. (2021). Extracting training data from large language models. Usenix security symposium (vol. 6). Cheers, H., Lin, Y., & Smith, S. P. (2021). Academic source code plagiarism detection by measuring program behavioral similarity. IEEE Access, 9, 50391–50412. Cheers, H., Lin, Y., & Yan, W. (2023). Identifying plagiarised programming assignments with detection tool consensus. Informatics in Education, 22(1), 1–19. Chen, L., Chen, P., & Lin, Z. (2020). Artificial intelligence in education: A review. IEEE Access, 8, 75264–75278. Clear, A., Parrish, A.S., Impagliazzo, J., Zhang, M. (2019). Computing curricula 2020: Introduction and community engagement. 50th acm technical symposium on computer science ducation. (p. 653-654). New York, NY, USA:ACM. Cosma, G., & Joy, M. (2008). Towards a definition of source-code plagiarism. IEEE Transactions on Education, 51(2), 195–200. Croft, W.B., Metzler, D., Strohman, T. (2010). Search Engines: Information Retrieval in Practice. Daly, C., & Horgan, J. (2005). A technique for detecting plagiarism in computer code. The Computer Journal, 48(6), 662–666. Dendir, S., & Maxwell, R. S. (2020). Cheating in online courses: Evidence from online proctoring. Computers in Human Behavior Reports, 2, 100033. Flores, E., Barrón-Cedeño, A., Moreno, L., & Rosso, P. (2015). Cross-language source code re-use detection using latent semantic analysis. Journal of Universal Computer Science, 21(13), 1708–1725. Frankel, S.F., & Ghosh, K. (2021). Machine learning approaches for authorship attribution using source code stylometry. 2021 ieee international conference on big data (big data) (pp. 3298–3304) Frantzeskou, G., Stamatatos, E., Gritzalis, S., Katsikas, S. (2006). Effective identification of source code authors using byte-level information. 28th international onference on software engineering (p. 893-896). New York, NY, USA: Association for Computing Machinery. Fraser, R. (2014). Collaboration, collusion and plagiarism in computer science coursework. Informatics in Education, 13(2), 179–195. Fu, D., Xu, Y., Yu, H., & Yang, B. (2017). WASTK: a weighted abstract syntax tree kernel method for source code plagiarism detection. Scientific Programming, 2017, 1–8. Gehrmann, S., Strobelt, H., Rush, A.M. (2019). Gltr: Statistical detection and visualization of generated text. arXiv Halak, B., & El-Hajjar, M. (2016). Plagiarism detection and prevention techniques in engineering education. 11th european workshop on microelectronics education (pp. 1–3). Hayes, J. H., & Offutt, J. (2010). Recognizing authors: an examination of the consistent programmer hypothesis. Software Testing, Verification and Reliability, 20(4), 329–356. Herrera, G., Nunez-Del-Prado, M., Lazo, J.G. (2019). Through an agnostic programming languages methodology for plagiarism detection in engineering coding courses. Third ieee world engineering education conference. Hoq, M., Shi, Y., Leinonen, J., Babalola, D., Lynch, C., Akram, B. (2023). Detecting chatgpt-generated code in a cs1 course. Workshop on empowering education with llms - the next-gen interface and content generation. Hoq, M., Uddin, M. N., & Park, S. B. (2021). Vocal feature extraction-based artificial intelligent model for parkinson’s disease detection. Diagnostics, 11(6), 1076. Hosam, E., Hadhoud, M., Atiya, A., & Fayek, M. (2022). Classification feature sets for source code plagiarism detection in java. Journal of Engineering and Applied Science, 69(1), 1–18. Ibrahim, H., Liu, F., Asim, R., Battu, B., Benabderrahmane, S., Alhafni, B., et al. (2023). Perception, performance, and detectability of conversational artificial intelligence across 32 niversity courses. Scientific Reports, 13(1), 12187. Joy, M., & Luck, M. (1999). Plagiarism in programming assignments. IEEE Transactions on Education, 42(2), 129–133. Kalgutkar, V., Kaur, R., Gonzalez, H., Stakhanova, N., Matyukhina, A. (2019). Code authorship attribution: methods and challenges. ACM Computing Survey, 52(1) Kalgutkar, V., Stakhanova, N., Cook, P., Matyukhina, A. (2018). Android authorship attribution through string analysis. 13th international conference on availability, reliability and security (pp. 1–10) Karnalim, O., Simon, Chivers, W. (2019). Similarity detection techniques for academic source code plagiarism and collusion: a review. International conference on engineering, technology and education (p. 1-6). Lancaster, T. (2018). Academic integrity for computer science instructors. Higher education computer science (pp. 59–71) Lancaster, T., & Clarke, R. (2016). Contract cheating: The outsourcing of assessed student work. Handbook of academic integrity, 1, 639–654. Li, X., Chang, K.m., Yuan, Y., Hauptmann, A. (2015). Massive open online proctor: Protecting the credibility of moocs certificates. Proceedings of the 18th acm conference on computer supported ooperative work & social computing (pp. 1129–1137). Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., ..., Stoyanov, V. (2019). Roberta: A robustly optimized bert pretraining approach. arXiv Ljubovic, V., & Pajic, E. (2020). Plagiarism detection in computer programming using feature extraction from ultra-fine-grained repositories. IEEE Access, 8, 96505–96514. Mann, S., & Frew, Z. (2006). Similarity and originality in code: plagiarism and normal variation in student assignments. Eighth australasian conference on computing education (pp. 143–150) Moradi Dakhel, A., Majdinasab, V., Nikanjam, A., Khomh, F., & Desmarais, M. C. (2023). Github copilot ai pair programmer: Asset or liability? Journal of Systems and Software, 203, 111734. Nowak, A., Lukowicz, P., & Horodecki, P. (2018). Assessing artificial intelligence for humanity: Will ai be the our biggest ever advance? or the biggest threat [opinion]. IEEE Technology and Society Magazine, 37(4), 26–34. Orenstrakh, M.S., Karnalim, O., Suarez, C.A., Liut, M. (2023). Detecting llm-generated text in computing education: A comparative study for chatgpt cases. Ottenstein, K. J. (1976). An algorithmic approach to the detection and prevention of plagiarism. ACM SIGCSE Bulletin, 8(4), 30–41. Parr, T. (2013). The Definitive ANTLR 4 Reference. Prather, J., Denny, P., Leinonen, J., Becker, B.A., Albluwi, I., Craig, M., ..., et al. (2023). The robots are here: Navigating the generative ai revolution in computing education. arXiv preprint arXiv:2310.00658 Prechelt, L., Malpohl, G., & Philippsen, M. (2002). Finding plagiarisms among a set of programs with JPlag. Journal of Universal Computer Science, 8(11), 1016–1038. Prentice, F. M., & Kinden, C. E. (2018). Paraphrasing tools, language translation tools and plagiarism: an exploratory study. International Journal for Educational Integrity, 14, 11. Simon, Mason, R., Crick, T., Davenport, J.H., Murphy, E. (2018). Language choice in introductory programming courses at Australasian and UK universities. 49th acm technical symposium on computer science education (pp. 852–857) Solaiman, I., Brundage, M., Clark, J., Askell, A., Herbert-Voss, A., Wu, J., Wang, J. (2019). Release strategies and the social impacts of language models. OpenAI. Sulistiani, L., & Karnalim, O. (2019). ES-Plag: efficient and sensitive source code plagiarism detection tool for academic environment. Computer Applications in Engineering Education, 27(1), 166–182. Toba, H., Karnalim, O., Johan, M.C., Tada, T., Djajalaksana, Y.M., Vivaldy, T. (2023) Inappropriate benefits and identification of chatgpt misuse in programming tests: A controlled experiment. ArXiv Ullah, F., Jabbar, S., & Al-Turjman, F. (2020). Programmers’ de-anonymization using a hybrid approach of abstract syntax tree and deep learning. Technological Forecasting and Social Change, 159, 120186. Ullah, F., Wang, J., Jabbar, S., Al-Turjman, F., & Alazab, M. (2019). Source code authorship attribution using hybrid approach of program dependence graph and deep learning model. IEEE Access, 7, 141987–141999. Vamplew, P., & Dermoudy, J. (2010). An anti-plagiarism editor for software development courses. Seventh australasian conference on computing education (pp. 83–90). Wang, Y., Jin, D., Gong, Y. (2019). A diversified feature extraction approach for program similarity analysis. Second international conference on software engineering and information management (p. 96–101). Wang, Z., Feng, Z., Tian, Z., Chen, L. (2020). Binary code authorship identification with neural representation learning. The international conference on natural computation, fuzzy systems and knowledge discovery (pp. 1407–1415). Zhang, C., Wang, S., Wu, J., Niu, Z. (2017). Authorship identification of source codes. Web and big data: First international joint conference, apweb-waim 2017, beijing, china, july 7–9, 2017, proceedings, part i 1 (pp. 282–296). Zhang, J., Wang, X., Zhang, H., Sun, H., Wang, K., Liu, X. (2019) A novel neural source code representation based on abstract syntax tree. 2019 ieee/acm 41st international conference on software engineering (icse) (pp. 783–794).