Conference PaperPDF Available

Programming by Choice: Urban Youth Learning Programming with Scratch


Abstract and Figures

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.
Content may be subject to copyright.
Programming by Choice:
Urban Youth Learning Programming with Scratch
John Maloney, Kylie Peppler*, Yasmin B. Kafai*, Mitchel Resnick and Natalie Rusk
MIT Media Laboratory
77 Massachusetts Ave. E15-020
Cambridge, MA 02139
[jmaloney, mres, nrusk]
*UCLA Graduate School of Education
2331 Moore Hall
Los Angeles, CA 90095-1521
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
Novice programming environments, wider-access, Scratch.
With the recognized need to broaden participation in computing, a
number of different efforts have been discussed in K-12 and
college education, such as mentoring, revised curricula, tool
development, outreach programs, and programming courses for
non-majors. One area that has received surprisingly little attention
is the learning of programming in community technology centers
that offer free access on a daily basis. More popular but more
limited in time have been summer camps and after school
programs [1; 15]. In these venues, the learning of programming is
by choice meaning that what, when, and for how long
programming takes place is at the discretion of the learner rather
than part of a required curriculum. While considerable amount of
research in computer science education has focused on the
classroom or seminar level, few efforts have studied or
documented activities where computer-programming
opportunities are available outside of the school space for pre-
college youth.
Summer camps, after-school programs, and community
technology centers could play a greater role in offering
opportunities for learning computer programming. For one, most
schools use technology to teach content and only few offer
opportunities to learn programming, especially for low-income
students [3]. Another important reason that compels one to
consider other places that shape learning is that children only
spend 9% of their childhood in school [14]. Finally, out-of-school
activities also present opportunities for youth to succeed who may
not flourish in traditional school environments.
In this paper, we focus on the use of Scratch, a block-based
programming language designed to facilitate media manipulation
for novice programmers [11], at a Computer Clubhouse, an urban,
after-school technology center. We collected of 536 Scratch
programs created by youth at one particular Computer Clubhouse
and analyzed their use of programming commands and concepts
over time. We also interviewed Clubhouse members about their
ideas of programming and perceptions of Scratch. In our
discussion, we address what novice programmers can learn in an
informal context that does not rely on structured instruction and
what motivated youth to choose programming over other
available software.
Scratch was created by the Lifelong Kindergarten Group at the
MIT Media Laboratory in collaboration with Yasmin Kafai’s
group at UCLA. Scratch is not the first programming environment
and language aimed at novice programmers. Indeed, there is a
rich history of different developments comprehensively surveyed
by Kelleher and Pausch [7] and Guzdial [4]. Scratch builds on the
ideas of Logo [8] but replaces typing code with a drag-and-drop
approach inspired by LogoBlocks [2] and EToys [13]. Scratch
emphasizes media manipulation and supports programming
activities that resonate with the interests of youth, such as creating
animated stories, games, and interactive presentations. A Scratch
project consists of a fixed stage (background) and a number of
movable sprites. Each object contains its own set of images,
sounds, variables, and scripts. This organization enables easy
export and exchange of sprites.
Programming is done by dragging command blocks from a palette
into the scripting pane and assembling them, like puzzle pieces, to
create “stacks” of blocks. An individual block or a stack of blocks
can be run by double-clicking on it. Various hat blocks can be
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. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
SIGCSE’08, March 12–15, 2008, Portland, Oregon, USA.
Copyright 2008 ACM 978-1-59593-947-0/08/0003...$5.00.
placed on top of a stack of blocks to trigger that stack in response
to some run-time event, such as program startup, a given key
being pressed, or a mouse click on the sprite. Multiple stacks can
run at the same time so, without realizing it, most Scratch users
make use of multiple threads.
The Scratch screen (see Figure 1) is divided into four areas. On
the right is the stage. A button on the bar below the stage allows
the stage to be displayed in full screen mode to show off a
finished project. Below the stage is an area that shows thumbnails
of all sprites in the project. Clicking on one of these thumbnails
selects the corresponding sprite. The middle pane allows the user
to view and change the scripts, costumes (images), or sounds of
the selected sprite. The left-most pane is the palette of command
blocks that can be dragged into the scripting area. The palette is
divided into eight color-coded categories.
This user interface design grew out of a desire to make the key
concepts of Scratch as tangible and manifest as possible. Having
the command palette visible at all times invites exploration. A
user who notices an interesting command can double-click it right
in the palette to see what it does. A user can watch stacks in the
scripting area highlight as the action unfolds on the stage. These
explorations are supported by having the palette, scripting area,
and stage simultaneously visible, providing the user with a
process model of how their scripts are interpreted by the
Figure 1: Screenshot of Scratch Interface
The Scratch vocabulary of roughly ninety commands includes
commands for relative motion (like the Logo turtle), absolute
positioning using Cartesian coordinates, image transformations
(rotation, scaling, and effects such as Fisheye), cell animation
(switching between images), recorded-sound playback, musical
note and drum sounds, and a programmable pen. Since many of
these commands take numbers as parameters, the Scratch user has
meaningful context for improving their understanding of numbers.
For example, using a negative argument with the move command
makes the sprite move backwards. Arithmetic, comparison and
simple Boolean operations are currently supported, and more
advanced scientific functions (e.g. sine) will be added soon. There
are sensing blocks to detect when a sprite is touching the edge,
another sprite, or a particular color, as well as sensing blocks that
report the mouse location or the up-down state of keyboard keys.
Scratch has a number of control structures, including conditionals
(if, if-else), loops (repeat, forever, repeat-until), and event triggers
(when-clicked, when-key-pressed). Communication is done via
named broadcasts. For example, one sprite might broadcast "you
won!" causing another sprite to appear on the stage and play a
victory song. One broadcast can trigger multiple scripts. A variant
of the broadcast command waits for all triggered scripts to
complete before going on, thus providing a simple form of
synchronization. In addition, Scratch supports two kinds of
variables. Sprite variables are visible only to the scripts within
that sprite, while global variables are visible to all objects. Global
variables are sometimes used in conjunction with broadcast as a
way to pass data between sprites.
We introduced Scratch in January 2005 to a Computer Clubhouse
located at a storefront location in South Central Los Angeles. The
Clubhouse serves African American and Latino youth ages 8-18
from one of the city’s most impoverished areas. Youth become
members of the Computer Clubhouse at no cost to them or their
families and gather in the after-school hours to engage in a variety
of gaming and design activities [12]. These can include playing
Microsoft Xbox, downloading images online, recording music in
the studio, playing board games, manipulating images in Adobe
Photoshop, making roller coaster games in RPG maker or
designing 3D backgrounds in Bryce 5.
At the time that Scratch was first introduced, programming
activities were not a part of the Clubhouse portfolio of activities
[6], despite the wide availability of various types of programming
software. Over the course of the first two years of the project,
Scratch grew to be the most widely used design software
available at the Clubhouse and local programming experts
emerged. We did very little to explicitly “teach” programming
concepts; rather, youth worked on projects of their own choosing
and requested assistance from mentors when needed. Every two
or three months, we organized a Scratch-a-thon during which all
clubhouse members would work on Scratch for 3-4 hours and
share publicly the projects they had created. Clubhouse members
used Scratch to implement various media applications ranging
from video games to music videos, greetings card and animations
[9]. For instance, the dance video “k2b” was created by Kaylee, a
thirteen-year-old female software designer, who modeled the
piece after a Gwen Stefani music video called “Hollaback Girl”
(see Figure 2).
Figure 2: “k2b” Scratch program
Another example is the videogame called “Metal Slug Hell Zone
X” created by Jorge (see Figure 3). The middle screen is a
screenshot of an avatar while the game is in play mode. On the
left is a partial screen shot of the scripts that control one of the
avatars. On the right is a partial screen shot of the costumes area,
illustrating a short sequence of still frames used to animate a
shooting sequence.
During the first 18 months of the introduction, we collected
youths’ Scratch projects on a weekly basis in order to track the
extent to which programming concepts were taking root in the
Clubhouse culture over time. We used three different data sources
for our analyses: (1) the exported project summary files, which
contained text-based information such as the date, file name, and
author of the project as well as information about the number and
types of commands that were used and the total number of stacks,
sounds, and costumes used in the project; (2) weekly participant
field notes that were written by a team of Undergraduate and
Graduate field researchers that visited the Computer Clubhouse
and supported Scratch activities at the field site; and (3)
interviews with Clubhouse members about their impressions of
Scratch, what it compared to, and what they knew about
programming. It’s important to note that the primary role of the
Undergraduate and Graduate support team was to model how to
learn and they were not computer scientists. The mentors had
little or no experience programming and were new to Scratch [5].
In our view, this was empowered youth, allowing them to
sometimes switch roles and teach a mentor something new in
Figure 3: “Metal Slug Hell Zone X” Scratch program.
A total of 536 projects were collected for analysis, which
constituted 34% of all the projects created at the Computer
Clubhouse during the course of this study. Scratch was more
heavily used than any other media-creation tool, including
Microsoft Word. Overall, an even mix of over 80 boys and girls
used Scratch to create programming projects and most
programmers engaged in working on a single project over long
periods of time – sometimes over the course of a year. These
findings demonstrate that Scratch became a successful part of the
local Computer Clubhouse culture. It’s also one of the few
programming initiatives that successfully engaged both boys and
girls – all of them youth of color.
To get an idea of what programming concepts were learned by
these youth, we analyzed the use of Scratch commands across the
set of projects that we collected. We took the use of certain blocks
to indicate that a concept was being used in a given project. For
example, Figure 4 shows a script from a simple paddle game in
which a ball falls from a random place along the top of the stage
and must be caught by a paddle controlled by the mouse. This
script uses the concepts of sequential control flow, a loop,
conditional statements, variables, and random numbers. The
overall game also uses the concepts of user interaction (the paddle
tracks the x position of the mouse) and threads (the paddle has its
own script that runs in parallel with the ball script).
Of the 536 projects, 111 of them contained no scripts at all. These
“pre-scripting” projects illustrate the use of Scratch simply as a
media manipulation and composition tool. Beginning Scratch
users often spend time importing or drawing images and
recording sounds before moving on to scripting. Of the remaining
425 projects, all of them make use of sequential execution (i.e. a
stack with more than one block) and most (374 projects, 88%)
show the use of threads (i.e. multiple scripts running in parallel).
These are core programming concepts that confront every Scratch
user when they begin writing scripts. We also looked at a number
of other programming concepts: User Interaction (use of keyboard
or mouse input), Loops, Conditional Statements, Communication
and Synchronization (broadcast and when-receive), Boolean
Logic (and, or, and not), Variables, and Random Numbers.
Unlike sequential execution, these concepts are not needed in
every project. For example, one can make a simple program to
move a sprite using the arrow keys without using a loop or
Figure 4: Scratch Script for Ball in a Simple Paddle Game
The goal of this analysis was to study the extent to which youth
touched upon these concepts as well as to gauge if the community
as a whole increased their knowledge of computer programming
over time. Table 1 summarizes the use programming concepts.
Given the popularity of games and animation, it is not surprising
that projects showing the use of User Interaction and Loops were
common. It was a pleasant surprise to find that the
Communication and Synchronization commands were also fairly
heavily used; inter-object communications is one of the most
complex ideas in Scratch, but it answers a critical need when
building more complex projects. On the other hand, Boolean
operations, variables, and random numbers are concepts that are
not easily discovered on one’s own. In fact, one user had a
desperate need for the variables in his project. When Mitchel
Resnick, on a visit to the Clubhouse, showed him how to use
variables, he immediately saw how they could be used to solve
his problems and thanked Mitchel repeatedly for the advice.
We also examined trends over time. In general, the number of
projects produced in the second school year doubled the number
of projects produced during same period the first year of the
project. (We completed this part of the data collection partway
through the second school year.) When we compared the
Table 1. Programming concepts in Scratch projects
containing scripts, ordered from most to least heavily used
Number of
of 425
User Interaction 228 53.6%
Loops 220 51.8%
Conditional Statements 111 26.1%
Communications and Synch. 105 24.7%
Boolean Logic 46 10.8%
Variables 41 9.6%
Random Numbers 20 4.7%
percentage of projects containing the various programming
concepts over time, we found that five out of the seven concepts
that we targeted for our analyses demonstrated significant gains (p
< .05) during the second school year. Among these were the less
obvious concepts of variables, Boolean logic, and random
numbers. Chi-Square tests were used to analyze differences in the
percentages of projects containing targeted programming concepts
from Year 1 to Year 2 (see Figure 5). Overall, four of the seven
programming concepts (i.e., Loops, Boolean Logic, Variables,
and Random Numbers) demonstrated significant gains in the
number of projects utilizing the targeted concepts (p < .001). One
of the remaining concepts (i.e., Conditional Statements) had
marginal gains (p = .051) and one concept (i.e., Communication/
Synchronization) demonstrated a significant reduction in the
number of projects utilizing this particular concept.
Percentage of Projects Containing Targeted
Programming Concepts by Year
User Interaction
Cond. Statements
Comm. / Synch.
Boolean Logic
Random Numbers
Percentage of Scratch Projects
Year 1
Year 2
Figure 5. Graph demonstrating the change in the percentage
of projects that used various programming concepts over time
**p < .001 *p < .05
What did the youth in this study have to say about their
experiences? We interviewed 30 Clubhouse members and asked
them about their ideas of programming and Scratch. When
pressed to answer the question, “If Scratch had to be something
not on the computer, what would it be?” the most common
response was “paper” or “a sketchbook” because Scratch allows
you to “do anything that you want with it, just like paper” (n = 8).
Others responded in a similar fashion, saying that Scratch was
like “everything” because it can be “your own creative world” (n
= 6). The remaining responses varied but were along the lines of
“something cool,” “something fun,” or “school” because it “gives
you opportunities.” Only one youth said that Scratch wouldn’t
allow him to do what he wanted. He was accustomed to working
in Flash and he missed the timeline feature for animation.
We asked a series of open-ended questions to better understand
how youth situated Scratch among a number of tools at home, at
school, and at the Clubhouse. When asked whether Scratch
reminded the youth of anything at school, all of the youth said
Scratch was at least like one school subject, and most cited
several subjects that they thought connected to their experiences
in Scratch. The most frequent response was generally to the arts
(n = 20), then to language arts, particularly to reading (n =10),
followed by math (n = 8), science (n =5), history or social studies
(n =3), and computer class (n =2). When probed further about
Scratch’s similarities to art, the youth cited drawing or sculpture
(n = 11), drama (n = 6), music (n =4), and dance (n = 3). From
these responses, we learned that youth felt that Scratch was most
similar to schooling activities that support creative, personal
expression, such as art and language arts.
Most youth didn’t identify scripting in Scratch as a form of
programming. In general, when youth were asked, “What is
computer programming to you?” they responded: “Computer
programming? I do not have a clue [what that is]!” At first we
were concerned that youth didn’t make the connection between
Scratch and programming. But on reflection, not seeing Scratch as
“programming” may have helped Scratch catch on, allowing
youth to see Scratch as being in line with their identities as kids,
as something “cool”, and as a central part of the Computer
Clubhouse culture. After all, the point of engaging youth in
computer programming is not to turn them all into hackers or
programmers, but because being engaged in the full range of
technology fluencies–including programming–is an educational
right of the 21st Century. This point becomes even more important
when over 90% of the youth that come to the Clubhouse have
never been in a computer class during their entire K-12 schooling
experience. The Clubhouse then becomes an important space for
access to computer programming tools.
Our findings show a sustained engagement with programming
among urban youth at a Computer Clubhouse. We found that, on
their own, Clubhouse youth discovered and used commands
demonstrating the concepts of user interaction, loops,
conditionals, and communication and synchronization. The use of
less easily discovered concepts such as variables, Boolean logic,
and random numbers was less common but increased over time.
These findings are especially surprising given the lack of formal
instruction and the fact that the mentors had no prior
programming experience.
A few commands, such as absolute value and square root never
appeared in projects. This is not surprising, since the need for
such computations is rare in the types of projects created.
However, other concepts such as variables and random numbers
are very useful, but caught on slowly. We speculate that these are
concepts that are not easily discovered without guidance. In some
cases, the concept may have been appropriated from one of the
sample projects that come bundled with Scratch. But in the case
of variables, a concept that also appears in sample projects, it
* * *
p = .51
seems that a timely visit by a knowledgeable mentor was needed
before the community began to use the idea.
A more pressing question is, of course, why did Clubhouse youth
choose to get involved in Scratch programming given that they
had many other software options? The best answer might have
been provided by Kelleher and Pausch [7] who noted how
systems can make programming more accessible for novices “by
simplifying the mechanics of programming, by providing support
for learners, and by providing students with motivation to learn to
program” (p. 131). We think that Scratch addresses all three of
these areas. For one, the design of the Scratch blocks simplifies
the mechanics of programming by eliminating syntax errors,
providing feedback about placement of command blocks, and
giving immediate feedback for experiments.
Furthermore, we think that the social infrastructure of the
Computer Clubhouse is important in providing support for novice
programmers. While the mentors did not have any prior
programming experiences – all of them were liberal arts majors –
they were willing to listen and encourage youth in pursuing their
programming projects. Often we could observe youth recruiting
mentors to be collaborators or sounding boards for their project
ideas. At times, we saw clubhouse youth teach mentors a few
things they had learned about Scratch. While mentors are often
associated with being more knowledgeable than their mentees,
here we found a more equitable relationship that turned both
mentees and mentors into learners [5]. This need for an audience
and resources may also explain the success of the recently opened
Scratch website (, which allows programmers to
upload their projects and share them with others.
Finally, we think that the multimedia aspect of Scratch facilitated
urban youth’s engagement in programming. The project archive
provided ample evidence that Clubhouse members were savvy
about various media genres and interested in not only using them
but also producing their own versions. Many Scratch programs
started with images pulled from the web and centered on popular
characters. In fact, we have evidence from other analyses that
Scratch projects focused on generic characters were more often
abandoned than those that used popular characters [10]. Youth
interest in technology starts with digital media and might thus
serve as a more promising pathway into programming. The broad
spectrum of media designs – from video games to music videos
and greeting cards – is a true indicator of youth’s interest in not
only being user of digital media (as they do on a regular and
personal basis) but in going beyond mere consumption to become
content creators themselves, a role often denied to urban youth.
The work reported in this paper was supported by a grant from the
National Science Foundation (NSF-0325828) to Mitchel Resnick
and Yasmin Kafai and by a dissertation fellowship from the
Spencer Foundation to Kylie Peppler. The views expressed are
those of the authors and do not represent the views of the
supporting funding agencies or universities. We wish to thank
Zrinka Bilusic for her preparation and initial analysis of the
Scratch archive.
[1] Adams, J. C. (2007). Alice, middle schoolers & the
imaginary worlds camps. Proceedings of the 38th SIGCSE
Technical Symposium on Computer Science Education (pp.
307-311). New York, NY: ACM Press.
[2] Begel, A. (1996). LogoBlocks: A Graphical Programming
Language for Interacting with the World. Unpublished
Advanced Undergraduate Project Report, MIT Media Lab.
[3] Goode, J., Estrella, R., & Margolis, J. (2006). Lost in
translation: Gender and high school computer science. In J.
M. Cohoon & W. Aspray (Eds.) Women in IT: Reasons on
the Underrepresentation (pp. 89-114). Cambridge, MA: The
MIT Press.
[4] Guzdial, M. (2004). Programming environments for novices.
In S. Fincher and M. Petre (Eds.), Computer Science
Education Research (pp. 127-154). Lisse, The Netherlands:
Taylor & Francis.
[5] Kafai, Y. B., Desai, S., Peppler, K., Chiu, G. & Moya, J. (in
press). Mentoring Partnerships in a Community Technology
Center: A Constructionist Approach for Fostering Equitable
Service Learning. Mentoring & Tutoring.
[6] Kafai, Y., Peppler, K., & Chiu, G. (2007). High Tech
Programmers in Low Income Communities: Seeding Reform
in a Community Technology Center. In C. Steinfield, B.
Pentland, M. Ackerman, &. N. Contractor (Eds.),
Proceedings of Communities and Technologies 2007 (pp.
545-564). New York: Springer.
[7] Kelleher, C. & Pausch, R. (2005). Lowering the barriers to
programming: a taxonomy of programming environments
and languages for novice programmers. ACM Computing
Surveys, 37(2), 88-137.
[8] Papert, S. (1980). Mindstorms. New York: Basic Books.
[9] Peppler, K. & Kafai, Y. B. (2007). From SuperGoo to
Scratch: exploring creative digital media production in
informal learning. Learning, Media, and Technology, 32(2),
pp. 149–166.
[10] Peppler, K. & Kafai, Y. B. (under review). Creative Bytes:
The Technical, Creative, and Critical Practices of Media Arts
Production. Journal of the Learning Sciences.
[11] Resnick, M., Kafai, Y., & Maeda, J. (2003). ITR: A
Networked, Media-Rich Programming Environment to
Enhance Technological Fluency at After-School Centers.
Proposal [funded] to the National Science Foundation,
Washington, DC.
[12] Steinmetz, J. (2001). Computers and Squeak as
Environments for Learning. In Rose, K. and Guzdial, M.
(eds.), Squeak: Open Personal Computing and Multimedia,
pp. 453-482. Prentice Hall: New York.
[13] Resnick, M., Rusk, N., & Cooke, S. (1998). Computer
Clubhouse: Technological fluency in the inner city. In D.
Schon, B. Sanyal and W. Mitchell (Eds.), High technology
and low-income communities. Cambridge, MA: MIT Press.
[14] Sosniak, L. (2001). The 9% Challenge: Education in School
and Society. Teachers College Record, 103.
[15] Werner, L. L., Campe, S., and Denner, J. (2005). Middle
school girls + games programming = information technology
fluency. Proceedings of the 6th Conference on Information
Technology Education SIGITE ’05 (pp. 301-305). New York,
NY: ACM Press.
... In addition, students construct programs by using multimedia components such as text, audio, videos, graphic images, or pictures that are of interest to the students. The initial vision of the authors of Scratch was for after-school novice programming club members in the age range of 8 -16 years (Maloney et al., 2008). ...
... A product of research by the Lifelong Kindergarten Media Lab at MIT in conjunction with Yasmin Kafai at UCLA, Scratch was initially developed for use by young people in informal setups of homes and afterschool computer clubs (Maloney et al., 2008) but has now become the staples of primary and secondary schools (Rich et al., 2019;Szabo et al., 2019). Higher educational institutions now employ some forms of Scratch to introduce novice students to programming (Becker, 2019;Cárdenas-Cobo et al., 2021;Hijón-Neira et al., 2021). ...
... The vision of its developers was to create an engaging constructionist programming environment as part of the strategies for increasing participation of women and other minorities in computing, by providing an environment for users to design, create or remix multimedia programs (called scripts) of their interest (Fields et al., 2017;Maloney et al., 2008). That is, to motivate users so that autonomy given to them, inspires creative expressions leading to their computational thinking and programming ability development. ...
Full-text available
The need for software developers continues to grow, while students’ engagement, attrition, achievements, and diversity in novice students’ first programming classes (CS1) remain active global research concerns. It appears that conventional programming pedagogy involving mainly lectures and labs does not meet the learning needs of some CS1 students. Meanwhile, because of the ease of initiating novices from diverse backgrounds and interests, Scratch, a constructionist block-based programming environment, has become a popular staple in K-12 programming classes. Seymour Papert’s constructionism theory posits that students learn not just by spoon-feeding them with knowledge but especially as they are given the freedom to develop and share artefacts of interest with their peers. Scratch is now used in higher education, with limited and mixed impacts on CS1 students. In this PhD research project, conducted in two phases, the pilot and main studies, lasting two academic sessions, we employed a pretest-posttest non-equivalent control group design. The research aimed to compare CS1 students’ achievement between those in the conventional and constructionist programming classes. We also sought to investigate whether backgrounds such as academic level, programming, visual arts, age, and gender moderate CS1 achievements. In both studies, purposive sampling was employed to select polytechnics from two central Nigerian states, and selected schools were randomly assigned to the experimental and control groups. We then employed Coarsened Exact Matching algorithm to generate adequate treatment cases from both studies used in the analysis, two samples from each study. The results from the t-test and ANCOVA analysis of research data from both studies revealed a consistent pattern: CS1 students in the constructionist Scratch class outperformed their counterparts in the conventional class, although the impact was moderate. This implies that employing Scratch following constructionist pedagogy may be more engaging, leading to learning gains for college students, especially for those from disadvantaged backgrounds with no programming experience.
... [1], [2]). Furthermore, it has become possible for instructors of non-technical subjects to get actively involved in the design of their own games using tools such as Scratch [15], Script Ease [19] and Kodu [20]. ...
Full-text available
This paper presents the functional specifications of a training platform for use in the training of cadets and serving officers. The game aims to teach trainees that their decisions need to be based both on strategic goals as well as on constraints imposed by international law concerning rules of engagement, ethical codes of conduct or environmental issues. Existing techniques bearing similarities to the required solution are presented. The importance of the problem is hence demonstrated and the possibilities for enhancing the quality of the learning experience for both students and instructors are explored. The rules of a computer game suitable for the cadets training are presented. The game is shown to be sufficient for use in the teaching of strategy ethics. The study leads to high level specifications for the design of the proposed training game. The functional design of the proposed game is then explained and its rules are listed. The design of adaptive software agents that are capable of assuming the role of non-player characters is presented. Further research work necessary for the development of optimization algorithms necessary for the design is described.
... In terms of software, MakeCode runs in a web browser and supports a visual language similar to Scratch [26,32], in addition to text-based coding in Javascript and Python, see Figure 3(b). Many web browsers now support access to USB devices connected to their host computers over WebUSB, allowing a micro:bit program, compiled to machine code in the browser by MakeCode [4], to be copied directly onto the micro:bit. ...
Full-text available
Physical computing is becoming mainstream. More people than ever---from artists, makers and entrepreneurs to educators and students---are connecting microcontrollers with sensors and actuators to create new interactive devices. However, physical computing still presents many challenges and demands many skills, spanning electronics, low-level protocols, and software---road blocks that reduce participation. While USB has made connecting peripherals to a personal computing device (PC) trivial, USB components are expensive and require a PC to operate. This makes USB impractical for many physical computing scenarios where cost, size and low power operation are often important. We introduce Jacdac, an open-source hardware and software platform that brings the user experience of USB to physical computing at a fraction of the cost and resource requirements. It combines an intuitive connector, standardized hardware and software interfaces, a simple bus-based protocol that runs on virtually any microcontroller, and integration with Microsoft MakeCode for the micro:bit. In this way, Jacdac provides a low-cost, extensible web-based plug-and-play experience for physical computing. We evaluated Jacdac in an international hackathon involving over 80 participants who built functional artifacts with Jacdac. Interviews reveal that users find Jacdac intuitive and appreciate the plug-and-play experience where sensors and actuators are automatically discovered by the web browser in real-time.
Learning around artificial intelligence (AI)-powered technologies that attends to power is an urgent and widely felt priority among the learning sciences and CS ed broadly. Popular approaches to AI education focus on technical skills, with far less theoretical and practical work around critical and justice-centered AI learning. Adding to this literature, we discuss tool design and observed interactions in Drag vs AI workshops, where participants use hands-on makeup art as a medium for fooling, subverting, and refusing facial recognition. Our broader analysis asks how participants make sense of the technical and political aspects of AI, as they interact with AI through the Drag vs AI workshops’ modes of aesthetic transformation, tinkering, and resistance. In this paper, we focus on participants’ embodied algorithmic tinkering with AI and affordances for justice-centered computing education. Our analysis highlights how tinkering and play modes of interaction with AI materials can promote critical and agentive learning.
Adapting the behavior of robots and their interaction with other machines on the shop floor is typically accomplished by non-programmers. Often these non-programmers use visual languages to specify the robot’s and/or machine’s control logic. While visual languages are explored as a means to enable novices to program, there is little understanding of what problems novices face when tasked with realistic adaptation programming tasks on the shop floor. In this paper, we report the results of a controlled experiment where domain experts in the injection molding industry inspected and changed realistic programs involving a robot, injection molding machine, and additional external machines. We found that participants were comparably quick to understand the program behavior with a familiar sequential function chart-based language and a Blockly-based language used for the first time. We also observed that these non-programmers had difficulty in multiple aspects independent of language due to the interweaving of physical and software-centric interaction between robot and machine. We conclude that assistance needs to go beyond optimizing available language elements to include suggesting relevant programming elements and their sequence.
Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most offer only restricted access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the applications in our daily lives are distributed (i.e., their functionality depends on communicating with other computers or accessing resources and data on the internet), the limited support for beginners to envision and create such distributed programs is a lost opportunity. We argue that it is feasible to create environments with simple yet powerful abstractions that open up distributed computing and other widely-used but advanced computing concepts including networking, the Internet of Things, and cybersecurity to novices. The paper presents the architecture of and design decisions behind NetsBlox, a programming environment that supports these ideas. We show how NetsBlox expands opportunities for learning considerably: programs can access a wealth of online data and web services, and they can communicate with other projects. Moreover, the tool infrastructure enables young learners to collaborate with each other during program construction whether they share their physical location or study remotely. Importantly, providing access to the wider world will also help counter widespread student perceptions that block-based environments are mere toys, and show that they are capable of creating compelling applications. Finally, we hope to show that tools can be designed to democratize access to powerful ideas in computing.
Full-text available
Based on work in media studies, new literacy studies, applied linguistics, the arts and empirical research on the experiences of urban youths' informal media arts practices, we articulate a new vision for media education in the digital age that encompasses new genres, convergence, media mixes and participation. We first outline the history of how students' creative production has been used to meet the goals of media educators and highlight new trends in media education that are instructive for creative production. Our goal is to introduce and situate the new ways in which youth are participating in creative production and the subsequent impact that this might have on teaching and learning media education today. Findings from an ethnographic study are used to demonstrate the potential of youth producing new media, such as videogames and interactive art, on media education research and practice.
Full-text available
Mentoring programmes have gained increasing popularity in institutions of higher education to support undergraduates in community service or outreach efforts. Many of these programmes partner mentors with inner‐city youth, providing assistance in underserved communities while mentors gain experiences that connect theory and practice. Here we report on two years of fieldwork in a Community Technology Centre that created mentoring partnerships in which 36 liberal arts undergraduates engaged with local youth to design, create, and build technology projects involving graphics, video, music, and animation. We analysed over 200 field notes, which described their mentoring interactions over eight weeks and conducted exit interviews about their mentoring experiences. Our results indicate that mentors participated not just as more knowledgeable peers but also as facilitators, advisors, observers and, most importantly, as learners in this process. In the interviews, nearly all mentors reviewed assumptions about their own learning and mentoring, in addition to reflections about social issues. We discuss the importance of these findings for conceptualising mentoring as a partnership by creating more equitable interactions in service learning initiatives. We also address the role of constructionist activities in facilitating learning opportunities for both mentors and mentees.
Full-text available
A year or so later, Mike's mother was participating in a teachers'workshop at The Computer Museum in downtown Boston. She mentioned to the staff that her son was artistically talented, but she was worried because he was unemployed and not using his talents. They told her about the Computer Clubhouse, a new after-school center where inner-city youth could work on computer projects. They said the Clubhouse needed volunteers and suggested that she encourage Mike to apply. Mike was skeptical. "I had never touched a computer before," he remembers now. "I didn't think of them at all. " Mike's mother argued that volunteering at the Computer Clubhouse, and learning to use computers, might lead to a good job. Mike shrugged: "Whatever. "
Full-text available
For the last twenty years, issues of the digital divide have driven efforts around the world to address the lack of access to computers and the Internet, pertinent and language appropriate content, and technical skills in low-income communities (Schuler & Day, 2004a and b). The title of our paper makes reference to a milestone publication (Schon, Sanyal, & Mitchell, 1998) that showcased some of the early work and thinking in this area. Schon, Sanyal and Mitchell’s book edition included an article outlining the Computer Clubhouse, a type of community technology center model, which was developed to create opportunities for youth in low-income communities to become creators and designers of technologies by (1998). The model has been very successful scaling up, with over 110 Computer Clubhouses now in existence worldwide.
This chapter presents four themes that suggest some reasons why and how high school female students are — or are not — drawn into the field of computer science through their high school experiences. First, despite the national and local initiatives to “bring schools into the twenty-first century,” researchers discovered that few computer science learning opportunities actually exist at the high school level, especially in schools that serve communities of color. Second, they found that notions of relevance play a key role in influencing females' choices to enroll or not enroll in computer science classes. A limited and narrow presentation of what computer science is as well as what computer scientists actually do impacts students' take on how computer science could further their academic and career endeavors. Third, for the female students who do take computer science, researchers observed an accumulation of negative experiences in classroom settings, where greater male technology experience/expertise and female social isolation and insecurity are part of the cultural landscape. Fourth, all of these experiences are then compounded by the way that computer science is motivated and “interpreted” for the students.
Since the early 1960's, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system's authors' approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.
Conference Paper
Research indicates that (i) many women who take CS1 feel less experienced than (and therefore at a disadvantage to) their male counterparts at computer programming, and that (ii) by the time they reach high school, many young women view computing as "geeky" and "for nerds." This paper describes our Imaginary Worlds Camps -- a summer program in which we use Carnegie Mellon's Alice software to address these problems before students reach high school. The preliminary results are quite encouraging.