スクラッチって何?
スクラッチとはMIT(マサチューセッツ工科大学)のミッチェル・レズニック教授が開発した子供向けのプログラミング言語です。非営利団体のスクラッチ財団が費用を出して、教授の研究チームであるライフロングキンダーガーデンチームが開発を行なっているために完全無償で提供されています。
ライフロングキンダーガーデンとは生涯幼稚園という意味で、教授のプログラミング教育に対する深い想いが込められています。幼稚園では友達と楽しくもの作りをしながら、自然と様々なことを学べていて、それこそが今の時代に求められる創造性を育むプロセスであると教授は言います。しかし、幼稚園を卒園すると、子供たちは机の前に座って先生のレクチャーを一方的に聞くことで多くの時間を過ごしてしまうことが創造性育む機会を奪っているのではないかと。
学校も、さらにはその後の人生も、ずっと幼稚園のようにしたいのです。人々が生涯にわたり、幼稚園のようなスタイルで学び続けられるようにしたいのです。他の人と一緒につくり、デザインし、実験し、探求し続けてほしい。それこそが今日の社会で生きるための準備になるからです。
引用:Computer Science for ALL インタビュー「子どもたちの「創造的な学び」実現に向けて大切なこと」
プログラミング言語といえばこういうびっしり数式が並んだものものを想像する人も多いかと思いますがスクラッチは全然違います。
例えば以下のコードを書くだけで、キャラクターを動かすことができます。頭で想像したことをブロックを組み合わせるだけで実現できるのがスクラッチの特徴なのです。
プログラムを勉強するのではなく、頭で想像したことがどのようにプログラムすれば実現できるのかを試行錯誤していくうちにプログラミングが上達し、さらに発想が湧いてくるといういい循環が生まれてきます。
そして、作ったプログラムは全世界に共有することができます。
世界中の子供たちがプログラムを共有しあい、お互いに創造性を高めあっていき、その過程でグローバル社会を生き抜くための”意味のある教養”を身につけていくのもスクラッチでプログラミング学習をすることの大切な要素なのです。
スクラッチはどのくらい利用されているの?
スクラッチのアカウントを持っている人のことをScracherと呼びますが、現在日本にはScracherが106万人います。以下のグラフは日本人Scracherの推移ですが、ここ2年で爆発的に増えていることがわかります。
またScracherの年齢分布は以下のようになっています。10歳〜14歳でおよそ全体の半数を占めます。
人口分布から割り出すと、およそこの年代の10人に1人がScracherだということになります
それでも日本のScratcherの数は世界全体のScracherの1.4%にしか過ぎません。世界中でScrachを使って子供たちがプログラミングを楽しんでいます。日本でも2020年からプログラミング教育の義務化がはじまったことにより、今後一層キッズScracherは増えていくことになると予想されます。数年後には子供が一人ひとつのスクラッチアカウントを持って、キッズコミュニティーのスタンダードになっているかもしれません
プログラミング学習はどういう意味があるの?
では、プログラミング学習にはどのような意味があるのでしょうか。将来プログラマーになって新しいサービスを開発したい(子供にさせたい)!という人はもちろん子供の頃からプログラミング学習を行うことに意味はありますが、実際のところほどんどの子供はプログラマーになるわけではありません。
しかし、プログラマーにならないまでも、どれほどのことがプログラミング学習で身につくのか、例をあげてみます。
冒頭でネコのキャラクターを簡単なブロック動かしましたが、コードを書くことでキャラクターが動くということに子供は興奮して、もっといろんなことをさせたいと思うようになるでしょう。たとえばこんなことをしたいと思ったとします。自分の作ったキャラクターが画面を動き回り、端についた回数が表示される。
この動きを実現するのは以下のコードになります。
このプログラミングを行うだけで子供はどれだけのことを学べるでしょうか。
座標の概念、アニメーションの仕組み、条件分岐(MECE)、イラストレーション、変数、反射角度。これらはもちろん学校の授業でも学びますが、授業で学ぶのと創作活動の中から学んでいくのでは全く身につき方は違います。子供たちはなぜ座標や変数を学ばなければならないのかわからないからです。
さらに、このプロジェクトを世界に共有することで、世界中の子供がメッセージをくれるかもしれません。そうすると子供は英語でコミュニケーションを取ろうとするでしょう。
前出のミッシェル教授も2012年のTEDで以下のように話しています。
子供達はこのようなプロジェクトを 作りながら プログラミングを 覚えていきますが さらに重要なのは プログラムを書くことで学ぶということです プログラミングを学ぶことで 他のいろいろなことを 学ぶことができるのです いろいろな新しい学習への 道が開けます 読み書きとの類似性で また説明したいと思います 読み書きを学ぶことで 他の多くのことを 学ぶ可能性が開けます 読む事ができるようになると 読むことで学べるようになります
引用:ミッチェル・レズニック「子供達にプログラミングを教えよう」TED 2012
今から10年も前のスピーチですが、プログラミングを子供に教える意味をわかりやすく解説してくれているので是非聞いてみてください。
ミッチェル・レズニック「子供達にプログラミングを教えよう」TED 2012
スクラッチで作れる作品の例
では、スクラッチでどのような作品を作ることができるのか、このブログで紹介したゲームの中からいくつか例をあげて紹介します。スクラッチの作品の中には、とてつもなく高度なものも多くありますが、さすがに子供の学習の域を超えていますので、ここで紹介するものはすべて子供でも挑戦できるレベルにしています。
初級:もぐらたたきゲーム
カジュアルゲーム定番のもぐらたたきです。座標の概念を使っていないので小学生低学年でもプログラミングに興味を持ってもらえる第一歩になると思います。モグラが出てくるスピードを変えたり、自分だけのキャラクターを作ることでオリジナルのゲームを作ることの喜びを得られると思います。
作り方はこちらで解説しています。
中級:謎解き脱出ゲーム
子供は謎解き脱出ゲームが大好きです。自分なりのトリックを考えて、それをどのようにプログラミングで実装していくのかを試行錯誤していくことで、創造的に思考するスキルは非常に高まると思います。
作り方はこちらで解説しています。
上級:カートゲーム
ゲーム作りに慣れてくると、既存のゲームを自分なりに再現したくなってくると思います。例えばマリオカートやフォートナイト、にゃんこ大戦争といった、子供達の中で人気のあるゲームをどのようにしたら再現できるか、と考えるのも学習のモチベーションに繋がります。
例えば以下のカートゲームでは、複雑な座標系、遠近法、三角関数、加速度を駆使して作成します。このようなゲームを作っていくことで数学や物理の根っことなる力が身についていくはずです。
作り方はこちらで解説しています。
さいごに
さいごに、ミッチェル教授が2018年のscratch Day in TOKYOの基調講演で話されていた内容を引用します。
AI時代では決まったタスクは機械がやるようになり、創造的に考えられることが社会に貢献できる力となります。これを子どもたちにとって困難な課題だと捉えるよりも、より人間らしく創造的に思考する、いい機会だと私は考えています。これからの時代、創造的思考ができることは、経済的な成功だけでなく、喜びに満ち有意義な人生を送ることにつながります
引用:scratch Day in TOKYO 2018 基調講演
実際のところ、子供たちは学校のカリキュラムに沿って座学の学習を行い、テストを受け、テストの点数で順位がつき、進路が決まるという現実は今の所かわりそうもありません。ですので、子供のモチベーションがテストにある限り、そこを最大限サポートするのは親の役割だと思いますが、変わらない義務教育とは対照的に劇的に変わってくる社会というのも同時に見据えていくのも親の役割なのかもしれません。そしておそらくそれの1つのこたえがスクラッチを活用したプログラミングにあるのではと思います。