A Machine Learning-Based Adaptive Feedback System to Enhance Programming Skill Using Computational Thinking
Muhammad Musa Kaleem, Muhammad Awais, Syed Khaldoon Khurshid · IEEE Access · 2024
The solution of a typical programming task involves algorithmic thinking, pattern recognition, decomposition and abstraction skills. These skills are basic pillars of Computational thinking (CT) and are essential for a computer programmer. Therefore, it is essential for a programming teacher to take these skills into account for evaluation of students. Existing methods for improving programming competency don’t consider Computational Thinking of students and perform grading of students without taking these skills into account. Due to this limitation, deficiencies of these skills in students remain unrevealed, posing difficulties for educators to provide a need-oriented feedback. Performance of programming students is thus hindered by lack of interventions. This study proposes a method to evaluate programming students in terms of CT skill components and group them on the basis of their skill set. In this study, 780 students of object-oriented programming (OOP) class were given programming assignments for assessment of programming competencies. These students were then given small programming tasks requiring different computational thinking skill components for their solution. Machine learning approach was used to perform grouping of these students based upon their scores. Six groups of programming students, each having its own set of skill deficiencies, were identified as a result of clustering. One of the groups had an empty set of skill deficiencies and consisted of the students proficient in programming. Each of the other five groups had a non-empty set of skill deficiencies and comprised non-proficient programming students. A group-specific skill development plan was built for the groups having skill deficiencies. It was found that such a feedback was very effective and improved CT skill deficiencies of 82% of students.