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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Scratch
Scratch Logo.svg Scratch cat large.png
パラダイム 教育用英語版イベント駆動型
登場時期 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とは初心者が最初に正しい構文の書き方を覚えること無く結果を得られるプログラミング言語学習環境である。MITメディアラボが開発し、遊び心のある実験やインタラクティブアニメーション、ゲームなどの製作を通してさらなる学習のやる気を起こさせることを意図している。

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

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

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

概要[編集]

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

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

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

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

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]

実証研究は直感的な学習での干渉が放棄され、初心者を励まし、容易に探究して学習が保たれている様々な機能で作られた。いくつかの結果は意外に他の教育言語(BASICLOGOAlice英語版)と全く異なるScratchで作成された。

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

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

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

派生[編集]

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

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

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

展開[編集]

ミッチェル・レズニック本人による、Scratchを題材としたプレゼンテーション「Let's teach kids to code(子供たちにプログラミングを教えよう)」が、2012年11月におこなわれたTEDによる講演イベントである「TED x BeaconStreet」にて講演され、その模様がTEDによって公開されている[27]。この中でミッチェル・レズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。

また、TEDの講演イベントでおこなわれたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組「スーパープレゼンテーション」でもこのプレゼンテーションが取り上げられている[28]

関連項目[編集]

以下の若者向けコンピューティングプロジェクトも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. ^ http://www.quantcast.com/scratch.mit.edu
  14. ^ Scratch usage statistics
  15. ^ http://kids.sapo.pt/scratch
  16. ^ http://scratch.uaeu.ac.ae/
  17. ^ http://www.aec.at/prix_history_en.php?year=2008
  18. ^ http://scratched.media.mit.edu
  19. ^ http://wiki.scratch.mit.edu
  20. ^ http://wiki.scratch.mit.edu
  21. ^ BYOB homepage http://byob.berkeley.edu
  22. ^ Jens Mönig user contributions page
  23. ^ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
  24. ^ Brian Harvey homepage
  25. ^ Brian Harvey user contributions page
  26. ^ The Beauty and Joy of Computing course homepage
  27. ^ [1]
  28. ^ 2013年9月23日放送分

外部リンク[編集]