This paper describes Scratch, a visual, block-based programming language designed to facilitate media manipulation for novice programmers. We report on the Scratch programming experiences of urban youth ages 8-18 at a Computer Clubhouse--an after school center--over an 18-month period. Our analyses of 536 Scratch projects collected during this time documents the learning of key programming concepts even in the absence of instructional interventions or experienced mentors. We discuss the motivations of urban youth who choose to program in Scratch rather than using one of the many other software packages available to them and the implications for introducing programming at after school settings in underserved communities. Categories and Subject Descriptors K.3.2 [Computer and Information Science Education]: Computer Science Education General Terms Design, Human Factors, Languages Keywords Novice programming environments, wider-access, Scratch.
John H. Maloney, Kylie A. Peppler, Yasmin B. Kafai