2018.04.25
  • twitter
  • facebook
  • google+
  • はてなブックマーク
  • 印刷

問題解決の力を育むプログラミング教育(vol.1) 電気を有効に使うためのプログラムを考える ―筑波大学附属小学校6年理科―前編

新学習指導要領では、プログラミング教育を通して論理的思考力を身につけることが求められている。そのためには、どんなプログラミング教育をどの教科・単元で行えばいいのか、多くの教師が悩んでいるようだ。そこで今回は、先進的な教育で知られる筑波大学附属小学校におけるプログラミング教育の授業実践をリポートする。

問題解決の力を育むプログラミング教育 ~電気を有効に使うためのプログラムを考える ―筑波大学附属小学校6年理科― 前編

授業を拝見!

グループでプログラムを組み、改善していく

学年・教科:6年 理科
単元:電気の利用(全16時間中14~15時間目)
目標:使用する目的に合わせてセンサーを使って制御するなど、電気を有効に利用するため、必要な方法についてより妥当な考えを表現することができる
指導者:辻 健 教諭
使用教材・教具:タブレットPC、MESH、コンデンサー、手回し発電機、扇風機、ワークシート、小型ホワイトボード、マグネットカード

本時に至るまでの経緯と単元計画

筑波大学附属小学校 教諭 辻 健 氏

筑波大学附属小学校 教諭 辻 健 氏

「今日はプログラミングを行いますが、授業の出発点は総合的な学習の時間(以下、総合)の『理想の家づくりに取り組む』なのです」
と、辻教諭は説明してくれた。この“プログラミング教育に至るまでの経緯”がとても大事なので、授業リポートを始める前に紹介しておこう。

この総合の「理想の家づくり」は、児童が自分で理想の家を考え、模型を作っていくという活動だ。家での暮らしには、電気が欠かせない。そこで、理科の「電気の利用」の単元も同時進行で学習し、「エネルギーを大切に使う仮設住宅づくり」について学び、考えさせてきた。

例えば、第1次(2時間)で「電気を作る方法」(太陽光発電、風力発電、手回し発電機など)を学んだら、その学びを総合の模型づくりに反映させる。すると「昼間は太陽光発電できるけど、夜はどうすればいい?」と疑問が出てくる。そこで、今度は理科の第2次(4時間)で「電気を蓄える方法」(コンデンサーによる蓄電と変換)について学ぶ。このように、「家づくり」で問題や疑問が出てきたら理科で学び、その学びを家づくりに活かすという循環になっているのだ。

そして第3次(3時間)では、「電気を無駄なく効率的に使う方法」としてLEDや電熱線などについて学習し、いよいよ第4次(6時間)で「プログラミングで、電気をもっと無駄なく効率的に使う方法」について学び、実践することになった。

今回のプログラミング教材の一つ「MESH」。写真のような小さなブロック形状の電子タグと専用アプリから成る

今回のプログラミング教材の一つ「MESH」。写真のような小さなブロック形状の電子タグと専用アプリから成る

今回のプログラミング教育で用いるのは、「MESH」というセンサー群とプログラミングアプリだ。人感知、動き、温度湿度、明るさという4種類のセンサーに加え、LED、スイッチボタン、GPIO(接続した機器のスイッチON・OFF制御等を行う)といったデバイスが用意されている。

センサーやデバイスはBluetoothでiPadと無線接続され、児童はiPad上でMESHアプリを使いプログラムを作成する。アイコンをドラッグ&ドロップしたり、アイコン同士を線で結んだりして、直感的にプログラミングできるので、児童でも簡単に行える点が特長だ。

前々時に、児童はこのMESHを用いて、LEDを使った簡単なプログラミングに挑戦した。児童にとっては初めてのプログラミングだったがすぐに慣れ、「ボタンを押すとLEDがON・OFFする」「人を感知するとLEDが自動でONになる」などのプログラムを組み、MESHでどんなことができるかをつかんだ。

まず個別でアイデアを考え、班の方針を議論し、プログラムを組む

そして本時では、いよいよ本格的なプログラミングに取り組む。“電気を無駄なく効率的に使うのに役立つ扇風機”を、プログラミングするのだ。読者の皆さんも、どんな扇風機にすればいいか、考えながら読んでほしい。

(1) どんなプログラムが便利か、まずは個別に文章で考える

授業はまず、プログラミングのアイデア出しから始まった。どんな扇風機なら電気を無駄なく効率的に使えるか、まずは個別に考えさせたのだ。

「人がいて暑い時に自動で扇風機がONになる」
「涼しくなったら、自動でOFFになる」
など、一人ひとりが文章でプログラミングのアイデアを考え、ワークシートに書き出していった。

いきなりプログラミングに取りかからないのには、理由がある。辻教諭はこう説明してくれた。
「今回の授業は、グループで力を合わせて、より良いプログラムを作っていくのがねらいです。まずは個別にアイデアを考え、それを持ち寄って話し合った方が、いきなりグループで話し合わせるよりも議論が活性化します」

児童達はすでに皆、プログラミングができる力を持っているが、敢えて文章でアイデアを書く段階にとどめているのにも、理由があるそうだ。
「プログラムまで個別に考えさせてしまうと、グループでの話し合いが、誰のプログラムを班の作品として採用するかを競い合うコンペのようになってしまいます。コンペに敗れた児童には敗北感や疎外感が残り、授業への参加意識も薄れてしまう。これでは、お互いの良さを認め合い、皆で協力して一つのプログラムを作り、改善していく活動になりにくいのです」。

(2) ホワイトボード上で、グループで議論する

そんな辻教諭のねらい通り、児童達は4人1組のグループになると自分のアイデアを説明し合い、盛んに議論し始めた。

「人が近くにいて、気温が高かったら、自動で扇風機が回るようにしようよ」
「何度以上になったら扇風機を自動でONにする?」
「30℃は?」
「それだと暑すぎるので25℃以上がいいな」
「プログラムの順番はどうする?」
「まず人感センサーで人がいるかいないかを判定して、人を感知したら温度センサーで温度を判定させては?」

児童達は活発に話し合いながら、MESHのアイコンを模したマグネットカードを使って、ホワイトボード上でプログラムの“設計図”を考えていった。プログラムを組みながら議論するのではなく、まずはホワイトボード上で議論させるのにもねらいがあると、辻教諭は解説してくれた。

「すぐにiPadでプログラムを組み始めると、iPadを操作する児童が主導権を握ってしまい、自分の意見を優先的に反映しがちになります。これではグループ学習の意味がありません。ホワイトボード上でまずプログラムの設計図を議論させることで、誰か一人が主導権を握ることもなく、全員が参加しやすくなるのです」。

(3) プログラムを組む!

グループの方針が決まったら、iPadのMESHアプリで、いよいよプログラミングの開始だ。

多くの班は、「人を感知して、気温が設定温度以上なら、扇風機を自動でONにする」プログラムを組み始めた。例えば、人が近くにいて、25℃以上で扇風機が自動でONになるなら、次のようなプログラムになる。

【人感センサー:ON】―【温度:25℃以上】―【GPIO:ON】―扇風機

ちなみに温度の設定も、簡単にプログラミングできる。温度センサーのアイコンをタッチすると設定画面が開くので、そこで温度を入力するだけでいい。

しかし、このプログラムだけでは、人がいなくなっても扇風機は回り続けて電気が無駄になってしまう。先程の議論でそのことに気づいていた児童達は、このようなプログラムも追加した。

【人感センサー:OFF】―【GPIO:OFF】―扇風機

これで、近くに人がいなければ扇風機は自動で止まるようになった。

意図した通りに動くか検証し、改善する

グループ皆で考え、修正し、再実験する

グループ皆で考え、修正し、再実験する

(4) 意図した通りにプログラムが動くか検証と改善を繰り返す

プログラムを組んで終わりではない。むしろここからが本番だ。プログラムを組み終えた児童達は、自分達が意図した通りに動作するか、一つずつチェックし始めた。

例えば、「人がいて、温度が25℃以上なら、自動で扇風機がONになるか」をチェックするなら、まず人感センサーの近くに誰かを座らせる。しかし「温度が25℃以上」という条件を人為的にどう作るのだろう? と注目していると、ある児童が
「こうすればいいじゃない」
と、温度センサーを手で握って体温で温め始めた。なるほど、この手があったか! と感心した。

また「温度が25℃以下になったら扇風機が自動でOFFになるか」を確かめる際には、扇風機の風を温度センサーに当てて冷やすなど、児童達は工夫して実験していった。

しかし、意図した通りに動かないケースも出てきた。ある班では、「温度が25℃以下なのに、人感センサーが人を感知しただけで、扇風機が自動でONになってしまう」事態が発生した。何が原因なのかと、プログラムを見直す児童達。やがて、一人の児童が
「わかった!」
と叫び、ホワイトボード上に描かれたプログラムを指差した。

【人感センサー:ON】―【GPIO:ON】―扇風機

【温度:25℃以上】―――――┘

「このプログラムだと、『人感センサーがONになる』か『温度が25℃以上になる』か、どちらかの条件を一つ満たすと、扇風機がONになってしまうのでは?」
そこで、児童達はプログラムをこのように修正した。

【人感センサー:ON】―【温度:25℃以上】―【GPIO:ON】―扇風機

そして再度試験を行ってみると、見事意図した通りに作動! 児童達からも歓声が上がった。

このように、児童達は自分達が意図した通りに動くか、一つひとつ条件を確かめながら実験し、うまく動かなければ原因をグループ皆で考え、修正し、再実験するというサイクルで、プログラムを改善していった。

辻教諭は児童の作業を一度止め、全員がプログラミングを理解できているかどうか、発問する

辻教諭は児童の作業を一度止め、全員がプログラミングを理解できているかどうか、発問する

(5) 教師の発問:プログラムをこう変更するとどうなる?

ここで一度、辻教諭は児童達の作業を止め、全員がプログラミングを理解できているかを試す発問を始めた。
「このプログラムの場合、温度が20℃でも、ボタンを押したら扇風機はつく? つかない?」
以下のプログラムを見て、読者の皆さんも考えてみてほしい。

【人感センサー:ON】―【温度:25℃以上】―【GPIO:ON】―扇風機

          【ボタン:ON】―――――――┘

正解は、「つく」。もちろん児童達も正解を即答しただけでなく、
「上と下のプログラムは別の“回路”になっているから、温度が25℃未満でも、ボタンを押せば扇風機は回る」
と、理路整然と解説も加えた。

さらに、ある児童が
「上の回路は、ANDを使ったプログラムにした方が、“人に優しく”なるよ」
と、口を挟んで来た。その児童が提案したプログラムは、こうだ。

【人感センサー:ON】―[AND]―【GPIO:ON】―扇風機

【温度:25℃以上】――――┘

[AND]は、MESHアプリで使える命令文。その使い方を、児童はこう説明した。
「このプログラムなら、ANDで結んだ二つの条件を同時に満たせば、扇風機がONになります」
それを聞いた辻教諭が、
「先生がさっき書いたプログラムと、動作は同じだよね?」
と切り返すと、児童は首を振った。
「先生のプログラムだと、二つの条件を“同じ瞬間”に満たさないと扇風機は動きません。でもANDを使えば、二つの条件を『何秒以内に満たした場合』と設定できるので、判定が緩くなる。扇風機が回ってほしい時に回る、人に優しいプログラムになります」
児童達が[AND]を使いこなすとは辻教諭も想定外だったそうで、「すごいね!」と、手放しでほめたたえた。

他班のプログラムを参考にし、自分達のプログラムを改善する

他班のプログラムを参考にし、自分達のプログラムを改善する

(6) 他の班のプログラムを見て回り、改善する

「では、他のグループのプログラムを見て回り、自分達のプログラムと比較し、良い所があったら取り入れてみてください」
辻教諭がそう指示すると、児童達はワッと散って他のグループに駆け寄った。ホワイトボードに描かれたプログラムを読み取って、プログラムの意図や工夫点を質問する児童達。他班のプログラムを見て新たなアイデアを思いつき、さっそく自分達のプログラムにも手を加え始めた。先程の[AND]を使ってプログラムへ改善する班も多かった。

児童達の間で特に評価の高かったプログラミングの例を、いくつか挙げてみよう。

  • 気温によって扇風機の風力を自動調整。30℃以上の時は強風、25~30℃の時は弱風に。
  • バッテリー残量によって風力を自動調整。バッテリー残量が少ない場合は、自動で弱風にして、電気を節約する。
  • 気温に関わらず、風力の強弱をボタンで手動切り替えできるように。


どの班も、「人間にとってより便利で、より電気を大切に使うには」というテーマでアイデアを生み出し、その発想を具現化した素晴らしいプログラムを作っていた。

最後に、辻教諭はこう締めくくった。
「電気を効率よく大事に使うために、様々な工夫を凝らすことができましたね。今日の学びを、次の総合の時間で、『理想の家づくり』に活かしましょう」。

記者の目

「さすがは筑波大附属小!」と、うならされる児童達だった。まず驚いたのは、プログラムが意図した通りに動作するか検証し、不具合の原因を突き止め、修正する速さと正確さだ。「ここが不具合の原因じゃない?」「なら、プログラムをこう変えてみては?」とハイテンポで議論が進み、あっという間に修正していった。また、他班のプログラムに刺激を受け、自分達のプログラムに取り入れるのも速かった。一人ひとりの理解度の高さがうかがえた。もう一つ感心したのが、「MESH」だ。初めて見聞きする教具だったが、各種センサーが豊富で、プログラミングもしやすく、理科の授業にフィットしやすいプログラミング・ツールだと感じた。

取材・文:長井 寛/写真:言美 歩

※当記事のすべてのコンテンツ(文・画像等)の無断使用を禁じます。

pagetop