Checked content

Scratch (programming language)

Related subjects: Computer Programming

Background to the schools Wikipedia

SOS Children offer a complete download of this selection for schools for use on schools intranets. SOS Child sponsorship is cool!

Scratch Logo.svg Scratch cat large.png
Paradigm(s) event-driven
Appeared in 2006
Designed by Mitchel Resnick
Developer MIT Media Lab Lifelong Kindergarten Group
Stable release 2.0 (May 9, 2013)
Typing discipline dynamic
Major implementations Scratch
Influenced by Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
Implementation language Squeak
License GPLv2 and Scratch Source Code License
Usual filename extensions .sb .sb2

Scratch is a programming language learning environment enabling beginners to get results without having to learn syntactically correct writing first. Created by the MIT Media Lab, it is intended to motivate for further learning through playfully experimenting and creating projects, such as interactive animations, games, etc. Advocates suggest that individuals who use Scratch at a young age develop a solid foundation of knowledge that can help prepare them for the use of higher level programming languages and math.

Scratch is more concerned about the logic behind programming and solving problems. The great advantage of scratch is that complicated solution can be done on there. Scratch allows for user graphical interface which not only encourages beginners but they also can see what they input.

The name Scratch derived from the turntablism's technique of scratching(Mixing Sounds) and stresses the similarity of the process of programming to the process of mixing/scratching instead of its similarity to the processes of writing (i.e. scripting).

Scratch is available for Windows, Mac OS X, Linux, and the cloud. The source code is made available under GPLv2 license and Scratch Source Code License.


The first version of Scratch was developed in 2003 by the Lifelong Kindergarten group, led by Mitchel Resnick, at the MIT Media Lab. Scratch allows for constructing and testing through mostly tactile process because the creators' first priority was to make it as easily learned by children as possible.

The tactile and visual GUI of Scratch allows children to explore by dragging-and-dropping blocks of conditions (with parameters) and of consequences ("actions") onto selected agents (called " sprites") and backgrounds (called "stages") how interactive animations, presentations, stories, and simple games can be playfully and programmatically created. To include children who are not able to write syntactically correct structures – nor read them, yet – visually grouped blocks can be tested by clicking on them and they can be easily replaced with different ones in order to re-mix, modify, and create new versions of projects.

Scratch user interface

Screenshot of Scratch 2.0's development environment at startup

The user interface for the Scratch development environment divides the screen into several panes: on the left is the blocks palette, in the middle the current sprite info and scripts area, and on the right the stage (backgrounds) and "sprites" list.

The blocks palette has code fragments (called "blocks") that can be dragged onto the scripts area to make programs. To keep the palette from being too big, it is organized into eight groups of blocks: movement, looks, sound, pen, control, sensing, operators, and variables. Different kinds of blocks have different colors and shapes.

In versions 1.3.1 and lower, operators was named numbers. Multi-threaded code with message passing is fundamental to Scratch, but the current version does not treat procedures as first class structures and has no file I/O options and only supports one-dimensional arrays, known as Lists. Floating point scalars and strings are supported as of version 1.4, but with limited string manipulation capability. There is a strong contrast between the powerful multimedia functions and multi-threaded programming style and the rather limited scope of the Scratch programming language. On May 3rd, 2013, Scratch closed for 3 days to update to Scratch 2.0. The update changed the look of the site and included an online project editor. Scratch 2.0 is still in development.

Community of users

Scratch is used in many different settings: schools, museums, community centers, and homes. For example, younger children can create projects with their parents or older siblings, and college students use Scratch in some introductory computer science classes (including Harvard's introductory computer class). Via localization files downloaded with Scratch its interface language can be changed to a language of choice since Scratch is used in different parts of the world. The Johns Hopkins University Centre for Talented Youth offers an online course on Scratch programming for students in grade 6 and up through the CTYOnline program.

Empirical studies were made of various features—those that interfered with intuitive learning were discarded, while those that encouraged beginners and made it easy for them to explore and learn were kept. Some of the results are surprising, making Scratch quite different from other teaching languages (such as BASIC, Logo, or Alice).

Online community

The Scratch online community's slogan "Imagine, Program, Share" indicates that sharing and the social aspects of creativity as important parts of the philosophy behind Scratch.

Scratch projects are not seen as black boxes but as objects for remixing to make new projects. Projects can be uploaded directly from the development environment to the Scratch website and any member of the community can download their full source code to study or to remix into new projects. Members can also create project galleries, comment, tag, favorite and "love" others' projects and share ideas. Projects range from games to animations to chatbots. All projects on the website are shared under a Creative Commons attribution and share-alike license and can be played in a web browser (using a Java applet or Flash Player, which are not available for iPhones/iPads). The website receives close to 10 million page views per month and as of January 2, 2013 it had 1,349,093 registered members (however, only 402,697 users have shared projects), and over 3,000,000 projects (every minute more than one project gets uploaded). The website frequently establishes "Scratch Design Studio" challenges to encourage creation and sharing by providing users with a basic design concept. There are custom home pages for Mexico and Israel that display local content in some sections of the home page. There are also local independent Scratch websites in countries such as Portugal and the United Arab Emirates. In 2008, the Scratch online community platform (named "ScratchR") received an honorary mention in the Ars Electronica Prix. There is also an online community for educators, called ScratchEd. Scratch is also a fun literary structure, with online roleplays that range in many different genres.


A number of Scratch derivatives called Scratch Modifications have been created using the source code of Scratch version 1.4. These programs are a variation of Scratch that normally include a few extra "blocks" or changes to the GUI.

Some of them additionally introduce shifts in underlying approach to computing, such as Build Your Own Blocks or shorter BYOB, by not only allowing users to "build their own blocks", but featuring first class procedures (lambda), first class lists (including lists of lists), and first class truly object oriented sprites with prototyping inheritance, which are not part of Scratch. BYOB was developed by Jens Mönig with documentation provided by Brian Harvey from University of California, Berkeley and has been used to teach "The Beauty and Joy of Computing" introductory course in CS for non-CS-major students.

The source-code of Scratch and its derivatives are based on Squeak, which is based on Smalltalk-80.

Retrieved from ""