Determining Code Proficiency Levels from Python Textbooks
The ability to measure developer proficiency is crucial, as it reflects an individual's capability to understand and interpret efficient, effective, and well-structured code. It is an essential aspect of ensuring software quality. Although prior work has proposed different approaches for measuring proficiency through code, the process of learning various coding concepts remains non-trivial and highly debated. This paper proposes a framework for determining code proficiency through learning aids that serve as ground-truth—namely, textbooks—and two automated methods: Übersequence and Clustering. We conducted an empirical study to identify Python code proficiency levels. We then assessed the effectiveness of the framework by addressing two key research questions. Using a dataset of 22 introductory Python textbooks and code constructs referenced from Python AST , we achieved a high coverage of 85.51% for Python code constructs. Our analysis reveals a significantly high similarity in the sequence of code construct introductions across the textbooks, supporting our methodology of using textbooks to assess code proficiency. The resulting Übersequence demonstrates the feasibility of assigning proficiency levels to individual code constructs, while clustering further enables a structured grouping perspective. To demonstrate practical applicability, we present examples and initiate discussions on future research directions, particularly software maintenance tasks such as bug assignment and code reviews.
Authors
- Kenichi Matsumoto (ORCID: https://orcid.org/0000-0002-7418-9323)
- Gregório Robles (ORCID: https://orcid.org/0000-0002-1442-6761)
- Ruksit Rojpaisarnkit (ORCID: https://orcid.org/0000-0003-1263-5903)
- Jesús M. González-Barahona (ORCID: https://orcid.org/0000-0001-9682-460X)
- Raula Gaikovina Kula (ORCID: https://orcid.org/0000-0003-2324-0608)
Institutions
- Universidad Rey Juan Carlos (ES)
- Nara Institute of Science and Technology (JP)
Publication Details
- Journal
- ACM Transactions on Software Engineering and Methodology
- Published
- 2025-10-15
- DOI
- https://doi.org/10.1145/3769864
- Primary Topic
- Computational Physics and Python Applications
- Type
- article
- Field-Weighted Citation Impact
- 0.00