The Failure of Plagiarism Detection in Competitive Programming
Ethan Dickey
TL;DR
The paper investigates why traditional plagiarism detection fails in competitive programming, especially with the rise of genAI. Drawing on seven semesters of CP1 at Purdue and a redesigned CP1/CP2/CP3 sequence, it analyzes automated tools (Moss, Kattis), manual review, and oral interviews, highlighting their complementary strengths and gaps. It argues for a multi-faceted approach that combines improved detectors, stylometry-based authorship verification, and mastery-based, authentic assessments to deter cheating and better ensure code originality. The findings underscore the evolving landscape where AI-generated code can bypass conventional checks, underscoring the need for pedagogy-driven solutions and ongoing methodological innovation to preserve academic integrity in programming education.
Abstract
Plagiarism in programming courses remains a persistent challenge, especially in competitive programming contexts where assignments often have unique, known solutions. This paper examines why traditional code plagiarism detection methods frequently fail in these environments and explores the implications of emerging factors such as generative AI (genAI). Drawing on the author's experience teaching a Competitive Programming 1 (CP1) course over seven semesters at Purdue University (with $\approx 100$ students each term) and completely redesigning the CP1/2/3 course sequence, we provide an academically grounded analysis. We review literature on code plagiarism in computer science education, survey current detection tools (Moss, Kattis, etc.) and methods (manual review, code-authorship interviews), and analyze their strengths and limitations. Experience-based observations are presented to illustrate real-world detection failures and successes. We find that widely-used automated similarity checkers can be thwarted by simple code transformations or novel AI-generated code, while human-centric approaches like oral interviews, though effective, are labor-intensive. The paper concludes with opinions and preliminary recommendations for improving academic integrity in programming courses, advocating for a multi-faceted approach that combines improved detection algorithms, mastery-based learning techniques, and authentic assessment practices to better ensure code originality.
