Reusing My Own Code: Preliminary Results for Competitive Coding in Jupyter Notebooks
Issued Date
2022-01-01
Resource Type
ISSN
15301362
Scopus ID
2-s2.0-85149168830
Journal Title
Proceedings - Asia-Pacific Software Engineering Conference, APSEC
Volume
2022-December
Start Page
457
End Page
461
Rights Holder(s)
SCOPUS
Bibliographic Citation
Proceedings - Asia-Pacific Software Engineering Conference, APSEC Vol.2022-December (2022) , 457-461
Suggested Citation
Ritta N., Settewong T., Kula R.G., Ragkhitwetsagul C., Sunetnanta T., Matsumoto K. Reusing My Own Code: Preliminary Results for Competitive Coding in Jupyter Notebooks. Proceedings - Asia-Pacific Software Engineering Conference, APSEC Vol.2022-December (2022) , 457-461. 461. doi:10.1109/APSEC57359.2022.00062 Retrieved from: https://repository.li.mahidol.ac.th/handle/20.500.14594/84311
Title
Reusing My Own Code: Preliminary Results for Competitive Coding in Jupyter Notebooks
Author's Affiliation
Other Contributor(s)
Abstract
The reuse of already existing code is widely considered a popular software development practice, that provides both benefits and drawbacks for all stakeholders involved. Prior work reports on how code reuse is a common practice in software development projects and data science projects such as machine learning pipelines. Recently, there has been much code reuse work in the context of competitive programming. Although there is work such as detecting plagiarism, there is no work that studies how a competitor will reuse their own code. In this paper, we present a preliminary study on the code reuse behavior of three grandmasters' Jupyter notebooks in the Kaggle Competitions, an online competition platform for data scientists, and report the types of code they often reuse. Grandmasters are the highest level reached in competitions (novice, expert, master, and grandmaster). We find that Grandmasters are less likely to reuse specialized code, but instead, tend to reuse common functions like importing packages (importing the pandas library). They are most likely to reuse common abstractions like importing packages, configurations, file IO operations, show data, plotting graphs, defining functions, and exploring files. The work opens up new research potential into recommending how developers can reuse their own code.