こんにちは、ゆたかみわーくです。

2020年からプログラミング教育が小学校で必修化されますよね。

これからはますますIT技術が必要な社会となり、次の時代を担う若者たちは、このように幼いうちからコンピューターに触れ、必要な技術を収めていくのでしょう。

まさに真の「デジタルネイティブ※」。

※学生時代からインターネットやパソコンが普通にある時代を生きてきた世代のこと。

ところで、小学生のうちから学ぶプログラミングって、どんなことをするんでしょうね?

まさか、子供のころからJavaをバリバリに扱えるようにする・・・とかじゃあるまいし。。

今回の記事では、そんな小学校でのプログラミング授業について紹介させていただきたいと思います。

【何するの?】2020年からの小学校プログラミング教育

私の姪(小学校5年生)に話を聞いてみたところ、姪のクラスでは既にプログラミング教育ライクな授業が行われており、なんとそこでは「マインクラフト(Minecraft)」が利用されているんだとか。

マインクラフト タイトル画面

え、そうなの?

ゲームするの?

という感想が漏れているかもしれませんが、ここは文部科学省がまとめる「小学校プログラミング教育の手引」を参照して、小学校に求められているプログラミング教育に対する理解を深めましょう。

小学校プログラミング教育の手引

文部科学省が用意する小学校プログラミング教育の手引き(関連リンク参照)は、次のようなことを「ねらい」とした資料になります。

  • 小学校段階のプログラミング教育について基本的な考え方をわかりやすく解説
  • 教師がプログラミング教育に対して抱いている不安を解消し、安心して取り組めるようにする
  • プログラミング教育のねらいを実現するためのカリキュラム・マネジメントの重要性と取組例を解説する

つまり、この資料を読めば何がプログラミング教育のねらいで、どのように取り組めばよいのかが分かるというわけです。

プログラミング教育のねらい

プログラミング教育のねらいはもちろん、未来における子供たちの可能性を広げることです。

具体的には、仕事だけでなく学習や生活、あらゆる場面において、コンピュータや適切なサービスを活用して問題を解決していくことが不可欠な社会が到来しつつあるので、コンピュータをより効果的に活用していくために、その動作の仕組みである「プログラム」と命令を与える「プログラミング」を理解することで、子供たちがコンピュータを「魔法の箱」ではなく、きちんと理解したうえで使えるようにしましょうよということです。

そして、子供たちの秘めたる可能性を発掘し、将来の社会で活躍できるキッカケにしたいということです。

プログラム言語を学ぶわけではないプログラミング教育

小学校におけるプログラミング教育は、先のねらいの通りコンピュータを魔法の箱としてしまわないために、次のことを学びます。

  • 身近な生活でコンピュータが活用されているということ
  • 問題解決の手順に気付くこと
  • プログラミング的思考
  • コンピュータをこれからの社会に生かそうとする態度

プログラミング的思考は、要は設計書をブラッシュアップし続けていくための論理的思考力といった感じのもので、「自分の意図する一連の動きの実現のために必要な要素の組み合わせを考え続けて改善していく」思考のことをそう呼ぶんだそうです。

つまり、JavaやPHPといったプログラム言語を学ぶことがプログラミング教育の中身ではないわけです(やってはいけないという意味ではありません)。

ではどんなことを実施すればよいのかということで、手引きに記載されている例がこちらです。

  • 算数:プログラミングを通して、正多角形の意味を基に正多角形をかく場面
  • 理科:身の回りには電気の性質や働きを利用した道具があること等をプログラミングを通して学習する場面
  • 音楽:様々なリズム・パターンを組み合わせて音楽をつくることをプログラミングを通して学習する場面

なるほど・・・って、でもこれをどうやって実現するのでしょう。。

ビジュアルプログラミング

ここで出てくるのがマインクラフトです。

長い時間を確保してプログラム言語を習得してもらうことはしないプログラミング教育ではありますが、プログラミングを理解してもらうには、何かしらの画面で処理を組み立てることができる仕組みが必要になります。

ビジュアルプログラミングとは、テキストでのプログラミングではなく、色や形で役割を分けられた視覚的なオブジェクトを組み立てることでプログラミングができる仕組みを言います。

ビジュアルプログラミングで有名なツールとしては、マサチューセッツ工科大学(MIT)のメディアラボが開発した「スクラッチ」というものがあります。

直感的にプログラムをくみ上げることができるインターフェース

そのスクラッチが実は・・・

マインクラフトと連携できるのです。

具体的には、連携すると利用可能になる専用オブジェクトを用いて、スクラッチ上で組み立てたプログラミング通りにマインクラフト上のエージェント(専用キャラクター)を動かすことができます。

この仕組みを利用して、エージェントを目的の位置まで移動したり、ブロックを置いて四角を描いて移動させたりすることでプログラミングを学んでいくことができます。

テキストによるプログラミングよりも圧倒的にとっつきやすいビジュアルプログラミング×ゲーム画面ということで、小学生に興味を持ってもらう入口に打って付けです。

また、ビジュアルプログラミングソフトはスクラッチだけではなく、同じくマインクラフトと連携できて、コードのJavascript書き出しができるマイクロソフト製の「MakeCode」や、Googleが提供する「Google Blockly」、国産でなんと文部科学省が開発した「プログラミン」や、NTTの研究で開発された「Viscuit(ビスケット)」などがあります。

スクラッチと似たインターフェースをもち、なおかつJavaScriptでの入出力もできるMakeCode
同じようにブロックでコードを組んで課題をこなしていくGoogle Blockly。オープンソースであり、実は先のMakeCodeはBlocklyベース。
プログラミンは画面下部に並ぶ要素を絵にドラッグしてプログラムを組んでいく。利用にはFlashが必要。
Viscuitはメガネという名のフレームでつないでコマを動かす独特のインターフェース。こちらも利用にはFlashが必要。

実際にマインクラフトでやってみる

これは私が統合版マインクラフトとScratchX(スクラッチの実験版)を利用して、マインクラフト上のエージェント(主人公とは別のScratchでの操作専用ロボ)の動きをプログラミングしている様子です(画像をクリックすると大きくなります)。

ScratchXの画面(左)のプログラムを実行すると、次の動画のように動き出します。

プログラム通りの規則的な繰り返しの動きです。

こういったことが、簡単な手順で実現できてしまうんです。

必要なのは、マインクラフトを次の含む2つのアプリのみ。

  • マインクラフト(統合版):Microsoft Storeで購入できるMinecraft for Windows 10のこと
  • Code Connection

マインクラフト スターターコレクション|Windows 10|オンラインコード版

新品価格
¥2,891から
(2019/10/15 22:48時点)

利用はとても簡単で、マインクラフトのチャットにCode Connectionから示された連携用コードを打ち込むだけです。

このあたりの詳しい利用方法はまた別の記事でご紹介できればと思います。

しかし、こうやって簡単でとっつきやすいビジュアルプログラミングの手段があって、こういったソフトウェアを利用して小学生たちはプログラミング的思考を学んでいくということがわかりました。

まとめ

いかがでしたでしょうか?

2020年からの小学校プログラミング教育は何をするのか?まとめると次のようになります。

  • JavaやPHPといったプログラム言語をがっつり学習するわけではない
  • プログラミング教育で学ぶことは、身近なコンピュータの存在に気付くこと、プログラミング的思考を養うこと
  • 既に取り組みを始めている学校では、学習にマインクラフトを用いている
  • ビジュアルプログラミングのツールは多数あるので、各科目で最適なものを選びたい

調べれば調べるほどに、若いころからプログラミングに触れることができる環境が整ってきていることが、羨ましく思えてきますね。

子供達にはその柔軟な頭をもって、どんどんとプログラミングをマスターしていってもらいたいですね。

以上になります。

最後まで読んでいただきありがとうございました!

関連リンク

小学校プログラミング教育の手引

スクラッチ

MakeCode

Google Blockly

プログラミン

Viscuit

ScratchX

Code Connection