Deduplicating and Ranking Solution Programs for Suggesting Reference Solutions

07/16/2023
by   Atsushi Shirafuji, et al.
0

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 after the deduplication, meaning that users only need to refer to 39.80 programs on average. Furthermore, our analysis shows that top-10 ranked programs cover 29.95 29.95 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.

READ FULL TEXT
research
02/13/2022

Automated Test Generation for Scratch Programs

The importance of programming education has lead to dedicated educationa...
research
02/15/2021

LitterBox: A Linter for Scratch Programs

Creating programs with block-based programming languages like Scratch is...
research
08/29/2022

Common Patterns in Block-Based Robot Programs

Programmable robots are engaging and fun to play with, interact with the...
research
09/09/2020

Search-based Testing for Scratch Programs

Block-based programming languages enable young learners to quickly imple...
research
08/21/2020

Implementing backjumping by throw/1 and catch/3 of Prolog

We discuss how to implement backjumping (or intelligent backtracking) in...
research
11/09/2021

Programming for All: Understanding the Nature of Programs

Computer programs are part of our daily life, we use them, we provide th...
research
12/28/2017

Automated Refactoring of Nested-IF Formulae in Spreadsheets

Spreadsheets are the most popular end-user programming software, where f...

Please sign up or login with your details

Forgot password? Click here to reset