m (1 revision: Importing category pages...)
(Fixed)
 
(295 intermediate revisions by 94 users not shown)
Line 1: Line 1:
[[File:Scratch_Cat.png|thumb|120px|The Scratch Cat, the official Scratch mascot]]
+
{{April Fools}}__INDEX__
'''Scratch''' is a free, easy to use, "[http://en.wikipedia.org/wiki/Drag-and-drop drag-and-drop]" [http://en.wikipedia.org/wiki/Programming_language programming language]. It can be downloaded for free [http://scratch.mit.edu/download here]. It is developed by the [[Scratch Team]] and hosted (along with the shared [[project|projects]] created with it) on the [http://scratch.mit.edu official MIT subsite].
+
[[File:ScratchCat3.0.svg|thumb|120px|The [[Scratch Cat]], the official Scratch mascot.]]
 +
[[File:The Scratch Logo.png|thumb|The '''Scratch logo'''.]]
 +
{{External Programs}}
 +
{{about|the programming language|its website|Scratch Website}}
 +
'''[https://scratch.mit.edu Scratch]''' is a free [[wikipedia:Educational programming language|educational]] [[wikipedia:Programming language|programming language]] that was developed by the [[Lifelong Kindergarten Group]] at the [[Massachusetts Institute of Technology]] (MIT) with over 51 million registered [[Scratcher|users]] and 48 million shared [[projects]].<ref>https://scratch.mit.edu/statistics/</ref> The current version, [[Scratch 3.0|3.0]], can be accessed with the online editor [https://scratch.mit.edu/projects/editor/ here] or downloaded [https://scratch.mit.edu/download/ here] (the previous version, [[Scratch 2.0]], can be downloaded [https://scratch.mit.edu/download/scratch2 here]). It is geared towards kids ages to 8-16 from 2nd grade to high school.
  
The next version, [[Scratch 2.0]], is to be released in 2011.
+
Scratch is designed to be fun, educational, and easy to learn. It has tools for creating interactive stories, [[Game Projects|games]], [[Art Projects|art]], [[Simulation Projects|simulations]], and more, using block-based programming. Scratch also has its own [[Paint Editor|paint editor]] and [[Sound Editor|sound editor]] built-in.
==Use==
+
<!--New section coming soon! [[User:CrazyBoy826/Sandbox]]-->
Scratch is used in schools around the world as a means of introducing basic computer programming to children. It also used outside of schools, introduced by friends or parents.
 
  
Children gain an understanding of the fundamentals of programming with Scratch, and eventually move on to other programming languages.
+
Users program in Scratch by dragging [[blocks]] from the [[Block Palette|block palette]] and attaching them to other blocks like a jigsaw puzzle. Structures of multiple blocks are called [[script]]s. This method of programming (building code with blocks) is referred to as "[[wikipedia:Drag and drop|drag-and-drop programming]]".
  
During their use of Scratch, children can create, [[remix]], download, and [[Collaboration|collaborate]] with others on Scratch projects.
+
== History ==
 +
{{main|Scratch Versions}}
 +
Scratch began development in 2003 and was released to the public in [[Timeline#2007|2007]]. [[Scratch 1.0]], the first version, was very similar to [[Scratch 1.4]]. At that time, only the offline editor existed; the website was a small blog where projects could be uploaded and played. As Scratch grew, the website was made larger. [[Scratch 1.1]], [[Scratch 1.2]], [[Scratch 1.3]], and [[Scratch 1.4]] were released. At this point, Scratch had millions of users and projects, and a lot of new features.
  
== Versions ==
+
Upon the release of [[Scratch 2.0]] in [[Timeline#2013|2013]], the website and [[Scratch User Interface|User Interface]] were changed. Scratch continued to grow, achieving 30 million users and projects. [[Scratch 3.0]] was released in [[Timeline#2019|2019]].
 +
 
 +
Because of the large expansion of the Scratch community, the [[Scratch Foundation]] has expanded and it has lead the design, development, and support of Scratch since March 12th, 2019.<ref>https://medium.com/@mres/supporting-the-growth-of-scratch-e56dc7f84453</ref> MIT will continue to collaborate closely with the Scratch Foundation.
  
=== Scratch 1.4 ===
+
== Uses ==
 +
Scratch is widely used in schools around the world as a means of introducing basic computer programming to children. It is also used outside of schools. Some teachers even use [[Student and Teacher Accounts|Teacher Accounts]] to monitor students while having fun in the Scratch Community. Children and even adults gain an understanding of the fundamentals of programming with Scratch and often move on to [[Alternatives to Scratch|other programming languages]]. During their use of Scratch, people can create, [[remix]], and [[Collaboration (group)|collaborate]] with others on [[Project|Scratch projects]].
  
Released officially on July 19, 2009.
+
== Environment ==
 +
{{main|Scratch User Interface}}
 +
In designing the language, the creators' main priority was to make the language and development environment simple, intuitive and easily learnable 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.
  
'''New features:'''
+
[[File:Scratch 3.0 Prototype.png|thumb|273px|[[Scratch 3.0]]'s development environment at startup.]]The [[Scratch User Interface|user interface]] for the Scratch development environment divides the screen into several panes: on the left is the blocks palette, in the middle the 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 from the palette to make programs. To keep the palette organized and for ease of use, it is organized into nine groups of blocks: motion, looks, sound, control, events, sensing, operators, variables, and more blocks.
  
*New blocks for string handling (such as joining two phrases or words together, or checking the length of a word) and "asking" (to ask the user information such as his name).
+
== Origin of the Word ==
*The [[Ask () And Wait (block)|Ask Block]] (asks for input from the user).
+
"Scratch" was used as the title for The Lifelong Kindergarten Group's programming language, as it is to do with "scratching" referring to music.
*A new boolean block for lists, "___ contains ___", which checks if the list has a certain item into it.
+
{{quote|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.|[[wikipedia:Scratching|Wikipedia]]}}
*You can now use a webcam to take pictures, to use them in [[Sprite|sprites]] and backgrounds.
+
Likewise, within Scratch, you take different bits of code (blocks), put them together, and have made something new.
*There are some "hidden" blocks under the Motion category, for use with the LEGO WeDo Robotics kit.
+
{{quote|We take the name "Scratch," from the way that hip-hop disk jockeys scratch with music. They take pieces of music and then combine them together in unexpected and creative ways.|Mitchell Resnick, Lifelong Kindergarten Group at MIT}}
  
*The "sensor value" block in the [[Sensing Blocks]] category supports the tilt and distance sensors.
+
=== Variants of the Word ===
*Modified GUI.
+
The word "Scratch" has spawned other phrases that have become popular amongst users of Scratch:
*Support for resolutions as small as 800×600.
+
* [[New Scratcher Status|New Scratcher]] {{-}} A user who has the New Scratcher status
*A new stage mode, added to presentation mode and regular mode: Small stage mode.
+
* [[Scratcher]] {{-}} A user of Scratch
*Projects are now stored in a "My Scratch Projects" folder in My Documents.
+
* Scratching {{-}} A verb which means to use Scratch
*Numbers (the blocks color-coded lime-green) have been changed to [[Operators]].
+
* Scratched {{-}} A project that is an attempted replica of another game. e.g. "Pac-man Scratched"
*A revised color picker.
+
* [[Scratch Time]] {{-}} The timezone that the [[Scratch Forums|forums]] are set in (EST/EDT)
*Various minor changes as well.
+
* [[Scratch Team]] {{-}} The moderators and developers of the website.
 +
* Scratch On! {{-}} A phrase coined by the [[Scratch Team]], and used by them (although has been adapted by other Scratchers as well) to encourage users, meaning "carry on using Scratch"
  
'''Variants:'''
+
== Motto ==
 +
Scratch's motto is "Imagine, Program, Share". This follows the basic principle of creating a project: one comes up with an idea ("Imagine"), programs the idea in Scratch ("Program"), and then publishes it in the community ("Share"). Since the release of [[Scratch 2.0]], the motto has been less apparent throughout the website; the front page no longer has the motto but instead a description of what Scratch is and what one can do with it.
  
*Release Candidate: Released on June 5, 2009, this version could be downloaded by people willing to test out it.
+
== Versions ==
*"Scratch Day Beta": Given out at various Scratch Day celebrations on May 16, 2009. One particular thing about this version is that it had a feature named "Mesh", which allowed online connectivity.
+
{{main|Scratch Versions}}
 +
Scratch is currently on [[Scratch 3.0|version 3.0]]. The online editor was officially released on January 2, 2019, and the offline editor at a later date. Its predecessor is [[Scratch 2.0]], which was released on May 9, 2013. The previous, older versions are [[Scratch 1.4]], [[Scratch 1.3]], [[Scratch 1.2]], [[Scratch 1.1]], and [[Scratch 1.0]]. Each version had significant changes, especially the jump from 2.0 to 3.0. Not only did the program update with version 2.0 and 3.0, but the entire website was redone.
  
=== Scratch 1.3===
+
== Features ==
Released officially on September 2, 2008.
+
* Scratch is [[Wikipedia:Turing completeness|Turing complete]].
 +
* It is primarily [[Event Based Programming|event-driven]].
 +
* Whether or not it is [[Object-Oriented Programming|OOP]] is debated in the community.
 +
* Scratch has [[variable]]s and [[list]]s for data storage, and [[array]]s can be replicated.
 +
* Scratch is ''not'' atomic in repetition, though that can be simulated with [[Single Frame]] programming.
 +
* Scratch 2.0 does support [[procedure]]s, and [[recursion]].
 +
* Scratch has many simplified [[casting]] rules. Data is not, however, first-class {{-}} you cannot have first-class lists, sprites, or procedures (lambda).
  
'''New features:'''
+
== OS Permissions ==
*42 languages.
+
Scratch has limited hardware/OS access and is a very safe program. The following can be accessed by Scratch:
*[[Variable]]s can handle strings (non-digit text)
+
* Ambient volume
*Variables can show and hide.
+
* Mouse position relative to the Scratch frame
*[[List]]s (ways of storing multiple pieces of information in one place).
+
* Key presses, only if Scratch is in focus
*[[Comment]]s (small rectangles that you can type into - can attach to blocks) have been added.
+
* In Scratch 3.0, some movements are provided as sensor values, using a webcam for image input.
*Given fonts are replaced with the fonts from your computer.
+
* The filesystem can be accessed while in development, but not while running.
*[[If (block)|If]], [[Repeat () (block)|Repeat]], and [[Forever (block)|Forever]] blocks automatically wrap around block stacks when dragged over them.
+
* Scratch can communicate externally to a [[Lego WeDo]], [[EV3|Lego Mindstorms EV3]], [[Makey Makey]], [[Micro:bit]], or [[Go Direct Force and Acceleration]] set.
*Revised block graphics.
 
  
'''Variants:'''
+
[[Scratch Modification]]s may offer more OS permissions.
*Scratch 1.3.1: No new features, but:
 
**Fixed bugs.
 
**Support for new languages.
 
**Updated translations for already implemented languages.
 
'''Notes:'''
 
*This feature introduced the [[Disappearing Text Bug|Disappearing Text Glitch]].
 
  
==='''Scratch 1.2.1'''===
+
== ScratchJr ==
Released officially on December 7, 2007.
+
{{main|ScratchJr}}
 +
[[ScratchJr]] is a programming language based on Scratch that utilizes visual-centric content to introduce 5 to 7 year olds (its intended audience) to the programming world. It was developed in part by some members of the Scratch Team, and it is available on iOS and Android as a mobile app.
  
'''New features:'''
+
== Notable Information ==
*[[rest for () beats (block)|[rest for ( ) beats]]] block.
+
* Scratch worked with Cartoon Network to promote We Bare Bears by creating project tutorials and templates related to the show. Scratch's place on the Cartoon Network website was available [https://www.cartoonnetwork.com/scratch/ here.]{{dead link}}
*Hidden sprites cannot block clicks onto other sprites in presentation mode.
 
*The tempo block monitor looks global, not sprite-specific.
 
*Fixed a bug in the [[change tempo by () (block)|[change tempo by ( )]]] block.
 
*Default time for [[Say ()/Say () for () Secs (block)|Say]] and [[Think () (block)|Think]] blocks is set to 2 seconds.
 
*Key names now translate correctly.
 
*At startup, sprites and costumes names display in the current language.
 
*Better image compression for some images.
 
*Fixed the tooltip message for the sound deletion button.
 
*In the Macintosh disk image all Scratch subfolders and files are writable by all.
 
*Multiple fixes to sample projects.
 
  
'''Variants:''' Scratch 1.2 - 1.2.1 was made to correct numerous glitches, but included several new features as well.
+
* Scratch was renamed Neigh temporarily due to an April Fools Joke played by Scratch Team on 2012 as a 2.0 release joke. There were also several references incorporated from the show ''My Little Pony''. More information is available [[Neigh#2012|here]].
  
==External Links==
+
* At one point, Scratch had a higher concentration of projects using the [[Scratch Cat]], because of ScratchCation in 2016. The [[Scratch Team]] displayed a said note from Scratch Cat on Scratch, contributing to a widespread event.
[http://info.scratch.mit.edu/Scratch_1.4_Release_Notes Scratch 1.4 Release Notes]
 
  
[http://scratch.wik.is/Scratch_1.3_Release_Notes Scratch 1.3 Release Notes]
+
== See Also ==
 +
* [[Getting Started with Scratch]]
 +
* [[Scratch 1.4]] {{-}} the 2009 version of the Scratch website and program
 +
* [[Scratch 2.0]] {{-}} the previous version of the Scratch website and program
 +
* [[Scratch 3.0]] {{-}} the current version of the Scratch website and program
 +
* [[Wikipedia:Scratch (programming language)|Scratch on Wikipedia]] {{-}} the description of Scratch on an external website
 +
* [[Scratch Timeline]]
 +
* [[Scratch Wiki]]
 +
* [[Programming Language]] {{-}} what they are and their uses to the world of computer science
  
[http://info.scratch.mit.edu/Scratch_1.4_Download Scratch 1.4 Download]
+
==References==
 +
<references />
  
[http://info.scratch.mit.edu/Scratch_Previous_Versions Older versions of Scratch]
+
[[de:Scratch]]
 +
[[ru:Скретч]]
 +
[[id:Scratch]]
 +
[[nl:Scratch introductie]]
 +
[[ja:Scratch]]
 +
[[fr:Scratch Wiki Accueil/autre/langage scratch]]
 
[[Category:Scratch Program]]
 
[[Category:Scratch Program]]

Latest revision as of 03:16, 22 January 2020

The Scratch Cat, the official Scratch mascot.
The Scratch logo.
SandCastleIcon.png This page has links to websites or programs not trusted by Scratch or hosted by Wikipedia. Remember to stay safe while using the Internet, as we can't guarantee the safety of other websites.
This article is about the programming language. For its website, see Scratch Website.

Scratch is a free educational programming language that was developed by the Lifelong Kindergarten Group at the Massachusetts Institute of Technology (MIT) with over 51 million registered users and 48 million shared projects.[1] The current version, 3.0, can be accessed with the online editor here or downloaded here (the previous version, Scratch 2.0, can be downloaded here). It is geared towards kids ages to 8-16 from 2nd grade to high school.

Scratch is designed to be fun, educational, and easy to learn. It has tools for creating interactive stories, games, art, simulations, and more, using block-based programming. Scratch also has its own paint editor and sound editor built-in.

Users program in Scratch by dragging blocks from the block palette and attaching them to other blocks like a jigsaw puzzle. Structures of multiple blocks are called scripts. This method of programming (building code with blocks) is referred to as "drag-and-drop programming".

History

Main article: Scratch Versions

Scratch began development in 2003 and was released to the public in 2007. Scratch 1.0, the first version, was very similar to Scratch 1.4. At that time, only the offline editor existed; the website was a small blog where projects could be uploaded and played. As Scratch grew, the website was made larger. Scratch 1.1, Scratch 1.2, Scratch 1.3, and Scratch 1.4 were released. At this point, Scratch had millions of users and projects, and a lot of new features.

Upon the release of Scratch 2.0 in 2013, the website and User Interface were changed. Scratch continued to grow, achieving 30 million users and projects. Scratch 3.0 was released in 2019.

Because of the large expansion of the Scratch community, the Scratch Foundation has expanded and it has lead the design, development, and support of Scratch since March 12th, 2019.[2] MIT will continue to collaborate closely with the Scratch Foundation.

Uses

Scratch is widely used in schools around the world as a means of introducing basic computer programming to children. It is also used outside of schools. Some teachers even use Teacher Accounts to monitor students while having fun in the Scratch Community. Children and even adults gain an understanding of the fundamentals of programming with Scratch and often move on to other programming languages. During their use of Scratch, people can create, remix, and collaborate with others on Scratch projects.

Environment

Main article: Scratch User Interface

In designing the language, the creators' main priority was to make the language and development environment simple, intuitive and easily learnable 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.

Scratch 3.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 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 from the palette to make programs. To keep the palette organized and for ease of use, it is organized into nine groups of blocks: motion, looks, sound, control, events, sensing, operators, variables, and more blocks.

Origin of the Word

"Scratch" was used as the title for The Lifelong Kindergarten Group's programming language, as it is to do with "scratching" referring to music.

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.

Wikipedia

Likewise, within Scratch, you take different bits of code (blocks), put them together, and have made something new.

We take the name "Scratch," from the way that hip-hop disk jockeys scratch with music. They take pieces of music and then combine them together in unexpected and creative ways.

– Mitchell Resnick, Lifelong Kindergarten Group at MIT

Variants of the Word

The word "Scratch" has spawned other phrases that have become popular amongst users of Scratch:

  • New Scratcher — A user who has the New Scratcher status
  • Scratcher — A user of Scratch
  • Scratching — A verb which means to use Scratch
  • Scratched — A project that is an attempted replica of another game. e.g. "Pac-man Scratched"
  • Scratch Time — The timezone that the forums are set in (EST/EDT)
  • Scratch Team — The moderators and developers of the website.
  • Scratch On! — A phrase coined by the Scratch Team, and used by them (although has been adapted by other Scratchers as well) to encourage users, meaning "carry on using Scratch"

Motto

Scratch's motto is "Imagine, Program, Share". This follows the basic principle of creating a project: one comes up with an idea ("Imagine"), programs the idea in Scratch ("Program"), and then publishes it in the community ("Share"). Since the release of Scratch 2.0, the motto has been less apparent throughout the website; the front page no longer has the motto but instead a description of what Scratch is and what one can do with it.

Versions

Main article: Scratch Versions

Scratch is currently on version 3.0. The online editor was officially released on January 2, 2019, and the offline editor at a later date. Its predecessor is Scratch 2.0, which was released on May 9, 2013. The previous, older versions are Scratch 1.4, Scratch 1.3, Scratch 1.2, Scratch 1.1, and Scratch 1.0. Each version had significant changes, especially the jump from 2.0 to 3.0. Not only did the program update with version 2.0 and 3.0, but the entire website was redone.

Features

  • Scratch is Turing complete.
  • It is primarily event-driven.
  • Whether or not it is OOP is debated in the community.
  • Scratch has variables and lists for data storage, and arrays can be replicated.
  • Scratch is not atomic in repetition, though that can be simulated with Single Frame programming.
  • Scratch 2.0 does support procedures, and recursion.
  • Scratch has many simplified casting rules. Data is not, however, first-class — you cannot have first-class lists, sprites, or procedures (lambda).

OS Permissions

Scratch has limited hardware/OS access and is a very safe program. The following can be accessed by Scratch:

  • Ambient volume
  • Mouse position relative to the Scratch frame
  • Key presses, only if Scratch is in focus
  • In Scratch 3.0, some movements are provided as sensor values, using a webcam for image input.
  • The filesystem can be accessed while in development, but not while running.
  • Scratch can communicate externally to a Lego WeDo, Lego Mindstorms EV3, Makey Makey, Micro:bit, or Go Direct Force and Acceleration set.

Scratch Modifications may offer more OS permissions.

ScratchJr

Main article: ScratchJr

ScratchJr is a programming language based on Scratch that utilizes visual-centric content to introduce 5 to 7 year olds (its intended audience) to the programming world. It was developed in part by some members of the Scratch Team, and it is available on iOS and Android as a mobile app.

Notable Information

  • Scratch worked with Cartoon Network to promote We Bare Bears by creating project tutorials and templates related to the show. Scratch's place on the Cartoon Network website was available here.[dead link]
  • Scratch was renamed Neigh temporarily due to an April Fools Joke played by Scratch Team on 2012 as a 2.0 release joke. There were also several references incorporated from the show My Little Pony. More information is available here.
  • At one point, Scratch had a higher concentration of projects using the Scratch Cat, because of ScratchCation in 2016. The Scratch Team displayed a said note from Scratch Cat on Scratch, contributing to a widespread event.

See Also

References

  1. https://scratch.mit.edu/statistics/
  2. https://medium.com/@mres/supporting-the-growth-of-scratch-e56dc7f84453