Scratch (プログラミング言語)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
Scratch
Scratch Logo.svg
パラダイム 教育用英語版イベント駆動型
登場時期 2006年
設計者 ミッチェル・レズニック
開発者 MITメディアラボ Lifelong Kindergarten Group
最新リリース 2.0 / May 05 2013
型付け ダイナミック
主な処理系 Scratch
影響を受けた言語 Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
プログラミング言語 Squeak
ライセンス GPLv2とScratch Source Code License
ウェブサイト scratch.mit.edu
拡張子 .sb(Scratch 1.4) .sb2(Scratch 2.0)

Scratch (スクラッチ) とは初心者が最初に正しい構文の書き方を覚えること無く結果を得られるプログラミング言語学習環境である。MITメディアラボが開発し、遊び心のある実験やインタラクティブアニメーション、ゲームなどの製作を通してさらなる学習のやる気を起こさせることを意図している。

Scratchの由来はディスクジョッキーがレコードを手でこするスクラッチと呼ばれる技術であり[1]、DJが気軽に曲をミックスすることと、Scratch言語によって簡単にプロジェクトをミックスすることを関連付けたことによる。

ScratchはWindowsmacOSLinuxに対応しており、ソースコードGPLv2ライセンスとScratch Source Code Licenseとして公開されている[2]

また、2013年5月に新バージョンのScratch2.0が公開され、ウェブアプリケーションとなり、ソフトのダウンロードが不要になった。そのため、リミックスが容易になり、その他1.4にはなかった、ウェブアプリケーションならではの機能が追加された。

概要[編集]

Scratch 1.4開発環境のスタートアップ時のスクリーンショットアップルMac OS X v10.6 (Snow Leopard) で動作)

2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導するライフロング・キンダーガーテン・グループにMITに来たEtoys開発チームのジョン・マロニーを招いて開発された[3]。Scratchは製作者の最優先事項を子供達が可能な限り簡単に学習するように作成できるため触覚的なプロセスを通した構築とテストが可能となっている。

Scratchの触覚や視覚的GUIは子供達がコンディション(パラメータ付き)や結果(アクション)のブロックを選択したエージェント(スプライトと呼ばれる)や背景(ステージと呼ばれる)にドラッグ・アンド・ドロップすることでインタラクティブアニメーション、プレゼンテーション、ストーリーやシンプルなゲームを遊び心かつプログラム的に製作することを出来るようにしている[4][5]。文法的に正しい構文を読んでも未だに書けない子供達のために視覚的にグループされたブロックはそれらをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを製作するために違うブロックを容易に書き換えることもできる。

Scratchユーザーインタフェース[編集]

Scratch開発環境のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中は現在のスプライト情報とスクリプトエリア、右側がステージ(背景)とスプライトのリストである。

ブロックパレットにはプログラムを作るためにスプライトエリアにドラッグできるScratchではブロックと呼ばれるフラグメントがある。パレットを保持するにはあまりにも大きすぎるため、ブロックは動き、見た目、音、ペン、制御、調べる、演算、変数の8つのグループに分けられる。

バージョン1.3.1以前では「オペレーター」は「ナンバー」と名付けられていた。メッセージパッシングのあるマルチスレッドコードはScratchにとって重要だが、現バージョンは最初のクラス構造の手続きを扱っておらず、ファイルI/Oオプションも無く、リストのような1次元の配列しかサポートしていない。フローティングポイントのスカラーや文字列はバージョン1.4以降でサポートされているが、文字列操作機能に制限がある。またScratchプログラミング言語のかなり限定された範囲においてパワフルなマルチメディア機能とマルチスレッドプログラミングスタイルとの間に強い差異がある。

ユーザーコミュニティ[編集]

Scratchは教育施設、博物館[6]、コミュニティセンター、そして家庭内といった多くの異なる場所で使用される。例として低年齢の子供達は親や兄姉とプロジェクトを製作することが出来たり、大学生はいくつかの計算機科学入門クラス(ハーバード大の初級コンピュータクラス[7][8])でScratchを使用したりしている。Scratchでダウンロード出来るローカライゼーションファイルでインターフェイスの言語を変えることで世界中で使用できるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth(CTY)ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している[9]

様々な機能に関して実証研究が行われた。直感的な学習に干渉する機能は放棄され、初心者を励まし、探究・学習を容易にするような機能は残された。いくつかの結果は驚くべきもので、Scratchを他の教育言語(BASICLOGOAlice英語版)と全く異なるものにしている。

オンラインコミュニティ[編集]

Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある哲学の重要な部分として共有と創造性の社会的背景を指している[10]

またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境から直接Scratchのウェブサイトやコミュニティのメンバーに直接アップロードができ、ソースコード全てをダウンロードして勉強や新たなプロジェクトにリミックスすることも可能である[11][12]

Scratcherはまたプロジェクトのギャラリーやコメント、タグ、好きを作ったり、他のプロジェクトを好む意思を示したりアイデアを共有することが出来る。プロジェクトはゲームからアニメーション、チャットボットまで範囲が及んでおり、全てのプロジェクトはクリエイティブ・コモンズの表示-継承ライセンス下で公開され[13]ウェブブラウザ(JavaアプレットFlash Playerを使うためiPhone/iPadに対応していない)で再生やプレイができる。ウェブサイトは月に1000万近くのページビューがあり[14]、2011年12月時点で95万人以上の登録ユーザーがおり(しかし、プロジェクトを共有しているのは275,000以上のユーザーのみとされる)、270万以上のプロジェクトがある(1分ごとに複数のプロジェクトがアップロードされる計算)[15]。またウェブサイトでは頻繁に「Scratchデザインスタジオ」というユーザーが基本デザインコンセプトを使って製作、共有を奨励するチャレンジが開催されている。メキシコイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル[16]やアラブ首長国連邦[17]でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した[18]。教育者向けのオンラインコミュニティとしてScratchEdというのもある[19]

またScratcherによる百科事典であるScratch Wikiというものも存在する。日本語版は2015年3月23日に作成された。

派生[編集]

Scratchのいくつかの派生[20]はScratch Modificationsと呼ばれScratchのバージョン1.4のソースコードを使って製作された。これらのプログラムは通常「ブロック」が追加されたり[21]GUIが変更されたScratchのバリエーションである。

Build Your Own Blocks英語版(BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある[22]。BYOBはイェンス・ムーニッヒが開発し[23][24]カリフォルニア大学バークレー校ブライアン・ハーベイ英語版がドキュメンテーションを提供し[25][26]、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された[27]

2014年にはScratch 1.4と同等の環境をiPadで実現した「Pyonkee」が登場した[28]伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている[29][30]

日本国内では更にJavaScriptではなく、日本発祥のプログラミング言語であるRubyを同一の操作性でプログラムする為に、任意団体スモウルビー(2014年6月1日に「NPO法人Rubyプログラミング少年団」へ改名)により「Smalruby」というものも作られて展開している。

Scratchのソースコードやその派生はSmalltalk-80をベースにしているSqueakをベースにしている。

展開[編集]

ミッチェル・レズニック本人による、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つにもなっている。

関連項目[編集]

以下の若者向けコンピューティングプロジェクトもMITライフロング・キンダーガーテングループから起こったものである:

加えてStencylゲーム製作ツールもScratchから直接感化された「コードブロック」ベースのビジュアルプログラミング言語を使用している。他の教育用プログラミング言語英語版には以下のがある。


脚注[編集]

  1. ^ Schorow, Stephanie (2007年5月14日). “Creating from Scratch”. MIT News Office. http://web.mit.edu/newsoffice/2007/resnick-scratch.html 2014年1月25日閲覧。 
  2. ^ Scratch source-code download page http://info.scratch.mit.edu
  3. ^ Scratch: imagine, program, share”. Massachusetts Institute of Technology. 2007年5月25日閲覧。
  4. ^ Scratch website
  5. ^ Scratch: Programming for All. Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., Kafai, Y. (2009). Scratch: Programming for All. Communications of the ACM, November 2009
  6. ^ Scratch Day at Science Museum of Minnesota
  7. ^ Scratch for budding computer scientists
  8. ^ Scratch for budding computer scientists
  9. ^ CTYOnline Scratch Programming Course
  10. ^ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. ACM interactions 15, 2 (March 2008), 50-53
  11. ^ Monroy-Hernández, A., Hill, B. M., González-Rivero, J., boyd, d. (2011) Computers Can't Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community. In Proceedings of the 29th International Conference on Human Factors in Computing Systems (CHI '11)
  12. ^ Hill, B.M, Monroy-Hernández, A., Olson, K.R. (2010) Responses to remixing on a social media sharing website. In AAAI International Conference on Weblogs and Social Media (ICWSM '10)
  13. ^ よくある質問と答え(FAQ)”. 2017年9月3日閲覧。
  14. ^ http://www.quantcast.com/scratch.mit.edu
  15. ^ Scratch usage statistics
  16. ^ http://kids.sapo.pt/scratch
  17. ^ http://scratch.uaeu.ac.ae/
  18. ^ http://www.aec.at/prix_history_en.php?year=2008
  19. ^ http://scratched.media.mit.edu
  20. ^ http://wiki.scratch.mit.edu
  21. ^ http://wiki.scratch.mit.edu
  22. ^ BYOB homepage http://byob.berkeley.edu
  23. ^ Jens Mönig user contributions page
  24. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
  25. ^ Brian Harvey homepage
  26. ^ Brian Harvey user contributions page
  27. ^ The Beauty and Joy of Computing course homepage
  28. ^ 田近一郎、本多一彦、杉江晶子、森博「タブレット端末を活用したプログラミング教育(3) ―プログラミング・オン・モバイル―」『名古屋文理大学紀要』第15号、2014年、17-27ページ。
  29. ^ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
  30. ^ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
  31. ^ TEDxBeaconStreet
  32. ^ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
  33. ^ 2013.09.23 Let's teach kids to code 「子どもにプログラミングを教えよう」ミッチェル・レズニック 2013年9月23日放送分

外部リンク[編集]