Scratch (programming language)
This article needs to be updated. Please help update this article to reflect recent events or newly available information. Relevant discussion may be found on the talk page. (September 2021) |
Scratch is a block-based visual programming language and vector/raster graphics editor for children designed to create things such as games, animations, art, and stories.[1] It allows them to explore and experiment with the ideas of computer programming by using "blocks" that are put together to make simple code.[2] There is also a discussion page with multiple forums mainly used for chatting and help with coding.
Paradigm | event-driven, imperative |
---|---|
Designed by | Mitchel Resnick |
Developer | MIT Media Lab Lifelong Kindergarten Group |
First appeared | 2003 |
Stable release | 3.0 / January 2, 2019 3.29.1 / February 27, 2022 (offline) | (online)
Typing discipline | dynamic |
Implementation language | Squeak (Scratch 1.x series), ActionScript (Scratch 2.0), JavaScript (Scratch 3.0) |
License | GPLv2 and Scratch Source Code License |
Filename extensions | .scratch (Scratch 0.x) sb (Scratch 1.x) .sb2 (Scratch 2.0) .sb3 (Scratch 3.0) |
Website | scratch |
Major implementations | |
Scratch | |
Influenced by | |
Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys |
Although made for children 8-16,[3] Scratch can be used to produce simple or complex programs. Some notable users who push the boundaries of what scratch can do include: Griffpatch, -Myths-, TimMcCool, Will_Wam, and World_Languages.
Scratch is translated into 40+ languages and is used in homes, schools, and after-school clubs in nearly every country in the world.[4] Scratch is often used in teaching coding, computer science, and computational thinking. Teachers also use it as a tool across many other subjects, including math, science, history, geography, and art. The Scratch Team is an organization that helps maintain, manage, and help keep Scratch safe. They also do helpful tutorials for coding help and support. Scratch is free to use.[3]
User interface
changeThe area where the user can interact is called the stage area. The stage area features all of the animations, graphics, drawings, and other visual features. The list of sprites on screen are placed below the stage area to show a list of sprites that are usable for the program. The stage is organized through x and y coordinates, with the center coordinate (0, 0) in the center of the stage. The stage is 480 pixels wide and 360 pixels tall, with a range between x=-240 to x=240 in width and a range between y=-180 and y=180 in height.[5]
From left to right, in the upper left area of the screen, there is a stage area, featuring the results (i.e., animations, turtle graphics, etc., everything either in small or normal size, full-screen also available) and all sprites thumbnails listed in the bottom area. The stage uses x and y coordinates, with 0,0 being the stage center. The stage is 480 pixels wide, and 360 pixels tall, x:240 being the far right, x:-240 being the far left, y:180 being the top, and y:-180 being the bottom.[5]
Category | Notes | Category | Notes | |||
---|---|---|---|---|---|---|
Motion | Moves sprites and changes angles and change X and Y values. | Events | Contains event handlers that are placed on the top of each group of blocks to start a programme or start to make something happen. | |||
Looks | Controls the visuals of the sprite. The sprite may be attached a speech bubble or a thought bubble, the background or sprite can be changed, it can be enlarged or shrunken, it can have transparency, or it can have shading. | Control | Contains conditional if-else statements, as well as conditional statements "forever", "repeat", and "stop". | |||
Sound | Plays sound files and allows the programming of a musical sequence. | Sensing | These tools are used for directing sprites to interact with the surroundings that the user has created. | |||
My Blocks | Allows you to make your own blocks. | Operators | Mathematical operators, random number generator, and-or statement that compares sprite positions | |||
Data | Deals with declaring variables and lists, as well as for adjusting variables and lists. | Extensions | Custom procedures (blocks) and external devices control and can import from PicoBoard or Lego WeDo 1.0/2.0 |
References
change- ↑ "Scratch Project Editor - Imagine, Program, Share". scratch.mit.edu. Retrieved 2018-06-09.
- ↑ Free tool offers 'easy' coding BBC News 14 May 2007
- ↑ 3.0 3.1 "Scratch - About". scratch.mit.edu. Retrieved 2018-06-08.
- ↑ "Scratch - Imagine, Program, Share". scratch.mit.edu. Retrieved 2018-06-08.
- ↑ 5.0 5.1 Marji, Majed (2014). Learn to Program with Scratch. San Francisco, California: No Starch Press. pp. xvii, 1–9, 13–15. ISBN 9781593275433.