2017 · 38 citations · 24 references
ComputingComputer ScienceProgramming LanguagesQuality AssuranceSoftware EngineeringSoftware ConstructionSoftware DesignSoftware Quality AssuranceCode Quality Improvement
Block-based programming languages have become increasingly prominent in both the educational and end-user communities. As the block-based codebase is growing rapidly, its quality remains poorly understood, even though the awareness of recurring quality problems in this domain can benefit educators and end-user programmers alike. To address this problem, we report on the results of a large-scale assessment of recurring quality problems in block-based software. Our work identifies quality problems endemic of block-based software, as well as applies program analysis to assess the prevalence and severity of quality problems in close to 600K representative Scratch projects. Our empirical evidence shows how certain recurring quality problems hinder code sharing for popular Scratch projects. These results indicate that the quality of block-based software warrants the attention of CS educators, end-user programmers, and tool builders. Our study's results can help programmers avoid introducing the quality problems, while guiding tools builders in supporting the systematic quality improvement of block-based software.
24
Sanjay Ghemawat · Communications of the ACM · 2008 · 18.5K citations · Full text
Spark: cluster computing with working sets
Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin et al. · 2010 · 4.2K citations
Mitchel Resnick, John Maloney, Andrés Monroy‐Hernández et al. · Communications of the ACM · 2009 · 3.2K citations
Refactoring improving the design of existing code
Mauricio A. Saca · 2017 · 2.1K citations