Scratch (programming language)

From Wikipedia, the free encyclopedia

  (Redirected from Scratch programming language)
Jump to: navigation, search
Scratch
Scratch-logo hi-res.png Scratchcat.svg
Paradigm object-oriented, educational
Appeared in 2007
Designed by Mitchel Resnick
Developer Lifelong Kindergarten Group at the MIT Media Lab[1]
Stable release 1.4 (July 2, 2009)
Typing discipline dynamic
Major implementations Scratch
Influenced by Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
Website http://scratch.mit.edu/

Scratch is a computer application aimed primarily at children that allows them to explore and experiment with the concepts of computer programming by using the simple graphical interface.[2]. It was proposed and developed by the Lifelong Kindergarten group at the MIT Media Lab by a team led by Mitchel Resnick[3] and first appeared in the summer of 2007.[4] Scratch is available for free and can be installed on any Windows or Mac OS X computer with various installation options for computers running Linux .

The name Scratch is derived from the turntablist technique of scratching,[5] and refers to both the language and its implementation. The similarity to musical "scratching” is the easy reusability of pieces: in Scratch all the interactive objects, graphics, and sounds 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.

Contents

[edit] The language and environment

The Scratch slogan is "Imagine · Program · Share." The emphasis on sharing is an important part of the pedagogy for Scratch. Programs are not seen as black boxes, but as objects for remixing to make new projects. Scratch programs can be uploaded directly from the development environment to personal web pages on the Scratch website, where other members of the Scratch community can download them (including the full source code) for learning or for remixing into new projects. The projects published in the Scratch Community Website are licensed under a Creative Commons attribution and are played in a Java applet known as the Scratch Player. The Scratch Player allows Scratch programs to be run from almost any browser.

Scratch is used worldwide in many different settings: schools, museums[6], community centers, and homes. It is intended especially for 8- to 16-year-olds, but younger children can work on Scratch projects with their parents or older siblings, and college students use Scratch in some introductory computer science classes[7], [8].

In designing the language, the 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 multi-media functions and multi-threaded programming style and the rather limited scope of the Scratch programming language.

Screenshot of Scratch 1.4's development environment at startup (running on Apple Inc.'s Mac OS X Snow Leopard)

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 8 groups of blocks: movement, looks, sound, pen, control, sensing, numbers, and variables.

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). For example, multi-threaded code with message passing is fundamental to Scratch, but it has no procedures or file Input/Output (I/O) and only supports one-dimensional arrays, known as Lists. Floating point scalars and strings are supported as of version 1.3, but with limited string manipulation capability.

[edit] See also

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

[edit] References

[edit] External links