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 permissions@acm.org. SIGCSE’15, March 4–7, 2015, Kansas City, MO, USA. Copyright © 2015 ACM 978-1-4503-2966-8/15/03…$15.00. http://dx.doi.org/10.1145/2676723.2677275 Floors and Flexibility: Designing a Programming Environment for 4th-6th Grade Classrooms Charlotte Hill†, Hilary A. Dwyer‡, Tim Martinez†, Danielle Harlow‡, Diana Franklin† {charlottehill, franklin}@cs.ucsb.edu, {hdwyer, dharlow}@education.ucsb.edu, tmartinez@umail.ucsb.edu †Computer Science Department UC Santa Barbara ‡Gevirtz Graduate School of Education UC Santa Barbara ABSTRACT The recent renaissance in early computer science education has provided K-12 teachers with multiple options for introducing children to computer science. However, tools for teaching programming for children with wide-scale adoption have been targeted mostly at pre-readers or middle school and higher grade- levels. This leaves a gap for 4 th – 6 th grade students, who differ developmentally from older and younger students. In this paper, we investigate block-based programming languages targeted at elementary and middle school students and demonstrate a gap in existing programming languages appropriate for 4 th – 6 th grade classrooms. We analyze the benefits of Scratch, ScratchJr, and Blockly for students and curriculum developers. We describe the design principles we created based on our experiences using block-based programming in 4 th – 6 th grade classrooms, and introduce LaPlaya, a language and development environment designed specifically for children in the gap between grades K-3 and middle school students. Categories and Subject Descriptors D.1.7 [Programming Techniques]: Visual Programming; K.3.2 [Computer and Information Science Education]: Computer Science Education. Keywords Computer science education, elementary school, middle school, graphical programming. novice programming environments 1. INTRODUCTION In an effort to engage young children in computer science, computer scientists have developed a variety of educational programming platforms, activities [23, 9, 17, 4] and outreach programs [3, 2, 12]. In the past few years, momentum has increased for elementary schools to teach computational thinking in their classrooms. Eighth graders’ reported interest in pursuing a career in science and engineering areas is a strong predictor of whether or not they will later pursue a science career [28]. Further, after-school opportunities or summer camps where middle and elementary school students are likely to be introduced to computer science are less available to students from impoverished areas [6]. Adding computational thinking to earlier grade levels and integrating the subject into K-8 schooling will provide students from more backgrounds exposure to computer science at an age when they prepare to make decisions about their future. Moreover, these efforts may increase diversity in computer science fields, combat the dire shortage of computing majors, and create a higher level of the computing literacy that will be necessary for the innovators of the next century. In order to gain deeper insight into how 4 th – 6 th grade students (children ages 9-12) learn computer science, we modified an existing middle-school curriculum from the Animal Tlatoque summer camp to be appropriate for 4 th grade [12]. We provided programming activities in a variant of Scratch [23] with starting files that the students manipulated and modified. During the 2013- 14 academic year, we revised and refined these activities based on feedback from the classrooms about what students struggled with and excelled in. Although elementary school students are capable of programming [21, 28], while developing curricula for 4 th – 6 th grade, we found a gap in the programming languages available for children. Many popular block-based languages are targeted either toward pre- readers or children with math and language skills above 4 th – 6 th grade. Moreover, these languages are embedded in programming environments with interface features not developmentally appropriate for this age group; they contain features that are too complex, making the floor for entry too high for these students, or they do not provide students appropriate control over their projects. Additionally, existing block-based languages either require curriculum developers to create projects that fit the constraints of the environment, or to have the programming background needed to customize the environment for the project. New tools that are sufficiently flexible and have an entry floor level appropriate level for upper elementary school students are needed to make computer science successful in a regular classroom. Here we present our design goals for a block-based language targeted towards 4 th – 6 th grade. Our design goals are influenced by the challenges that students faced during the pilot of our curriculum when using a programming environment not developmentally appropriate for their age. We look at Scratch, ScratchJr, and Blockly, and assess their appropriateness for curriculum development at this age group [23, 13, 10]. Finally, we introduce LaPlaya, the language we designed to fill the gap in development environments for upper elementary school classrooms. This paper is organized as follows. We provide background on the elementary school classroom setting and a brief summary of related work in Section 2. In Section 3, we look at existing block- based languages (Scratch, ScratchJr, and Blockly). In Section 4 546