skip to main content
10.1145/2960310.2960325acmconferencesArticle/Chapter ViewAbstractPublication PagesicerConference Proceedingsconference-collections
research-article

How Kids Code and How We Know: An Exploratory Study on the Scratch Repository

Published:25 August 2016Publication History

ABSTRACT

Block-based programming languages like Scratch, Alice and Blockly are becoming increasingly common as introductory languages in programming education. There is substantial research showing that these visual programming environments are suitable for teaching programming concepts. But, what do people do when they use Scratch? In this paper we explore the characteristics of Scratch programs. To this end we have scraped the Scratch public repository and retrieved 250,000 projects. We present an analysis of these projects in three different dimensions. Initially, we look at the types of blocks used and the size of the projects. We then investigate complexity, used abstractions and programming concepts. Finally we detect code smells such as large scripts, dead code and duplicated code blocks. Our results show that 1) most Scratch programs are small, however Scratch programs consisting of over 100 sprites exist, 2) programming abstraction concepts like procedures are not commonly used and 3) Scratch programs do suffer from code smells including large scripts and unmatched broadcast signals.

References

  1. T. L. Alves, C. Ypma, and J. Visser. Deriving metric thresholds from benchmark data. In 26th IEEE International Conference on Software Maintenance (ICSM 2010), pages 1--10. IEEE Computer Society, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. B. Boe, C. Hill, M. Len, G. Dreschler, P. Conrad, and D. Franklin. Hairball: Lint-inspired Static Analysis of Scratch Projects. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education, SIGCSE '13, pages 215--220, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Brennan, C. Balch, and M. Chung. Creative Computing. Harvard Graduate School of Education, 2014.Google ScholarGoogle Scholar
  4. M. Conway, R. Pausch, R. Gossweiler, and T. Burnette.Alice: A Rapid Prototyping System for Building Virtual Environments. In Conference Companion on Human Factors in Computing Systems, CHI '94, pages 295--296, New York, NY, USA, 1994. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Cooper, W. Dann, and R. Pausch. Teaching Objects-first in Introductory Computer Science. In Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, SIGCSE '03, pages 191--195, New York, NY, USA, 2003. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Dasgupta, W. Hale, A. Monroy-Hernández, and B. M. Hill. Remixing as a pathway to computational thinking. In Proceedings of the 19th ACM Conference on Computer-Supported Cooperative Work & Social Computing, CSCW '16, pages 1438--1449, New York, NY, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. A. Fields, M. Giang, and Y. Kafai. Programming in the wild: Trends in youth computational participation in the online scratch community. In Proceedings of the 9th Workshop in Primary and Secondary Computing Education, WiPSCE '14, pages 2--11, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Fowler. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Glinert. Towards "Second Generation" Interactive, Graphical Programming Environments. In Proceedings of the IEEE Workshop on Visual Languages, pages 61--70, 1986.Google ScholarGoogle Scholar
  10. F. Hermans and E. Aivaloglou.Do code smells hamper novice programming? In Proceedings of the International Conference on Program Comprehension, 2016. to appear.Google ScholarGoogle Scholar
  11. F. Hermans, M. Pinzger, and A. van Deursen. Detecting and refactoring code smells in spreadsheet formulas. Empirical Software Engineering, 20(2):549--575, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. H. Maloney, K. Peppler, Y. Kafai, M. Resnick, and N. Rusk.Programming by choice: Urban youth learning programming with scratch. In Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, SIGCSE '08, pages 367--371, New York, NY, USA,2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. J. McCabe. A complexity measure. IEEE Trans. Software Eng., 2(4):308--320, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. O. Meerbaum-Salant, M. Armoni, and M. Ben-Ari. Habits of programming in scratch. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education, ITiCSE '11, pages 168--172, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. O. Meerbaum-Salant, M. Armoni, and M. M. Ben-Ari. Learning Computer Science Concepts with Scratch. In Proceedings of the Sixth International Workshop on Computing Education Research, ICER '10, pages 69--76, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Moreno and G. Robles. Automatic detection of bad programming habits in scratch: A preliminary study. In 2014 IEEE Frontiers in Education Conference (FIE), pages 1--4, Oct. 2014.Google ScholarGoogle ScholarCross RefCross Ref
  17. J. Moreno-León, G. Robles, and M. Román-González. Dr. Scratch: Automatic Analysis of Scratch Projects to Assess and Foster Computational Thinking. RED: Revista de Educación a Distancia, (46):1--23, Jan. 2015.Google ScholarGoogle Scholar
  18. B. Moskal, S. Cooper, and D. Lurie. Evaluating the Effectiveness of a New Instructional Approach. In Proceedings of the SIGCSE technical symposium on Computerscience education, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. W. Price and T. Barnes. Comparing Textual and Block Interfaces in a NoviceProgramming Environment. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research, ICER '15, pages 91--99, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Resnick, J. Maloney, A. Monroy-Hernández, N. Rusk, E. Eastmond, K. Brennan, A. Millner, E. Rosenbaum, J. Silver, B. Silverman, and Y. Kafai. Scratch: Programming for All. Commun. ACM, 52(11):60--67, Nov. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. Seiter and B. Foreman. Modeling the learning progressions of computational thinking of primary grade students. In Proceedings of the Ninth Annual International ACM Conference on International Computing Education Research, ICER '13, pages 59--66, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Wilson, T. Hainey, and T. Connolly. Evaluation of computer games developed by primary school children to gauge understanding of programming concepts. In European Conference on Games Based Learning, page 549.Academic Conferences International Limited, 2012.Google ScholarGoogle Scholar
  23. D. Wolber, H. Abelson, E. Spertus, and L. Looney. App Inventor: Create Your Own Android Apps. O'Reilly Media, Sebastopol, Calif, 1 edition edition, May 2011.Google ScholarGoogle Scholar
  24. S. Yang, C. Domeniconi, M. Revelle, M. Sweeney, B. U. Gelman, C. Beckley, andA. Johri. Uncovering trajectories of informal learning in large online communities of creators. In Proceedings of the Second (2015) ACM Conference on Learning @Scale, L@S '15, pages 131--140, New York, NY, USA, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. How Kids Code and How We Know: An Exploratory Study on the Scratch Repository

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ICER '16: Proceedings of the 2016 ACM Conference on International Computing Education Research
        August 2016
        310 pages
        ISBN:9781450344494
        DOI:10.1145/2960310

        Copyright © 2016 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 August 2016

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Upcoming Conference

        ICER 2024
        ACM Conference on International Computing Education Research
        August 13 - 15, 2024
        Melbourne , VIC , Australia

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader