Personalization of Programming Education: An NLP-based Bi-dimensional Classification of Programming Exercises
The need for scalable and personalized content in programming education has led to growing interest in the automation of programming exercise generation. To support this, a comprehensive understanding of existing exercises is crucial. This research contributes to the latter by classifying existing exercises based on educational topic and difficulty level. We leverage a lexicon-based analysis in combination with machine learning and advanced natural language processing techniques, providing a foundation for AI-driven content generation. In particular, we utilize BERTopic for topic modeling and five different machine learning models for predicting difficulty levels in programming exercises. Our dataset comprises 106 programming exercise descriptions used in three introductory programming courses in higher education, along with performance data from up to 189 learners. The results demonstrate that lexicon-based approaches significantly improve topic modeling accuracy and coherence compared to the baseline, with reduced variance and more consistent cluster stability. Although difficulty prediction remains challenging due to the complexity of defining ground truth, lexicon integration leads to modest yet consistent performance gains. This work lays an essential groundwork for scalable and resource-efficient solutions for the classification and generation of personalized programming exercises.