Scratch (プログラミング言語)
Scratch | |
---|---|
180px | |
拡張子 | .sb(Scratch 1.4) .sb2(Scratch 2.0) |
パラダイム | 教育用、イベント駆動型 |
登場時期 | 2006年 |
設計者 | ミッチェル・レズニック |
開発者 | MITメディアラボ Lifelong Kindergarten Group |
最新リリース | 2.0/ 2013年5月5日 |
型付け | ダイナミック |
主な処理系 | Scratch |
影響を受けた言語 | Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys |
プログラミング言語 | Squeak |
ライセンス | GPLv2とScratch Source Code License |
ウェブサイト | scratch.mit.edu |
Scratch (スクラッチ) は、MITメディアラボが開発したプログラミング言語学習環境である。
Contents
概要
初心者が最初に正しい構文の書き方を覚えること無く結果を得られる、遊び心のある実験やインタラクティブアニメーション、ゲームなどの製作を通してさらなる学習のやる気を起こさせることを意図している。
2006年に最初のバージョンがMITメディアラボのミッチェル・レズニックが主導するライフロング・キンダーガーテン・グループにMITに来たEtoys開発チームのジョン・マロニーを招いて開発された[1]。Scratchは製作者の最優先事項を子供達が可能な限り簡単に学習するように作成できるため触覚的なプロセスを通した構築とテストが可能となっている。
Scratchの触覚や視覚的GUIは子供達がコンディション(パラメータ付き)や結果(アクション)のブロックを選択したエージェント(スプライトと呼ばれる)や背景(ステージと呼ばれる)にドラッグ・アンド・ドロップすることでインタラクティブアニメーション、プレゼンテーション、ストーリーやシンプルなゲームを遊び心かつプログラム的に製作することを出来るようにしている[2][3]。文法的に正しい構文を読んでも未だに書けない子供達のために視覚的にグループされたブロックはそれらをクリックすることでテストできたり、リミックスや修正、プロジェクトの新バージョンを製作するために違うブロックを容易に書き換えることもできる。
ScratchはWindows、macOS、Linuxに対応しており、ソースコードはGPLv2ライセンスとScratch Source Code Licenseとして公開されている[4]。
また、2013年5月に新バージョンのScratch2.0が公開され、ウェブアプリケーションとなり、ソフトのダウンロードが不要になった。そのため、リミックス(改造)が容易になり、その他1.4にはなかった、ウェブアプリケーションならではの機能が追加された。
Scratchユーザーインタフェース
Scratch開発環境のユーザインタフェースは複数の枠に分かれており、左側はブロックパレット、真ん中は現在のスプライト情報とスクリプトエリア、右側がステージ(背景)とスプライトのリストである。
ブロックパレットにはプログラムを作るためにスプライトエリアにドラッグできるScratchではブロックと呼ばれるフラグメントがある。パレットを保持するにはあまりにも大きすぎるため、ブロックは動き、見た目、音、ペン、制御、調べる、演算、変数の8つのグループに分けられる。
バージョン1.3.1以前では「オペレーター」は「ナンバー」と名付けられていた。メッセージパッシングのあるマルチスレッドコードはScratchにとって重要だが、現バージョンは最初のクラス構造の手続きを扱っておらず、ファイルI/Oオプションも無く、リストのような1次元の配列しかサポートしていない。フローティングポイントのスカラーや文字列はバージョン1.4以降でサポートされているが、文字列操作機能に制限がある。またScratchプログラミング言語のかなり限定された範囲においてパワフルなマルチメディア機能とマルチスレッドプログラミングスタイルとの間に強い差異がある。
ユーザーコミュニティ
Scratchは教育施設、博物館[5]、コミュニティセンター、そして家庭内といった多くの異なる場所で使用される。例として低年齢の子供達は親や兄姉とプロジェクトを製作することが出来たり、大学生はいくつかの計算機科学入門クラス(ハーバード大の初級コンピュータクラス[6][7])でScratchを使用したりしている。Scratchでダウンロード出来るローカライゼーションファイルでインターフェイスの言語を変えることで世界中で使用できるようになっている。ジョンズ・ホプキンス大学のCenter for Talented Youth(CTY)ではCTYオンラインプログラムにて6年生の生徒向けにScratchプログラミングのオンラインコースを提供している[8]。
様々な機能に関して実証研究が行われた。直感的な学習に干渉する機能は放棄され、初心者を励まし、探究・学習を容易にするような機能は残された。いくつかの結果は驚くべきもので、Scratchを他の教育言語(BASIC、LOGO、Alice)と全く異なるものにしている。
オンラインコミュニティ
Scratchのオンラインコミュニティのスローガンは「Imagine, Program, Share(想像・プログラム・共有)」でScratchの背後にある哲学の重要な部分として共有と創造性の社会的背景を指している[9]。
またScratchのプロジェクトは新たなプロジェクトを作るためのリミックスに向けたものになっている。プロジェクトは開発環境から直接Scratchのウェブサイトやコミュニティのメンバーに直接アップロードができ、ソースコード全てをダウンロードして勉強や新たなプロジェクトにリミックスすることも可能である[10][11]。
Scratcherはまたプロジェクトのギャラリーやコメント、タグ、好きを作ったり、他のプロジェクトを好む意思を示したりアイデアを共有することが出来る。プロジェクトはゲームからアニメーション、チャットボットまで範囲が及んでおり、全てのプロジェクトはクリエイティブ・コモンズの表示-継承ライセンス下で公開され[12]ウェブブラウザ(JavaアプレットやFlash Playerを使うためiPhone/iPadに対応していない)で再生やプレイができる。ウェブサイトは月に1000万近くのページビューがあり[13]、2011年12月時点で95万人以上の登録ユーザーがおり(しかし、プロジェクトを共有しているのは275,000以上のユーザーのみとされる)、270万以上のプロジェクトがある(1分ごとに複数のプロジェクトがアップロードされる計算)[14]。またウェブサイトでは頻繁に「Scratch Design Studio(SDS )」というユーザーが基本デザインコンセプトを使って製作、共有を奨励するチャレンジが開催されている。メキシコやイスラエル向けのカスタムホームページでは幾つかのセクションにローカルコンテンツが置かれている。ポルトガル[15]やアラブ首長国連邦[16]でも独立したScratchウェブサイトがある。2008年、Scratchのオンラインコミュニティプラットフォーム(ScratchRと命名されている)がArs Electronica PrixのHonorary Mentionを受賞した[17]。教育者向けのオンラインコミュニティとしてScratchEdというのもある[18]。
またScratcherによる百科事典であるScratch Wikiというものも存在する。Scratchの様々な情報が記載されており、日本語版は2015年3月23日に作成された。
名称の由来
Scratchの由来はディスクジョッキーがレコードを手でこするスクラッチと呼ばれる技術であり[19]、DJが気軽に曲をミックスすることと、Scratch言語によって簡単にプロジェクトをミックスすることを関連付けたことによる。
派生
Scratchのいくつかの派生[20]はScratch Modificationsと呼ばれScratchのバージョン1.4のソースコード[21]を使って製作された。これらのプログラムは通常「ブロック」が追加されたり[22]GUIが変更されたScratchのバリエーションである。
Build Your Own Blocks(BYOB)のようにそのうちのいくつかはさらにコンピューティングへの基礎的アプローチへのシフトを導入しているがBYOBにのみユーザーを許容しないものの、Scratchの一部ではないファーストクラス手続き(ラムダ)、ファーストクラスリスト(リストのリストを含む)、プロトタイプ継承を備えたファーストクラス真オブジェクト指向スプライトがある[23]。BYOBはイェンス・ムーニッヒが開発し[24][25]、カリフォルニア大学バークレー校のブライアン・ハーベイがドキュメンテーションを提供し[26][27]、計算機科学専攻ではない学生への計算機科学初級コースにおける「The Beauty and Joy of Computing」を教える時に使用された[28]。
2014年にはScratch 1.4と同等の環境をiPadで実現した「Pyonkee」が登場した[29]。伊藤忠テクノソリューションズが児童向けに開催するプログラミング教室でも採用されている[30][31]。
日本国内では更にJavaScriptではなく、日本発祥のプログラミング言語であるRubyを同一の操作性でプログラムする為に、任意団体スモウルビー(2014年6月1日に「NPO法人Rubyプログラミング少年団」へ改名)により「Smalruby」というものも作られて展開している。
展開
ミッチェル・レズニック本人による、Scratchを題材としたプレゼンテーション「Let's teach kids to code(子供たちにプログラミングを教えよう)」が、2012年11月におこなわれたTEDxBeaconStreet[32]にて講演され、その模様がTEDによって公開されている[33]。この中でミッチェル・レズニックは、Scratchを利用して子供にプログラミングを覚えさせることの優位性、特にコーディングを通して得られる様々な経験が、その子供がプログラマになるかならないかに関わらず、将来職に就き、仕事をこなすうえでとても有益である、と説いている。
また、TEDやTEDxの講演イベントでおこなわれたプレゼンテーションから英会話を学ぶことを目的とした、NHKによる教育番組「スーパープレゼンテーション」でもこのプレゼンテーションが取り上げられている[34]。NHK Eテレでは『Why!?プログラミング』で公式にプログラミングソフトとして採用されたり、民放では千葉テレビ放送・BSフジの『GP LEAGUE プログラミングコロシアム』で放送される「GP LEAGUE」での公式言語の1つにもなっている。
関連項目
以下の若者向けコンピューティングプロジェクトも、MITライフロング・キンダーガーテングループから起こったものである:
加えてStencylゲーム製作ツールもScratchから直接感化された「コードブロック」ベースのビジュアルプログラミング言語を使用している。他の教育用プログラミング言語には以下のようなものがある。
脚注
- ↑ “Scratch: imagine, program, share”. Massachusetts Institute of Technology. . 2007閲覧.
- ↑ Scratch website
- ↑ 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
- ↑ Scratch source-code download page http://info.scratch.mit.edu
- ↑ Scratch Day at Science Museum of Minnesota
- ↑ Scratch for budding computer scientists
- ↑ Scratch for budding computer scientists
- ↑ CTYOnline Scratch Programming Course
- ↑ Monroy-Hernández, A. and Resnick, M. (2008). Empowering kids to create and share programmable media. ACM interactions 15, 2 (March 2008), 50-53
- ↑ 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)
- ↑ 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)
- ↑ “よくある質問と答え(FAQ)”. . 2017閲覧.
- ↑ http://www.quantcast.com/scratch.mit.edu
- ↑ Scratch usage statistics
- ↑ http://kids.sapo.pt/scratch
- ↑ http://scratch.uaeu.ac.ae/
- ↑ http://www.aec.at/prix_history_en.php?year=2008
- ↑ http://scratched.media.mit.edu
- ↑ Schorow, Stephanie (2007年5月14日). “Creating from Scratch”. MIT News Office . 2014閲覧.
- ↑ http://wiki.scratch.mit.edu
- ↑ Scratchのバージョン1.4はSmalltalk処理系のひとつであるSqueak2.8から派生して作られたMIT Squeakを使用して記述されている。
- ↑ http://wiki.scratch.mit.edu
- ↑ BYOB homepage http://byob.berkeley.edu
- ↑ Jens Mönig user contributions page
- ↑ Mönig's blog post announcing BYOB as bringing protypal inheritance to Scratch
- ↑ Brian Harvey homepage
- ↑ Brian Harvey user contributions page
- ↑ The Beauty and Joy of Computing course homepage
- ↑ 田近一郎、本多一彦、杉江晶子、森博「タブレット端末を活用したプログラミング教育(3) ―プログラミング・オン・モバイル―」『名古屋文理大学紀要』第15号、2014年、17-27ページ。
- ↑ 子ども向けプログラミングワークショップ 「未来実現IT教室 Children's Technology Challenge」開催
- ↑ 『FujiSankei Business i.』2016年(平成28年)10月21日付14面。
- ↑ TEDxBeaconStreet
- ↑ ミッチェル・レズニック 「子供達にプログラミングを教えよう」 ted.com
- ↑ 2013.09.23 Let's teach kids to code 「子どもにプログラミングを教えよう」ミッチェル・レズニック 2013年9月23日放送分
外部リンク
- 公式ウェブサイト
- Scratch - DMOZ
- Scratch Wiki
- Picoboard - Scratchプロジェクトに接続する現実世界のセンサー