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.
翻译:编程教育应该旨在向学生提供广泛的技能,让他们以后在开发软件时使用。其中的一个重要方面是他们能够写出不仅正确而且高质量的代码。不幸的是,在设置大规模开放式在线课程时,这很难控制。在本文中,我们分析了杰布雷纳斯学院(JeetBrains学院)提交材料的代码质量。杰布雷纳斯学院是一个以行业为主的、以行业为主的、以嵌入代码质量评估工具为名的平台,研究编程中的程序质量问题。我们分析了100多万 Java提交材料和130多万Python提交材料,研究了最普遍的代码质量问题类型和学生如何修补这些问题的动态。我们提供了几个不同问题的案例研究,并分析了为什么即使经过几次尝试,某些问题仍然没有固定下来。此外,我们研究了提交材料的异常长的顺序,学生在通过任务后试图修补代码质量问题。我们的结果指明了改进在线课程的途径,例如确保任务本身不会鼓励学生编写错误的代码。