事例207

情報Ⅰの「コンピュータとプログラミング」をマイクロビットでやってみた

神奈川県立茅ケ崎西浜高校 鎌田高徳先生

まず、簡単に自己紹介をいたします。神奈川県の教科「情報」で採用されてから12年目になる教員です。

 

文部科学省から出ている高等学校情報科「情報Ⅰ」「情報Ⅱ」の教員研修用教材資料に携わらせていただき、第3章「コンピュータとプログラミング」の部分を担当させていただいた経緯もありますので、今回はマイクロビットを使ったプログラミングの授業の実践についてご紹介したいと思います。

 

 

プログラミングによる問題解決の仕組みをマイクロビットで経験する

今回意識したのは、マイクロビットでただプログラミングをするだけではなく、「どうやったらできるんだろう」という問題を発見させる活動を、授業の中に取り込むということでした。マイクロビットを使ったプログラミングによる問題解決の仕組み、そして問題を発見し、解決していくことを体験する授業を作ってみました。

 

 

「情報I」の教員研修用教材の「第3章コンピュータとプログラミング」の学習内容がこちらです。今回私が焦点を当てたのは以下の3点です。

 

(1)5大装置やハードウェア・ソフトウェアといった『コンピュータの仕組み』。

(2)温度センサーや加速度センサーなどの外部装置との接続。

(3)基本的プログラムの中の『変数』。

中でも、プログラムの初心者には、『変数』の敷居が高いです。今回は特にここを意識して、マイクロビットでどのように仕組みを教えるか、いうことを考えて授業を行いました。

 

※クリックすると拡大します

※クリックすると拡大します

 

今回の内容は、研修用教材ではMU(※1)と、MicroPython (※2)でコードを書いていますが、今回は導入ということもありますので、簡単にできるMakeCode(※3)を使ってみました。

※1 https://codewith.mu/

※2 https://microbit.org/get-started/user-guide/python/

※3 https://www.microsoft.com/ja-jp/makecode

 

 

コンピュータの5大装置をどのように教えるか

今回の授業の流れです。まず、コンピュータの構成要素ですが、皆さんは5大装置をどのように教えているでしょうか。単に座学で教科書に書いてある文言を教えるだけでは、生徒の学習意欲はなかなか高まりませんし、体験的に学べません。

 

確かに、キーボードやディスプレイは目に見えますが、それらがプログラムでボタンを押したらどう反応するかということを体験的に学ばせればよいか、考えてみました。

 

※クリックすると拡大します

 

そこで生徒にマイクロビットを見せ、「ボタンスイッチが入力装置」と説明し、マイクロビットの本体がハードウエアであることを理解させます。

 

スライドの真ん中にあるのがソフトウェア(=プログラム)で、ハードウェアから入力されたデータは、記憶装置から制御装置に送られ、演算装置にてプログラムに沿って処理されて、決められた内容に沿って出力装置にて出力されます。これで5大装置の仕組みが理解できるのではないかと感じています。出力装置としてはLEDが一番簡単で、わかりやすいと思います。

 

 

マイクロビットには、入力装置として明るさセンサや加速度センサー、温度センサーや磁気センサーなどいろいろなセンサーがついています。そういったものでデータを集めさせる体験をして、実際にプログラムを書き換えて、教室内の様々なデータを計測させます。

 

この計測するという活動が大切です。ふつう、プログラムというと先生と同じプログラムを書くと同じ結果しか出ませんが、教室は場所によって微妙に明るさや温度が異なります。実践をやってみて、人によってちょっとデータが違うということが大事なのかなと、授業をやってみて感じています。

 

 

こちらはワークシートの一部です。授業の導入で、実際に自分たちでプログラムを書かせて、結果を書かせることを行いました。

 

ここで大切なのは、最初の授業ですので、とにかくコードを簡潔にすることです。シンプルにすればするほど、デバッグも容易になるのが授業をスムーズに進めるポイントです。

 

※クリックすると拡大します

 

2つ目の事例は、コードを書き換えてデータを集めさせる活動です。データを集めると、結果がそれぞれ微妙に違うので、生徒たちは比較し、なぜデータに違いが出るのかに気づきます。そういった経験をさせることが大切です。何より、自分が書いたプログラムを実行してみることで、人と出力結果が変わるということを体験させることが大事であると思います。自分だけのデータとなるからです。

 

 

「変数を使わないとできない課題」を経験することで変数の意味や仕組みを考える

3つ目の事例が、変数をどう教えるか、ということです。変数は、プログラミングの初心者が陥りがちなポイントで、大きな障害となる部分です。

 

ここを理解させるためには、最初に変数を使わないとできない課題を一緒に考えるということが大切であると思います。

 

 

このために、2時間目の授業では、Bボタンをポチポチと押したら、カウントアップするプログラムにチャレンジしてみました。Bボタンを押すと数字を表示するということは前回の授業でやっているので、まずボタンBを押したら0を表示することはできます。では、またボタンBを押したら1が出るようにしてくださいというと、生徒たちは先ほどのプログラムの「0」を「1」に書き換えるのですが、毎回書き換えるのは面倒だということがわかります。

 

 

ここで、ただ「面倒だ」というだけでなく、「変数」の重要性に気付かせることが重要です。その上で、変数のコードを使ってカウントアップのプログラムを作らせます。

 

そして、その次に今度は「Aボタンを押したらカウントダウンするプログラムを作りなさい」ということで考えさせることが大切です。ここは半加算器、全加算器の概念ですので、カウントダウンのためにはマイナス1だけ増やすしかありません。生徒は「先生、『引く』がないじゃん!」と聞いてきますが、ここが指導のポイントで、論理回路の話につなげられると思います。

 

※クリックすると拡大します

 

マイクロビットの計測で外部装置との接続を体験する

最後に変数の概念を学んだ上で外部装置との接続とし、IoTにつなげるという授業をやってみました。「情報Ⅰ」の教員研修用教材には、センサーやアクチュエータ、コンバータなどの外部装置との接続を行うとされていますが、IoTにつなげる事例はなかなか少ないです。

 

さらに、教員研修用教材でも書かれているように、生活に役立つ装置などを構想することを通して、生活における諸問題の解決につなげたいと考えました。

 

※クリックすると拡大します

 

そこで簡単にIoTでデータを集めさせる場面を体験させよう、ということで、マイクロビットで温度や明るさを集めるプログラムを書いて、教室の外や廊下に配置しました。本当はIoTでビッグデータを集めさせて、AIで解析するのですが、今回の授業では、データを集める体験に絞って行いました。

 

 

教室や廊下、保冷剤を入れたクーラーボックスなど、いたるところにマイクロビットを置いて、席を立たないで計測するにはどうしたらよいかということを考えさせました。

 

 

これについては、マイクロビットにはBluetoothの機能があることを事前に学習しておいたので、それを使って送信側(こちらのプログラムは事前に先生の方で作りました)と受信側のプログラムを作ることで、こうやってデータを集めることを体験させました。

 

 

「集めたデータをどう使うか」を考えることが問題解決への糸口に

大事なことは、ただデータを集めさせて終わりではなく、このようにIoTでデータを集めることで、学校内の問題の解決のためにどのように応用できるかということを考えさせることです。

 

これはまだ事例としてはまとまっていないのですが、生徒からはけっこう面白い意見が出てきました。

例えば、学校の駐輪場にセンサーを置いておけば、誰が登校したか、誰がもう帰ってしまったかがわかるというアイデアがでました。あるいは、学校内に顔の表情のセンサーを付けて、誰が今上機嫌かを数値化したら面白いんじゃないか、というアイデアもありました。先生がホームルームに来る前に笑顔の値が高かったら、ちょっとリラックスして話を聞けるよね、といった話をしていたので、そういったアイデアを引き出せるのではないかと思います。

 

※クリックすると拡大します

今回、マイクロビットでプログラミングの授業をやってみて気づいたことが2点ありました。

 

1つ目は、「コンピュータとプログラミング」で計測させる授業をやってみてはどうかということです。

プログラムを書いて、実行したとき、皆が同じ結果になるものだと、ちょっと生徒たちのモチベーションが上がらないと思うのですね。計測して、自分と他人が多少違うことがあるので、プログラムを書いた実感が出て来る、そこが非常に重要ではないかと思いました。

 


もう一つは、プログラムの実行結果が同じになってもよいのですが、皆が実行したプログラムの結果をいったん集約して、統計やデータの活用につなげていく授業ができるのではないかと思いました。

 

教室で生徒を全員集めて一斉にプログラムを実行する意味は、ここにあるのではないかと感じています。今回、みんなのデータを集まる活動をして、授業がすごく盛り上がりました。楽しい授業とは、みんなでやる授業だと改めて実感しました。

 

最後に、今回の授業で作成したMakecodeのプログラムのリンクを置いておきますので、こちらもぜひ見ていただければと思います。私たち自身も、プログラミングの事例のデータをみんなで集めて、皆で情報Ⅰの授業ができればと思います。

 

神奈川県高等学校教科研究会情報部会情報科実践事例報告会2021オンライン オンデマンド発表より