Deduplicating and Ranking Solution Programs for Suggesting Reference Solutions
arXiv:2307.07940 · doi:10.1145/3634814.3634828
Abstract
Referring to solution programs written by other users is helpful for learners in programming education. However, current online judge systems just list all solution programs submitted by users for references, and the programs are sorted based on the submission date and time, execution time, or user rating, ignoring to what extent the programs can be helpful to be referenced. In addition, users struggle to refer to a variety of solution approaches since there are too many duplicated and near-duplicated programs. To motivate learners to refer to various solutions to learn better solution approaches, in this paper, we propose an approach to deduplicate and rank common solution programs in each programming problem. Inspired by the nature that the many-duplicated program adopts a more common approach and can be a general reference, we remove the near-duplicated solution programs and rank the unique programs based on the duplicate count. The experiments on the solution programs submitted to a real-world online judge system demonstrate that the number of programs is reduced by 60.20%, whereas the baseline only reduces by 29.59% after the deduplication, meaning that users only need to refer to 39.80% of programs on average. Furthermore, our analysis shows that top-10 ranked programs cover 29.95% of programs on average, indicating that users can grasp 29.95% of solution approaches by referring to only 10 programs. The proposed approach shows the potential of reducing the learners' burden of referring to too many solutions and motivating them to learn a variety of solution approaches.
arXiv comment7 pages, 5 figures, accepted to ASSE 2023
References in corpus (6)
- CodeGen: An Open Large Language Model for Code with Multi-Turn Program Synthesis
- A Survey on Online Judge Systems and Their Applications
- InCoder: A Generative Model for Code Infilling and Synthesis
- Aroma: Code Recommendation via Structural Code Search
- SantaCoder: don't reach for the stars!
- Senatus -- A Fast and Accurate Code-to-Code Recommendation Engine