A qualitative study of animation programming in the wild

Scratch is the latest iteration in a series of animation tools aimed at teaching programming skills. Scratch, in particular, aims not only to teach technical skills, but also skills related to collaboration and code reuse. In order to assess the strengths and weaknesses of Scratch relative to these goals, we have performed an empirical field study of Scratch animations and associated user comments from the online animation repository. Overall, we found that Scratch represents substantial progress toward its designers' goals, though we also identified several opportunities for significant improvement. In particular, many Scratch programs revealed significant technical mastery of the programming environment by programmers, and some animations even demonstrated design patterns. On the other hand, while the Scratch repository has successfully served as a supportive environment for generating constructive feedback among users, we did not find any occasions within our sample where this interaction led to online collaboration. In addition, we found low levels of code reuse, in terms of both frequency and success. Based on these results, we identify implications for improving the design of animation tools, for using these tools to teach programming skills, and for fostering successful collaboration and code reuse among end-user programmers.

[1]  Robert J. Walker,et al.  Supporting the Investigation and Planning of Pragmatic Reuse Tasks , 2007, 29th International Conference on Software Engineering (ICSE'07).

[2]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[3]  Stephen Cooper Developing Algorithmic Thinking with Alice , 2000 .

[4]  Alexander Repenning,et al.  Agentsheets: a tool for building domain-oriented dynamic, visual environments , 1993 .

[5]  Mary Shaw,et al.  Predicting reuse of end-user web macro scripts , 2009, 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[6]  Margaret M. Burnett,et al.  End-user programming in the wild: A field study of CoScripter scripts , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[7]  C. Brodsky The Discovery of Grounded Theory: Strategies for Qualitative Research , 1968 .

[8]  David Garlan,et al.  A programming system for children that is designed for usability , 2002 .

[9]  Larry Tesler,et al.  Novice Programming Comes of Age , 2001, Your Wish is My Command.

[10]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[11]  Mitchel Resnick,et al.  Programming by choice: urban youth learning programming with scratch , 2008, SIGCSE '08.

[12]  Giuseppe Visaggio,et al.  Extracting Reusable Funtions by Flow Graph-Based Program Slicing , 1997, IEEE Trans. Software Eng..

[13]  Gregg Rothermel,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, ACM SIGSOFT Softw. Eng. Notes.

[14]  K. Peppler,et al.  Mentoring partnerships in a community technology centre: A constructionist approach for fostering equitable service learning , 2008 .

[15]  Mitchel Resnick,et al.  Empowering kids to create and share programmable media , 2008, Interactions.

[16]  A. Strauss,et al.  The Discovery of Grounded Theory , 1967 .

[17]  Giuseppe Visaggio,et al.  Extracting reusable functions by program slicing , 1996 .

[18]  Barbara M. Moskal,et al.  Evaluating the effectiveness of a new instructional approach , 2004 .

[19]  Raymond R. Panko,et al.  What we know about spreadsheet errors , 1998 .

[20]  Paul V. Gestwicki,et al.  Computer games as motivation for design patterns , 2007, SIGCSE.

[21]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[23]  Robert J. Walker,et al.  Semi-automating small-scale source code reuse via structural correspondence , 2008, SIGSOFT '08/FSE-16.