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.
翻译:课程是计算机和人之间的一种交流,因此,随着学生接受培训以编写他们需要学会如何编写设计良好、可读的代码而不是正确发挥作用的代码的方案,教授促进可读性的良好设计做法的困难在于评估学生方案的劳动强度。通常,评估设计质量需要仔细阅读学生方案,以便提供个人化的反馈,这对教员来说自然是耗费时间的。我们提出了一个基于规则的系统,用以评估学生方案的设计质量,并就如何改进他们的工作提供个性化、准确的反馈。为了研究其有效性,我们通过在网上部署该系统,允许学生在转学前接受反馈和纠正。与前两三年的学生提交材料相比,学生从该系统中受益,设计质量缺陷率平均在4项不同任务中下降了47.84 ⁇,其中2项在Python,2项在Java,平均下降了47.84 ⁇ 。