Scratch – A route to fluency with new technologies
In
the current scenario across the globe where technology is an integral
part of our lives, the younger generation is often referred to as
‘Digital Natives’ because of their apparent fluency with digital
technologies. Please note the use of the expression ‘apparent fluency’.
This is because although young people are comfortable sending text
messages (SMS), playing online games and browsing the web, such
activities do not seem to make youngsters ‘fluent’ with digital
technologies in the real sense of the word. To reiterate, despite the
constant interaction of young people with digital media, few of them
can create their own games, animations or simulations. In short, if
digital technology is considered as a language, it is as if youngsters
can “read” the language, but cannot “write” or express themselves using
digital technologies.
This
set the stage for the Scratch team that created the Scratch programming
language. When the Scratch team started off in 2003 to create the
language they had set a goal to develop an approach to computer
programming that would appeal to people who had not previously imagined
themselves as computer programmers. The team’s aim was to make it easy
for everyone, of all ages, backgrounds, and interests, to program their
own interactive stories, games, animations and simulations; and to
share their creations with other programmers.
The
Scratch programming language was released to the public in 2007 and
since then the Scratch website (http://scratch.mit.edu) has become a
very active online community where people share, discuss and remix
scratch programming projects. The collection of projects is quite
diverse - birthday cards, video games, interactive tutorials, virtual
tours and many others, all programmed in Scratch programming language.
The core audience on the Scratch website is between the ages of 8 and
16 though there is a sizeable group of adult participants as well.
As users of the Scratch website program and share interactive projects, they:
1. learn mathematical and computational concepts
2. learn to think creatively
3. reason systematically and
4. work collaboratively
The
above skills are often considered essential skills for the twenty first
century. In fact, the primary goal of the team that created Scratch was
not to prepare people for careers as professional programmers, but
rather to nurture the development of a new generation of creative,
systematic thinkers who are comfortable using programming to express
their ideas. Further, digital fluency requires not just the ability to
chat, browse and interact, but also the ability to design, create and
invent with new media.
When
personal computers were first introduced in the early 1980s, there was
a lot of enthusiasm for teaching all children how to program. The
commonly used languages were LOGO [Logic Oriented Graphic Oriented] or BASIC [Beginners All Purpose
Symbolic Instruction Code]. (My school taught computer programming in
1988 in BBC BASIC, a variant of BASIC for BBC Microcomputers).
The main factors that prevented the initial enthusiasm from being long lasting were:
1. Difficulty in mastering the syntax of programming
2. Programming based on scientific/mathematical activities that did not generate enough interest in children
Based on these past programming initiative experiences, the Scratch team established three core design principles for Scratch:
1. more tinkerable
2. more meaningful
3. more social
1.
More Tinkerable: The Scratch grammar is based on a collection of
graphical “programming blocks” that children snap together to create
programs. Connectors on the blocks suggest how they should be put
together. Children can start by tinkering with the blocks, snapping
them together in different sequences and combinations to see what
happens. There is none of the obscure syntax or punctuation of
traditional programming languages. It is easy to get started with and
the experience is playful.
Figure1: Sample Scratch Scripts
Scratch
blocks are shaped to fit together only in ways that make syntactic
sense. Control structures like ‘forever’ and ‘repeat’ are C-shaped to
suggest that blocks should be placed inside and to indicate the concept
of scoping. Blocks that output values are shaped according to the types
of values they return: ovals for numbers and hexagons for Booleans.
Conditional blocks (if and repeat-until) have a hexagon shaped voids,
indicating a Boolean is required.
2.
More Meaningful: It is widely accepted that people learn best, and
enjoy it most, when they are working on personally meaningful projects.
While developing Scratch the team had attached a high priority on:
a.
diversity – supporting many different types of projects such as
stories, games, animations, simulations, etc., so that people with
widely varying interests can all work on projects that they care deeply
about.
b.
personalisation – making it easy for people to personalize their
scratch projects by importing photos and music clips, recording voices,
creating graphics.
3.
More Social: The development of the Scratch programming language has
been tightly coupled with the development of the Scratch website. From
the Scratch team’s perspective, for Scratch to succeed, it had to be
linked to a community, where people could support one another,
collaborate with one another, critique on one another and build on one
another’s work. The concept of sharing is built right into the Scratch
User Interface, with a prominent Share menu and icon at the top of the
screen, which allows the project to be uploaded to the Scratch website.
Once a project is on the website, anyone can run the project within a
browser, comment on the project, and vote for the project or download
the project to view and revise the scripts. All projects shared on the
website are covered by Creative Commons license.
Looking
at future directions of Scratch programming language, following are few
of the major directions in which the project will be moving ahead:
1. More tinkerable, More Meaningful and More Social
2. Scratch Sensor Board – for interacting with the physical world
3. Scratch for mobile devices
4. Web based version of Scratch
5. Scratch-Ed – for Scratch educators; to share ideas, experiences and lesson plans
This brings us to the end of this blog post on Scratch, which is on a mission to expand the notion of digital fluency.
~ Sunish