The two objectives are not necessarily the same. The designers of
Scratch note that for users “who see
programming as a medium for expression, not a path toward a career,
Scratch is sufficient for their needs.”
The GP blocks environment is being
designed to enable “casual programmers” to create ever more sophisticated
programs, while removing limits that
would force them to switch away from
24 Before discussing the learning effects of blocks-based programming, we begin with a caution that it
would be shortsighted to assume that
tomorrow’s programmers will program with the same languages and
systems as today’s. Each generation
of programmers shifts the culture
of coding, and the definition of “real
code” will continue to evolve.
However, core learning questions
remain. For students who continue
with the study of traditional programming, we can ask if a blocks-based introduction to programming is helpful
or not. This question has been directly
tested in classrooms.
Measuring learning transfer:
Research indicates that learning a
blocks language can improve later
learning of a traditional textual language. In a study of 10th graders learning C# or Java,
1 those who had taken
a Scratch course in 9th grade learned
more quickly, understood loops better, and were more engaged and confident than their peers who had not.
However, in the final test, a signifi-
cant difference was seen in only one
of three cognitive dimensions. In a
study at two colleges,
25 students with
little or no previous programming
experience and weak math prepara-
tion completed a CS0 programing
class using Alice before beginning a
Java CS1 course. Starting with Alice
improved student grades (GPA of 3.0
vs. 1. 2 for non-Alice students) and the
percentage of students taking further
CS courses (88% compared to 47%).
The question of whether such effects are simply due to giving students
more preparation in an extra class
has been tested by creating courses
that combine a blocks-based introduction with a transition to a traditional
language. Reports from courses using
Scratch before Java or C indicate improved student engagement and understanding of some concepts.
19, 39 In one
study focused on learning transfer,
introductory Java course at CMU was
modified to begin with Alice. Students
in this class that used both languages
averaged 10% or more better performance on every section of the same Java
final exam, including expression evaluation, control structures, arrays, and
working with class definitions.
That result is remarkable because
one might assume that spending more
time programming with blocks meant
less time to learn Java. The study used
a version of Alice that generated Java
code from Alice blocks, and a mediated
transfer pedagogy that made explicit
connections between programming
concepts in Alice and Java.
Other studies of CS1 courses that
switch from blocks to text without
these features have identified potential
challenges to learning with blocks.
Switching from a blocks language to text
can involve both a change in syntax and
semantics, and Shapiro and Ahrens propose teaching the transitions separately, by introducing syntax before generalizing semantics.
32 Additional research
is needed to identify the circumstances
under which blocks are effective.