Programming education should aim to provide students with a broad range of skills that they will later use while developing software. An important aspect in this is their ability to write code that is not only correct but also of high quality. Unfortunately, this is difficult to control in the setting of a massive open online course. In this paper, we carry out an analysis of the code quality of submissions from JetBrains Academy - a platform for studying programming in an industry-like project-based setting with an embedded code quality assessment tool called Hyperstyle. We analyzed more than a million Java submissions and more than 1.3 million Python submissions, studied the most prevalent types of code quality issues and the dynamics of how students fix them. We provide several case studies of different issues, as well as an analysis of why certain issues remain unfixed even after several attempts. Also, we studied abnormally long sequences of submissions, in which students attempted to fix code quality issues after passing the task. Our results point the way towards the improvement of online courses, such as making sure that the task itself does not incentivize students to write code poorly.
翻译:编程教育应旨在为学生提供其在后续软件开发中将广泛使用的多种技能。其中一个重要方面是学生编写代码的能力——不仅要确保代码正确,还需保证其高质量。然而,在海量开放在线课程(MOOC)的背景下,这一目标难以有效控制。本文对JetBrains Academy平台上的作业提交代码质量进行了分析。该平台采用类似工业项目的学习模式,并内置名为Hyperstyle的代码质量评估工具。我们分析了超过一百万份Java提交记录及超过一百三十万份Python提交记录,重点研究了最常见的代码质量问题类型及学生修复问题的动态过程。我们提供了多个不同问题的案例研究,并分析了某些问题即便经过多次尝试仍未修复的原因。此外,我们还研究了异常长的提交序列——即学生在通过任务测试后仍试图修复代码质量问题的系列提交行为。研究结果为改进在线课程指明了方向,例如确保任务本身不会促使学生编写低质量代码。