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