Scratch programming language

Scratch programming language

Infobox programming language
name = Scratch

paradigm = object-oriented, educational
year = 2007
designer = Mitchel Resnick
developer = Mitchel Resnick, John Maloney, Natalie Rusk, Evelyn Eastmond, Tammy Stern, Amon Millner, Jay Silver, and Brian Silverman
latest_release_version = 1.3
latest_release_date = September 3 2008
typing = dynamic
implementations = Scratch
dialects =
influenced_by = Logo, Smalltalk,
HyperCard, StarLogo, AgentSheets, Etoys, Tweak
influenced =

Scratch is an interpreted dynamic visual programming language based on and implemented in Squeak. Being dynamic, it lets code be changedeven as programs are running. It has the goal of teaching programmingconcepts to teens and letting them create games, videos, and music. It canbe downloaded for free and is being used in a wide variety of in-school andafter-school settings around the world.

Scratch's name refers to the turntablist technique of
scratching, and refers to both the language and its implementation. Thesimilarity to musical “scratching” is the easy reusability of pieces: in Scratchall the interactive objects, graphics, and sounds can be easily imported to anew program and combined in new ways. That way, beginners can get quickresults and be motivated to try further.

The website for Scratch shows rapid growth of the Scratch community; fromthe beginning in March 2007 to June 2008, over 119,00 accounts haveregistered at the website, and over 148,000 projects have been developed and uploaded. The rapidlygrowing community is international, and the Scratch language anddevelopment environment has been translated into several languages, withmore translations in progress.

Scratch is being developed by a small team of researchers in the LifelongKindergarten Group [ [ "Lifelong KindergartenGroup"] ] at the MIT Media Lab. [ ["Scratch"] Retrieved May 25, 2007.]

Use as a teaching language

Scratch is being used worldwide in various schools and educationalorganizations. The Scratch website has developed a community ofbeginning programmers, students, teachers, and hobbyists, who motivateeach other to develop their creativity and programming skills. One of theforums on the Scratch website is dedicated to discussions amongeducators.

The Scratch slogan is "Imagine · Program · Share." The emphasis onsharing is an important part of the pedagogy for Scratch. Programs are notseen as black boxes, but as objects for remixing to make new projects. Theonly way to make a program available for use is by releasing the sourcecode for it.

Development environment, web site, and Scratch Player

The development environment for Scratch is downloadable for free and canbe installed on any Windows or Mac OS Xcomputer. (Linux versions are not available yet, but [ this Scratch forum topic] offers download of an unofficial Linux version.) The Scratch development environment is implemented in Squeak, a Smalltalk development environment, providing uniform cross-platform behavior.

Apple Inc.'s Mac OS X)] Scratch programs can be uploaded directly from the developmentenvironment to personal web pages on the Scratch website, where othermembers of the Scratch community can download them (including the fullsource code) for learning or for remixing into new projects. The websitealso provides for members of the community to comment on projects, as wellas having general discussion forums, and galleries of projects.Programs developed in Scratch can be run either with the developmentenvironment or by a Java applet knownas the Scratch Player. The Scratch-Player allows Scratch programs to berun from almost any browser.

Principles of language scope and usage

In designing the language, the main priority was to make the language anddevelopment environment intuitive and easily learned by children who had noprevious programming experience. There is a strong contrast between thepower multi-media functions and multi-threaded programming style and therather limited scope of the programming language.

Empirical studies were made of various features—those that interfered withintuitive learning were discarded, while those that encouraged beginners andmade it easy for them to explore and learn were kept. Some of the resultsare 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.

Code is grouped into different sprites, each of which can be movedindependently and have multiple costumes for animation. The language ismore similar to animation languages like Flash
ActionScript than to traditional programming languages.

The focus was always on playful learning, so that elementary school childrencan make simple projects and teens can quickly get impressive results.There are also a number of experienced adult programmers in the Scratchcommunity, generally looking for ways to teach programming to theirchildren. The adults generally react favorably to the quick and easydevelopment environment, despite the rather strong restrictions of thelanguage.

The user interface for the Scratch development environment divides thescreen into several panes: on the left is the blocks palette, in the middle thecurrent 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 draggedonto the scripts area to make programs. To keep the palette from being toobig, it is organized into 8 groups of blocks: movement, looks, sound, pen,control, sensing, numbers, and variables.

Source code

The source-code for Scratch can be downloaded from [ this website.]

Older versions

Anyone can download older versions of Scratch from [ this Scratch forums topic.] Please note that only the current version of Scratch is supported, and the current version is recommended for use. The most current version can be downloaded from [ the Scratch download page.]


External links

* [ Scratch] home page
* [ Open Directory: Programming: Languages: Scratch]
* [ Lifelong Kindergarten Group - developers of Scratch]
* [ Chirp, a "community edition" of Scratch written by user Jens]

Articles about Scratch on the news

* [ Free tool offers 'easy' coding]
* [ A Programming Language Like Playing With Blocks]
* [ With simplified code, programming becomes child's play]

Academic papers about or referring to Scratch

* [ Maloney, J., Burd, L., Kafai, Y., Rusk, N., Silverman, B., and Resnick, M. (2004). Scratch: A Sneak Preview. Second International Conference on Creating, Connecting, and Collaborating through Computing. Kyoto, Japan, pp. 104-109.]
* [ Resnick, M., Kafai, Y., Maloney, J., Rusk, N., Burd, L., & Silverman, B. (2003). A Networked, Media-Rich Programming Environment to Enhance Technological Fluency at After-School Centers in Economically-Disadvantaged Communities. Proposal to National Science Foundation.]
* [ Peppler, K., & Kafai, Y. (2005). Creative coding: The role of art and programming in the K-12 educational context.]
* [ Resnick, M., Maloney, J., & Rusk, N. (2006). Scratch and technological fluency (Powerpoint slide 2.5MB).]
* [ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. interactions 15, 2 (Mar. 2008), 50-53.]

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • 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 real world application programs.ome examplesChildren* AgentSheets is an award winning game and …   Wikipedia

  • Etoys (programming language) — Infobox programming language name = Etoys paradigm = object oriented prototype based, educational year = 1996 designer = Alan Kay developer = Scott Wallace, Ted Kaehler, John Maloney, Andreas Raab latest release version = latest release date =… …   Wikipedia

  • Visual programming language — A Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial… …   Wikipedia

  • Logo (programming language) — LOGO redirects here. For other uses, see LOGO (disambiguation). Logo Paradigm(s) multi paradigm:functional educational, procedural, reflective Appeared in …   Wikipedia

  • Lua (programming language) — Infobox programming language name = Lua paradigm = Multi paradigm: scripting, imperative, functional year = 1993 designer = Roberto Ierusalimschy Waldemar Celes Luiz Henrique de Figueiredo developer = latest release version = 5.1.4 latest release …   Wikipedia

  • Forth (programming language) — infobox programming language name = Forth paradigm = Procedural, stack oriented year = 1970s designer = Charles H. Moore typing = typeless dialects = colorForth, Open Firmware implementations = Forth, Inc., GNU Forth, MPE influenced by =… …   Wikipedia

  • Euphoria (programming language) — Euphoria openEuphoria logo Paradigm(s) Imperative, procedural Appeared in 1993 Designed by Jeremy Cowgar, Robert Craig (original), Matt Lewis, Derek Parnell …   Wikipedia

  • Scratch (Programmiersprache) — Scratch Basisdaten Paradigmen: Objektorientierte Programmierung Erscheinungsjahr: 2007 Designer …   Deutsch Wikipedia

  • Scratch — may refer to:MusicRecordings* Scratch (album), by Kaela Kimura * Scratch (soundtrack), the soundtrack to the film Scratch * Peter Gabriel (1978 album), a self titled album often referred to as Scratch * Scratch, a song by Morphine on the album… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”