最近、「子供のプログラミング教育」が話題になることが増えてきました。子供向けにコンピューターやテクノロジー、プログラミングについて描いた絵本「ルビィのぼうけん」や、芸人でIT企業の役員でもある厚切りジェイソンさんが進行するNTKの番組「WHY!? プログラミング」など、小さい子供を対象としたプログラミング教育の話題が続々と出てきております。将来的に義務教育にプログラミングが必須になることも忘れてはなりません。
日常的にコーディングしているプログラマーの方々にとっては、一体どうやってプログラミングを子供に教えるのか、とても気になりますよね。
今回は最近話題の子供向けプログラミング教育ツール、Scratchを取り上げます。Scratchでは何ができるのか、本当にプログラミングを教えることができるのか、実際に我が子に体験させてみて感じたメリット・デメリットについて紹介していきます。
参照:プログラマーに英語が必要かどうかについて解説した記事はこちら
Scratchとは?
厳密な定義はさておき、一人のプログラマーとしての感覚からいうと、Scratchとは「キャラクターを擬似プログラミング言語で動かすアプリ」といったところです。動きを実装したらすぐにプログラムを実行することができます。コンパイルなど面倒な手続きは必要なく、作ったプログラムはダブルクリックだけで起動できます。
PCに何かインストールする必要はなく、すべてブラウザ上で行います。作ったものは自分のPCヘダウンロードできますし、さらにそれをアップロードして動きを確認することも可能です。つまり他人の作ったプログラムを受け取ったり、自分の作ったものを他人に渡すこともできるのです。
ScratchはMITメディアラボが開発しています。ユーザー登録もできますが必須ではありません。無償で利用することがます。
Scratchで何ができるのか?
まずはScratchで何ができるのか、実際にお見せしましょう。Scratchではキャラクターのことをスプライトといいます。以下スプライトを簡単に動かしてみましょう。
スプライトを200右に動かす。
スプライトを90度回す。
スプライトを200右に動かした後、x座標をゼロまで戻す。(この動きを「ずっと」繰り返す)
図では「ずっと」という命令を使っていますが、別の制御も可能です。「〜まで繰り返す」や「もし〜なら〜」といった、いわゆるwhileやif elseの動きをさせることもできます。
このように、キャラクターをどのように動かすのか指示を与え、思い通りに動くのかどうかを目で確認できるのがScratchです。動きだけでなくキャラクターや背景を変えることもできます。
また別のキャラクターを入れてそれを自動で動かして、当たり判定を入れてゲームを作ることもできます。先に述べた「WHY!? プログラミング」にゲームのサンプルがあります。興味のある方はぜひのぞいて見てください。
我が子で試してみた感想
子供の反応
私の子供はまだ小学校3年生で、マウスやキーボードの操作は慣れていません。そんな子供でもScratchは直感的な操作が可能で、30分程度教えただけで自由自在にあつかえるようになっていました。キーボードを使うのは文字や数値を入力するときくらいで、それ以外はすべてマウスで操作できるのもうれしいところです。
次第に子供から「◯◯するにはどうしたらいいの?」といった質問が次々に出てきました。つまりScratchは子供をどんどん引き込み、子供の中に「あれがしたい!これがしたい!」という意欲をかき立てる不思議なツールといえます。我が子の反応は上々でした。
親・プログラマーとして
開発言語に依存することがないので真にロジックのみに注力できる、よくできたツールという印象を受けました。順次・選択・繰り返しというプログラムの基本構造をはじめとして、キー操作に動きを連動させるイベント処理の実装など、本来は複雑なことを簡単に実現できるのにはとても感心しました。
プログラミング以外に教えられること
実際に我が子で実践した結果、Scratchではプログラミング以外にも学べる点がありました。今回は4つに絞ってご紹介します。
1.パソコンの基本操作
何といってもコレ!マウスやキーボードはもちろん、ドラッグドロップ等々の基本操作を教えらえるのは大きなメリットです。単に「ドラッグドロップはこうする」と教えるより、「この制御をここにドラッグドロップするにはね・・・」と実際の操作に沿ってパソコンの基本動作を教えることができるので、飲み込みは早いです。
2.正負の概念
キャラクターを右へ10動かすには「x軸方向へ10移動」、上へ10動かすには「y軸方向へ10移動」と指示を与えます。左や下に動かすには「左や下に移動せよ」ではなく、「x軸方向へ-10移動」「y軸方向へ-10移動」といった指示をします。つまりゼロ以下の数値があるということを教えることができます。
単純に「負数はゼロ以下」だけでなく、キャラクターの動きと絡めて「正の数と逆方向」といった数直線の感覚を教えられるのは大きなメリットです。
3.座標的感覚
子供は「ちょっと右」「ちょっと左」ではなく、具体的な数値で動きを制御しようとするようになりました。座標といった感覚が身についたようです。ちなみにScratchはステージの中のど真ん中にx軸とy軸が走ります。つまり座標(0,0)は左下ではなくちょうど画面中央になります。スプライトを自在にあつかう感覚がマスターできれば、おそらく小学校で習う図形やグラフは、この子にとって退屈になるだろうと勝手に期待する父親でした。
4.すでに習ったことを応用できる
1周が360度、それを4分割したのが90度でそれを「直角」という、と最初に教えました。では、以下の場合はどうする?と質問してみました。
・Scratchの標準では15度動かすようになっている。
・キャラクターを真下を向ける(つまり90度動かす)には?
と聞くと、90度割る15度で6回ダブルクリックすればいい!と答えてくれるのは、父親としてとてもうれしいです。角度そのものは習っていなくとも、すでに習った割り算を応用してくれるのは実にたのもしいですね。欲を言えば、算数は宿題のプリントの問題を解くためのものではなく、ちゃんと使えるもの!ということを気づいてほしいのですが・・・
Scratchのデメリット
Scratchはプログラミングを教えるツールということを忘れてはなりません。子供がある程度大きくなると、ソースコードを通じて本物のプログラミングを教えたいですね。Scratchはゲーム感覚で気軽にプログラミングを学ぶことができるのは確かですが、Scratchそのものの使い方ばかり習熟しても仕方ありません。
中には『10才からはじめる プログラミング図鑑』のように、スクラッチとPythonのソースコードを併記しているような本もあります。実際のソースコードにも触れていくことで、よりステップアップしたプログラミング学習ができます。
まとめ
今回はScratchというツールを使ったプログラミング教育について、実際に我が子に体験をさせてメリット・デメリットを紹介しました。日ごろお子さんと触れ合う機会の少ない方や、子供へのプログラミング教育を検討されている方などの参考になれば幸いです。
ぜひ、子供と楽しくプログラミングを学んでみてはいかがでしょうか。
参照:プログラマーに英語が必要かどうかについて解説した記事はこちら
イラスト:ゆずりは さとし
この記事の著者 by 本多 農 Javaプログラマーとして勤務するかたわらで、ライターや講師を務める。 京都府在住。 |
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)