これは TECHSCORE Advent Calendar 2017の15日目の記事です。
はじめに
みなさんはじめまして。秋山真咲です。
TECHSCORE BLOG初登場となります。よろしくお願いします。
突然ですが、「2020年は何の年ですか?」と質問を受けると皆さんは、どのように答えるでしょうか?
多くの方が「東京オリンピック・パラリンピックが開催される年です」と答えると思います。
オリンピック開催で日本全体が盛り上がる2020年から小学校でプログラミング教育が必修化されます。
親子で学ぶプログラミングの特集記事や書籍を目にする機会が増えてきている背景もあり、早期プログラミング教育の取組みにおいて先進国である英国(イングランド)から生まれたBBC micro:bitやいくつかのプログラミング学習用ツールを童心に戻ったつもりで試してみることにしました。
BBC micro:bitとは
BBC micro:bitはBBC(英国放送協会)が主体となって作っている教育向けのワンボードマイコンです。
小さな子供の手でも扱いやすいサイズ(42×52×10mm、重さは9グラム)で、赤色に光るLEDディスプレイ(光センサーとしても利用)、加速度センサー、地磁気センサー、温度センサーなどが収まった mbedベースのデバイスです。
イギリスで100万人の生徒に無償で配布されたことで話題となり、日本でも2017年8月から販売開始されました。(Micro:bit財団は、「2020年までにBBC micro:bitを30万人の日本の子どもたちに届けることを目指す」と発表しています。http://microbit.org/ja/2017-08-03-japan-launch/)
Webブラウザー上でJavaScript ブロックエディターを用いてプログラミングしていくことが多いようですが、Python editorを使ってプログラミングすることもできます。(それぞれのリファレンスはこちらから確認できます。)
JavaScriptブロックエディターの画面構成は、シミュレーター、ツールボックス、プログラミングエリアと大きく3つに分かれています。
プログラミングの大まかな流れは以下の通りです。
- ツールボックスには、プログラミングのために利用するブロックがあらかじめ保持されており、プログラミングエリアであたかもブロック玩具を組み立てるようにプログラミングをしていきます。
- プログラミングを終えた後は、シミュレーターで動作確認し、問題がなければJavaScriptブロックエディター上にあるダウンロードボタンをクリックすることで、作成したプログラムファイル(HEX形式のファイル)をPCへダウンロードします。
- その後、PCからUSB接続されたBBC micro:bitへプログラムファイルをコピーするとBBC micro:bit上でプログラムが動きます。
音楽を鳴らしたり、サーボモーターを動かしたりするプログラムを作成すると、それらの機器を実際に接続しなくても、シミュレーター上に接続方法を表示して、外部機器の動作をシミュレーションしてくれます。
開発環境を準備する手間がほとんど無く、センサーやLED類ももともと搭載されているものだけで始められるので、電子工作に不慣れな子供(大人)でも楽しめます。
専用アプリケーションを用いることで、スマートフォンからもプログラミングができます。
(専用アプリケーションはGoogle Play、AppStoreそれぞれからダウンロードできます。)
先ほどのプログラミングの大まかな流れの違いといえば、プログラミングを終えた後でスマートフォンからBBC micro:bitへプログラムをコピーする際にBluetoothで接続する必要があるぐらいです。
こちらのページでBBC micro:bitを利用した作品の作り方がいくつか紹介されています。その中から腕時計やギターなどを作ってみましたが、さすがに腕時計のベルトを布切れから作ったり、ギターのボディーを段ボールで作ることはしませんでした。(すみません。ここだけは童心に戻ることが、どうしてもできませんでした。)
プログラミング学習用ツール
今回取り上げたBBC micro:bitのJavaScrpitブロックエディター以外にも8つのプログラミング学習用ツールを試してみました。
- Scratch
米マサチューセッツ工科大学(MIT)にあるメディアラボが公開した言語で、世界中で利用されており認知度No.1。Webサイトにある「コミュニティ」がとても充実しているのが特徴。 - hackforplay
ロールプレイングゲームの攻略法そのものが、プログラミングになっている学習環境になっており、学習者のレベルアップに応じて自ら「ステージ」を追加できるのが特徴。 - Viscuit
変数や条件分岐、繰り返しなどの構文を用いず、この状態になれば次はこの状態になるという状態遷移の宣言を積み重ねることで、全体のプログラムを作っていくのが特徴。 - プログラミン
文部科学省が提供する言語。ブロックに「ヒダリン(左に動かす)」「カメロン(キャラクターの色を変える)」「ズットン(くりかえす)」など名前を付けて覚えやすくしているのが特徴。 - MOONBlock
ゲーム制作を意識して開発されたビジュアルプログラミング言語。ブロックで組んだプログラムをJavaScriptのソースコードで見ることができるのが特徴。 - Tickle
Scratch風なブロックでプログラムを作成でき、ロボット玩具を操作するための専用のブロックが用意されているのが特徴。 - GLICODE
白い紙の上に並べて専用のスマホアプリからお菓子をカメラで撮影。お菓子に命令が割り当てられているのが特徴。 - Code Studio
動画のチュートリアルが充実していて「スター・ウォーズ」などの人気キャラクターを使い、効果音も忠実に再現しているのが特徴。
上記以外にもプログラミング学習用のツールは、世界中ですでに50以上存在するそうです。
(世界のプログラミング教育ツールを検証、G7Programming Learning Summit2016)
最後に
変化が激しく将来の予測が困難な時代だからこそ、プログラミング教育によって論理的思考力や創造性、問題解決能力といった資質・能力を育んでいくことが、ますます大切になってくると思います。
なぜならば、すでに答えがわかっている問題を正確に解くことも大切ですが、1つに答えが定まらない課題に対応したり、新しい課題を発見したりすること、さらには、それを解決するアイディアを形にできる力が今まで以上に必要になると思うからです。
こうした力をつけていくには、学びの中で成功や失敗といった試行錯誤の過程が伴うと思います。
プログラミングを学ぶ初心者が、呪文のようなテキストでプログラムを記述することに抵抗を示すことは、大いにあることでしょう。試行錯誤の過程では、苦しみもありますから楽しくなければ長くは続かないと思います。楽しみながら試行錯誤できるように、今回ご紹介したようなプログラミング学習用ツールを用いることは、長く続けていくためにも効果があると思います。
また今回ご紹介したBBC micro:bit本体に電池モジュールや回転サーボモーターモジュールなどの電子基板を組合せ、自らの手で自分の作りたいものを生み出すことができることも子供たちひとりひとりの興味や関心を尊重し、これを追求する科学的(論理的)情操を養うことにつながると思いました。
私の錆びついた思考回路はどうにもならないかもしれませんが、たまの休日には、子供と一緒にプログラミングでいろいろ楽しんでみたいと思います。
最後まで読んでいただきありがとうございました。