pycefr: Python Competency Level through Code Analysis
Gregorio Robles, Raula Gaikovina Kula, Chaiyong Ragkhitwetsagul,, Tattiya Sakulniwat, Kenichi Matsumoto, and Jesus M. Gonzalez-Barahona

TL;DR
pycefr is a tool that classifies Python code snippets into six proficiency levels based on language element usage, aiding in developer onboarding, educational resource labeling, and skill assessment.
Contribution
It introduces a novel method to categorize Python code according to CEFR levels, linking language element complexity to programming proficiency.
Findings
pycefr effectively categorizes code into six proficiency levels
The tool can identify code snippets suitable for specific skill levels
Potential applications include resource labeling and onboarding support.
Abstract
Python is known to be a versatile language, well suited both for beginners and advanced users. Some elements of the language are easier to understand than others: some are found in any kind of code, while some others are used only by experienced programmers. The use of these elements lead to different ways to code, depending on the experience with the language and the knowledge of its elements, the general programming competence and programming skills, etc. In this paper, we present pycefr, a tool that detects the use of the different elements of the Python language, effectively measuring the level of Python proficiency required to comprehend and deal with a fragment of Python code. Following the well-known Common European Framework of Reference for Languages (CEFR), widely used for natural languages, pycefr categorizes Python code in six levels, depending on the proficiency required to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Computational Physics and Python Applications
