Automatic Assessment of the Design Quality of Student Python and Java Programs
Programs are a kind of communication to both computers and people, hence as students are trained to write programs they need to learn to write well-designed, readable code rather than code that simply functions correctly. The difficulty in teaching good design practices that promote readability is the labor intensiveness of assessing student programs. Typically assessing design quality involves a careful reading of student programs in order to give personalized feedback which naturally is time consuming for instructors. We propose a rule-based system that assesses student programs for quality of design of and provides personalized, precise feedback on how to improve their work. To study its effectiveness, we made the system available to students by deploying it online, allowing students to receive feedback and make corrections before turning in their assignments. The students benefited from the system and the rate of design quality flaws dropped 47.84% on average over 4 different assignments, 2 in Python and 2 in Java, in comparison to the previous 2 to 3 years of student submissions.
READ FULL TEXT