IEEE Access (Jan 2024)
A Machine Learning-Based Adaptive Feedback System to Enhance Programming Skill Using Computational Thinking
Abstract
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, a programming teacher needs to take these skills into account for the evaluation of students. Existing methods for improving programming competency don’t consider the 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 need-oriented feedback. The performance of programming students is thus hindered by a lack of interventions. This study proposes a method to evaluate programming students in terms of CT skill components and group them based on 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 solutions. A machine learning approach was used to perform grouping of these students based on 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 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 feedback was very effective and improved the CT skill deficiencies of 82% of students.
Keywords