Loading AI tools
プログラミング言語学習環境 ウィキペディアから
Scratch(スクラッチ)は、アメリカにある非営利団体Scratch財団がマサチューセッツ工科大学(MIT)メディアラボ ライフロングキンダーガーデングループ(MIT Media Lab Lifelong Kindergarten Group)と共同開発する、8歳から16歳のユーザーをメインターゲットとする無料教育ビジュアルプログラミング言語及びその開発環境、コミュニティサイトである。ウィキペディアと同様、収録されている全ての内容がオープンコンテントで、商業広告が存在しないことが特徴の一つである。
このページのノートに、このページに関する注意があります。 注意の要約:情報には出典を明記してください。サンドボックスで編集の練習や実験ができます。 また、児童・生徒の方はWikipedia:児童・生徒の方々へもお読みください。 |
Scratchのロゴ | |
パラダイム | 教育用、イベント駆動型 |
---|---|
登場時期 | 2006年(正式リリースは2008年) |
設計者 | ミッチェル・レズニック |
開発者 | MITメディアラボ Lifelong Kindergarten Group |
最新リリース | 3.0 / 2019年1月2日[1] |
型付け | ダイナミック |
主な処理系 | Scratch |
影響を受けた言語 | LOGO, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys |
プログラミング言語 | Smalltalk(~1.4), ActionScript(2.0), JavaScript(3.0~) |
プラットフォーム | Windows, macOS, Linux, Android, iOS, iPadOS 他 |
ライセンス | GPLv2とScratch Source Code License |
ウェブサイト |
scratch |
拡張子 |
.sb(~Scratch 1.4) .sb2(Scratch 2.0) .sb3(Scratch 3.0) .sprite(~Scratch 1.4) .sprite2(Scratch 2.0) .sprite3(Scratch 3.0) |
Scratchは世界中で使われており、1億6000万個以上の共有されたプロジェクト、15億個以上の未公開のプロジェクト、1億3500万ユーザー以上の登録ユーザー、約10億個のコメント、3400万個以上のスタジオが存在している。日本のユーザーはそのおよそ1.8%にあたる230万人以上となっている。[2]。
ScratchはWindows、Mac、Linux、Raspberry Pi、Android、iPadなどに対応しており、ソースコードはGPLv2ライセンスとScratch Source Code LicenseとしてGitHubにて公開されている[3]。
Scratchは、初心者が最初に正しい構文の書き方を覚えることなく実行でき、遊び心のある実験やアニメーション、ゲームなどの制作を通してさらなる学習意欲を起こさせることおよび、色々な人とのコメントやディスカッションフォーラムなどでのコミュニケーション能力の育成をすることを意図している。8歳から16歳の子供向けに開発されたもの[4]だが、子供から大人まで幅広い年代が使用している。2024年6月8日現在では、13歳で登録するユーザーが最も多い[5]。
Scratchという名称はディスクジョッキー(DJ)がレコードを手でこするスクラッチングに由来しており[6]、DJが気軽に曲をミックスすることと、Scratchで簡単にプロジェクトをミックス(リミックスと言う)することを関連付けている。2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導する「ライフロング・キンダーガーテン・グループ」にMITに来たEtoys開発チームのジョン・マロニーを招いて開発された[7]。
Scratchの視覚的GUIは、子供達がプログラムブロックをスプライトやステージ、スペースにドラッグ・アンド・ドロップすることでアニメーション、アート、ストーリーやゲーム制作をゲーム感覚で簡単にできるよ うにしている[8][9]。Scratchでは、正しい構文を読み書きできない人のために視覚的にグループ分けされたブロックをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを制作するためにブロックを容易に書き換えることができる。
2013年5月にScratch 2.0が公開され、ウェブアプリケーションとなり、開発環境のインストールが不要となった。そのためリミックス(プログラムの改造)が容易になり、従来のバージョンにはなかった、ウェブアプリケーションならではの機能が追加された。
2019年1月、Scratch 3.0が公開された。Scratch 3.0では、Scratch 2.0まで使用していたAdobe Flashを使用せず[10]、HTML5を使用しているため、Internet Explorerなど一部のブラウザでは動作しなくなったが、スマートフォンやタブレット端末(Android, iPhone, iPad等)での利用がサポートされるようになった(開発グループは画面の大きさの関係でタブレット端末を推奨している[11])。また、いくつかの拡張機能の追加、ブロックの文字の読みやすさ向上、機能性や画質が向上するなどの変化があった。
Scratch 3.0のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中はスクリプトエリア、右側がステージとスプライトのリストである。
プログラムを作るために必要なブロックはブロックパレットに並んでおり、スクリプトエリアにドラッグできる。全てのブロックを表示するには多いため、ブロックは主に動き、見た目、音、制御、イベント、調べる、演算、変数、ブロック定義の9つのグループに分けられている。また、拡張機能により、ペンや外部機器との連携などの機能が追加できる。
障害等の有無にかかわらずサイトをアクセシブルにするため、2023年6月28日に画面上部のナビゲーションバーの色が青から紫に変わったほか、エディター画面のナビゲーションバーからブロックの色をハイコントラストに調整できる設定が追加されるなどの変更が行われた[12]。
カテゴリー | 説明 | |
---|---|---|
動き | スプライトの動きを制御するためのブロック[注釈 1]。 | |
見た目 | スプライトやステージの見た目を制御するブロック。 | |
音 | 予めプロジェクトに読み込ませておいた音を実行、制御するブロック。 | |
イベント | スクリプト実行のきっかけとなるブロック。 | |
制御 | スクリプトの制御に使用されるブロック。 | |
調べる | プロジェクトのさまざまな要素について調べるためのブロック。 | |
演算 | 数式を使いたい場合や、文字列を扱いたい場合に利用するブロック | |
変数・リスト | 変数に数値や文字列を保存して、プログラムで使うためのブロック。 | |
ブロック定義 | このブロックの下に繋げたプログラムを1つのブロックとして使えるブロック。 | |
拡張機能 | ブロックを追加してScratchのプログラムを拡張するもの。(後述) |
Scratch LabはまだScratchに実装されていない機能を試すことができる場所である。2023年3月現在、video sprites、Face Sensing、Animated Text、New Block Colorsを試すことができる[13]。しかし、ここで作った作品はコミュニティに共有できない。
このうち、New Block Colorsが2023年6月28日にScratchに実装され[14]、Scratchではユーザインタフェースを含むすべてのページの色が変更された。ただ、その項目は未だにScratch Labから消えていない。
Scratchの拡張機能を使用すると、様々な種類のブロックが追加され、ロボットとPCを接続させることなどができる[15]。以下は、Scratch 3.0での拡張機能の一覧である。
カテゴリー | 説明 |
---|---|
音楽 | 楽器等を演奏する。 |
ペン | スプライトを利用し、絵を描く。 |
ビデオモーションセンサー | カメラで動きを検知する。使用するとクラウド変数が無効になる |
音声合成 | 言葉をしゃべるプロジェクトを作る。(インターネット環境が必要(APIから取得するため[要出典])) |
翻訳 | 翻訳する。(インターネット環境が必要) |
Makey Makey | Makey Makeyを利用する。(Makey Makeyが必要) |
micro:bit | micro:bitを利用する。(micro:bitが必要) |
LEGO MINDSTORMS EV3 | LEGO MINDSTORMS EV3を利用する。(LEGO MINDSTORMS EV3が必要) |
LEGO BOOST | LEGO BOOSTを利用する。(LEGO BOOSTが必要) |
LEGO Education WeDo 2.0 | LEGO Education WeDo 2.0を利用する。(LEGO WeDo 2.0が必要) |
Go Direct Force and Acceleration | Go Direct® Force and Acceleration Sensorを利用する。(Go Direct Force and Accelerationが必要) |
Scratchは教育施設(学校やプログラミング教室など)、博物館[16]、コミュニティセンター、そして家庭内といった多くの場所で使われている。例として、低年齢の子供達は親や友達とプログラムを書くとき、大学生ではいくつかの計算機科学入門クラス(ハーバード大学の初級コンピュータクラス[17][18])でScratchが使われたりしている。Scratchは、表示される言語を変えることで世界中で使えるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth (CTY) ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している[19]。
Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある考え方の重要な部分として共有と創造性の社会的背景を指している[20]。
またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境からScratchのウェブサイトに直接アップロードでき、プログラムをリミックスして学習や、新たなプロジェクトとして共有することもできる[21][22]。
Scratchユーザーはコメントをしたり、プロジェクトに好き(高評価の類)やお気に入り(「好き」と大差はないがユーザーが直近「お気に入り」をつけたプロジェクトを確認できるようになる)をつけたり、プロジェクトを共有したりすることができる[注釈 2]。
共有されたプロジェクトには、クリエイティブ・コモンズ 表示-継承2.0ライセンスが適用され、商用利用や再利用ができる[23][注釈 3]。
ウェブサイトでは頻繁に「Scratch Design Studio (SDS)」というユーザーが基本デザインコンセプトを使って制作、共有を奨励するチャレンジが開催されている。メキシコやイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル[24] やアラブ首長国連邦[25] でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した[26]。教育者向けのオンラインコミュニティとして「ScratchEd」というものもあったが、2019年5月にサイトが閉鎖された[27]。
Scratch Day[28] は、年に一度世界中で行われるScratchのイベントである。 だれでもイベントを主催することができ、どこでも開催することができるが、基本的に5月15日の前後の休日(土日)に行われるのが伝統である。これは、Scratchというサービスそのものが2007年5月15日に始まったことに由来する。始まりは、2009年にMITのKaren Brennanが、Scratchのリリース日にイベントをしようと思いたち、開催したことにある。以後、Scratch Dayは毎年世界各地で行われている。現在はScratch Weekと名前を変え開催されている。
Scratchでは、エイプリルフール限定のイベントが毎年行われる[29]。2021年、2020年は、「旗が押されたとき」などのイベントブロックが猫の形に変化していた。2022年では、特定ワードで検索すると検索結果が変化したり、エディターの上部に「モード」の項目が追加された[30]。
ミッチェル・レズニック本人による、Scratchを題材としたプレゼンテーション「Let's teach kids to code. (子供たちにプログラミングを教えよう)」が、2012年11月におこなわれたTEDxBeaconStreet[31]にて講演され、その模様がTEDによって公開されている[32]。この中でレズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマーになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。
また、TEDやTEDxの講演イベントでおこなわれたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組「スーパープレゼンテーション」でもこのプレゼンテーションが取り上げられている[33]。NHK Eテレでは『Why!?プログラミング』で公式にプログラミングソフト(一部画面が異なっている部分もある)として採用されたり、民放では千葉テレビ放送・BSフジの『GP LEAGUE プログラミングコロシアム』で放送される「GP LEAGUE」での公式言語の1つにもなっている。
Scratcher (スクラッチャー) とは、広義には、Scratchのユーザー。狭義には、「Scratcher」になるまでの「New scratcher」を除いたユーザー。この節では後者のScratcherについて説明する。
Scratcherになる方法は、Scratchteamが、コミュニティーガイドライン[注釈 4]に違反をしていない安全なユーザーだと確認した時に、Scratchteamから送られた通知を受け取り、同意することである。ただし、Scratcherになるための条件は明文化されておらず、申請によってScratcherの称号が与えられることはない[34]。
Scratcherになると、クラウド上にプロジェクトの変数を保存する「クラウド変数」や、コメントの連続投稿の規制が解除される[35]。さらに、ディスカッションフォーラムでの投稿の合間に待つ時間が、120秒から60秒(60秒ルール)になったり、Scratchでスタジオを作成できるようになるなど[36]、複数の制限が撤廃される。
Scratchウェブサイトにある機能やページの一部を紹介する。
Scratchをインターネットに接続しなくても使用ができるオフラインエディターとして、Electronで動作するScratchアプリがWindows、Mac、Android、ChromeOS用に用意されている[39]。
3.16.1 以前まではScratch Desktopと呼ばれていたが、3.16.1で名称がScratch 3に変更された[40]。
これらのキャラクターはScratchの商標であり、Scratch以外のサイトでは、Scratchteamの明示的な許可なく利用することはできない[41]。
この節には、過剰に詳細な記述が含まれているおそれがあります。百科事典に相応しくない内容の増大は歓迎されません。 |
Scratchのいくつかの派生[44] はScratch Modificationsと呼ばれ、Scratchのバージョン1.4のソースコード[注釈 5] を使って制作された。これらのプログラムは通常「ブロック」が追加されたり[45] GUIが変更されたScratchのバリエーションである。
Build Your Own Blocks (BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある[46]。BYOBはイェンス・ムーニッヒが開発し[47][48]、カリフォルニア大学バークレー校のブライアン・ハーベイがドキュメンテーションを提供し[49][50]、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された[51]。
Pyonkeeは、Scratch 1.4と同等の環境をiPadで再現したもので、2014年に登場した[52]。伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている[53][54]。
Smalrubyは、日本発祥のプログラミング言語であるRubyをScratchと同一の操作性でプログラムする為に、任意団体スモウルビーにより作られたもの。
ScratchJr(スクラッチジュニア)は、Scratchを使うのに必要な文字の読み書きや算数を使えないより小さい子供たちのためにMITメディアラボが、タフツ大学とThe Playful Inventor Companyと協力して開発した。
プロジェクトをJavaScriptにコンパイルして1FPSから250FPSまでの速度で実行できるようにする。Scratch、Scratchチーム、Scratch財団とは提携していない[55]。他にも補完機能、ペンのHD化などがあり、「高度な設定」で細かな設定ができる[56]。TurboWarpには、Scratchのプロジェクトをロードする機能があり2022年11月9日まで非共有プロジェクトの閲覧、編集が可能だった。2022年11月10日にScratch APIの仕様が変更された為、非共有プロジェクトは基本的に閲覧、編集共に不可能になった[57]。しかし、ダウンロードしたプロジェクトを開くことや、共有されたプロジェクトについては、従来通り閲覧可能。
ScratchとTurboWarpをベースに作成された[58]ビジュアルコーディングサイト。penguinmod独自の拡張機能41個に加え、TurboWarpの拡張機能13個も使用できる。
ScratchとTurbowarpとPenguinModをベースに作成されたビジュアルコーディングサイト。PenguinModとTurbowarpの拡張機能に加え、Snail IDE独自の拡張機能13個が使用できる。
Forkphorusは、Scratch 3.0のプロジェクトをHTML化して実行できるツールである[59]。
Stretch3は、人工知能(AI)を使用することができる拡張機能や、QRコードを読み取ることができる拡張機能なども追加されている[要出典]。
Scratch Addonsは、Scratchウェブサイトとプロジェクトエディターの新機能やテーマを提供するブラウザー拡張機能であり、Scratchコミュニティーのメンバーにて開発されたユーザースクリプトやユーザースタイルを収集し、アドオンとして利用できるようにしている。[60]
Snap!は、Scratchのソースコードを見本にカノニカルが開発したプログラミング言語。ブロックなどはほぼScratchを元にしているが、こちらはブロックを追加できるのが特徴。また、プロジェクトをScratchと同様に公開機能がある。
2020年8月、中国政府がグレート・ファイアウォール(GFW)を使用して、ScratchのWebサイトおよびScratch wikiへのアクセスをブロックしたことが判明した。理由は、Scratchのアカウントを作成する時に選択する国のリストに 「香港」「マカオ」「台湾」が含まれていたこと。 当時中国ではScratchを使用していた人の5.7%にあたる、300万ユーザーが利用していた。現在中国本土ではオンラインでScratchは出来ず、オフラインエディターを使用している[61][62][63]。検閲を担当している中国の機関は「Scratchに掲載されている情報は、中国本土に対して、屈辱的で中傷的、また虚偽のものである」と声明を出している[64]。また、一部のユーザーはScratch内で中国を非難していた[65]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.