Scratch programming language
Encyclopedia
Scratch is an educational programming language
Educational programming language
An educational programming language is a programming language that is designed primarily as a learning instrument and not so much as a tool for writing programs for real-world work.-Learning paths:...

 that allows people of any experience, background and age to experiment with the concepts of fully versatile computer programming by snapping together visual programming blocks to control images, music and sound. It is developed by the Lifelong Kindergarten group at the MIT Media Lab
MIT Media Lab
The MIT Media Lab is a laboratory of MIT School of Architecture and Planning. Devoted to research projects at the convergence of design, multimedia and technology, the Media Lab has been widely popularized since the 1990s by business and technology publications such as Wired and Red Herring for a...

 by a team led by Mitchel Resnick
Mitchel Resnick
Mitchel Resnick is LEGO Papert Professor of Learning Research, Director of the Okawa Center, and Director of the at the MIT Media Lab. Resnick currently serves as the head of the Media Arts and Sciences academic program, the academic program that grants master's degrees and Ph.Ds at the MIT Media...

 and first appeared in the summer of 2006. Scratch can be installed and freely redistributed on any Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 or Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 computer. The source code is made available under a license that allows modifications for non-commercial uses.

The name Scratch is derived from the turntablist
Turntablism
Turntablism is the art of manipulating sounds and creating music using phonograph turntables and a DJ mixer.The word 'turntablist' was coined in 1995 by DJ Babu to describe the difference between a DJ who just plays records, and one who performs by touching and moving the records, stylus and mixer...

 technique of scratching
Scratching
Scratching is a DJ or turntablist technique used to produce distinctive sounds by moving a vinyl record back and forth on a turntable while optionally manipulating the crossfader on a DJ mixer. While scratching is most commonly associated with hip hop music, since the late 1980s, it has been used...

, and refers to both the language and its implementation. The similarity to musical "scratching” is the easy reusability of pieces: in Scratch all the objects, graphics, sounds, and scripts can be easily imported to a new program and combined in new ways allowing beginners to get quick results and be motivated to try further.

Languages and environments

Scratch is used worldwide in many different settings: schools, museums, community centers, and homes. It is intended especially for 6- to 16-year-olds, but people of all ages have used Scratch. For example, younger children can create projects with their parents or older siblings, and college students use Scratch in some introductory computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 classes.

In designing the language, the creators' main priority was to make the language and development environment intuitive and easily learned by children who had no previous programming experience. 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.
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 and sprite 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.
In versions 1.3.1 and lower, operators was named numbers.

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
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....

, Logo
Logo (programming language)
Logo is a multi-paradigm computer programming language used in education. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. It was originally conceived and written as functional programming language, and drove a mechanical turtle as an output...

, or Alice
Alice (software)
Alice is a freeware object-oriented educational programming language with an integrated development environment . Later versions are implemented in Java. Alice uses a drag and drop environment to create computer animations using 3D models...

). For example, multi-threaded code with message passing is fundamental to Scratch, but it has no procedures or file Input/Output
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

 (I/O) and only supports one-dimensional arrays, known as Lists. Floating point scalars
Scalar (computing)
In computing, a scalar variable or field is one that can hold only one value at a time; as opposed to composite variables like array, list, hash, record, etc. In some contexts, a scalar value may be understood to be numeric. A scalar data type is the type of a scalar variable...

 and strings
String (computer science)
In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....

 are supported as of version 1.4, but with limited string manipulation capability.

Online community

The Scratch online community's slogan "Imagine, Program, Share" puts an emphasis on 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 comment, tag, favorite and "love" others' projects and share ideas. All projects on the website are shared under a Creative Commons
Creative Commons
Creative Commons is a non-profit organization headquartered in Mountain View, California, United States devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons...

 attribution and share-alike license and can be played in any web browser (using a Java applet
Java applet
A Java applet is an applet delivered to users in the form of Java bytecode. Java applets can run in a Web browser using a Java Virtual Machine , or in Sun's AppletViewer, a stand-alone tool for testing applets...

 or Flash Player). The website receives close to 10 million page views per month and as of September 2011 it had more than 850,000 registered members and over 2,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
Mexico
The United Mexican States , commonly known as Mexico , is a federal constitutional republic in North America. It is bordered on the north by the United States; on the south and west by the Pacific Ocean; on the southeast by Guatemala, Belize, and the Caribbean Sea; and on the east by the Gulf of...

 and Israel
Israel
The State of Israel is a parliamentary republic located in the Middle East, along the eastern shore of the Mediterranean Sea...

 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.
Users on Scratch can add other users as friends.

Derivatives

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
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

. One of them, BYOB (Build Your Own Blocks, developed by Jens Mönig), which allows users to create their own blocks, has been used to teach computer science at Berkeley
Berkeley, California
Berkeley is a city on the east shore of the San Francisco Bay in Northern California, United States. Its neighbors to the south are the cities of Oakland and Emeryville. To the north is the city of Albany and the unincorporated community of Kensington...

. The source-code of Scratch and its derivatives are based on Squeak
Squeak
The Squeak programming language is a Smalltalk implementation. It is object-oriented, class-based and reflective.It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers...

, which is based on Smalltalk-80. Scratch is open-source and can be downloaded from their Info Website .

See also

The following youth computing projects also originated in the MIT Lifelong Kindergarten Group:

  • Computer Clubhouse
    Computer Clubhouse
    The Computer Clubhouse is a worldwide network of after-school learning settings, founded by Mitchel Resnick and Natalie Rusk of the MIT Media Lab in Boston, USA...

  • Lego Mindstorms
    Lego Mindstorms
    The LEGO Mindstorm series of kits contain software and hardware to create small, customizable and programmable robots. They include a programmable 'Brick' computer that controls the system, a set of modular sensors and motors, and LEGO parts from the Technics line to create the mechanical...

  • Programmable Cricket
    Programmable Cricket
    Programmable Crickets, known commercially as PicoCrickets, are robotic toys in the form of programmable bricks. They are used to construct artistic projects.Crickets were developed at MIT Media Lab, and were launched commercially in Montreal in 2006....


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK