事例226
感染シミュレーションとデータ処理
千葉県立船橋啓明高校 谷川佳隆先生
まず、こちらの画面をご覧ください。これは感染症拡散のシミュレーションです。
感染シミュレーションと体験授業
私は今年転勤しましたが、前任校では毎年、秋の学校説明会で体験授業を行って来ました。
毎年、情報ではScratchを題材にして体験授業を行っていましたが、久々の体験授業で、何を題材にしようかと考えていたところ、「子供の科学」(誠文堂新光社)でScratchを使った感染症拡散のシミュレーションが紹介されていたので、これを題材にしようと考えました。シミュレーションプログラムは「子供の科学」のものを利用しました。
体験授業では、まず何もない画面にボールを表示して、ボールのクローンを作り、ボールをランダムに動かします。
次にピンクのボールを出して、自由に動かします。そして、ピンクのボールと水色のボールがぶつかった時に水色のボールがピンクになるというプログラムにします。
その後、「こどもの科学」のシミュレーションプログラムを配って、全てのボールの色が変わるまでの経過時間が毎回違うことを確認したり、人数や速度を変えてみたりして自由に使ってみよう、ということにして時間を取ります。
最後に、「高校では、これをもとに毎回違う感染時間をデータとして取り、このデータを処理していきます」と言うことを話して、体験授業はここまでで終わりにしました。
感染シミュレーションの改良とデータの格納
ここからは実際に高校の授業で行った授業です。
ここでは、人数(変数)が20となっています。まず生徒にこれを見せて、これは何をしているかということを理解させて、プログラムを動かし、ボールの色が全て変わるまでの経過時間を測ります。
1回目と2回目で経過時間が違うことや、隣の生徒とも違うことを確認します。そして、経過時間のデータを取って処理をしていくことを予告します。
シミュレーション結果が毎回違うことを確認して、毎回経過時間のデータを記録するのは効率が悪そうだ、ということがわかります。そこで、リストを活用して、データを格納できるようにプログラムを改良します。
その後、今度は人数を40に揃えてシミュレーションを20回実施します。20回できた生徒には、人数を40から20に変更したらどうなるかを質問します。
様子を見て、皆が大体揃ったら、人数を40から20へ変更してシミュレーションを20回行って、データを取ります。早く終わった何人かの生徒に、人数10で10回したらどうなるか、ということを聞いてみます。最後に人数を20から10に変更して、またシミュレーションを20回実施します。こうして生徒各自にはオリジナルのデータがリストに格納されていきます。
シミュレーションを改良した画面は、このようになります。感染時間をtimeというリストの中に格納しています。経過時間のデータは1000倍してミリ秒表示にして、小数のない値にしておきます。なぜ小数ではない値にするかについてはここでは触れませんが、表計算ソフトは小数の計算が苦手であることを、この後の授業で触れていきます。
※クリックすると拡大します。
データ処理をしてみる
次に先ほどリストへ入れた20個のデータをExcelのシートに入力します。Excelは平均、中央値、四分位数については自動で表示するようにしてあります。人数(変数)が40の場合、20の場合、10の場合の経過時間について、3通りのデータを入れて、箱ひげ図を作ります。生徒によってデータが違うので、当然この結果も変わってきます。
※クリックすると拡大します。
※クリックすると拡大します。
生徒のふりかえり
シミュレーションの結果と箱ひげ図を作ったことから気づいた点を2つ、GoogleFormsに入力させます。
次の時間に、入力結果をテキストマイニングしたものをクラスで共有して、振り返りとしました。
こちらは、全7クラスの結果をテキストマイニングしたものです。「感染」「人数」という言葉がたくさん出てくるのは当然ですが、「散らばる」「増える」「減る」とか、「大きい」「少ない」といったことも出てきます。
「中央値」や「範囲」といったことを書いている生徒もいます。「外れ値」については、シミュレーションの結果外れ値が出てくる生徒と出てこない生徒がいたようです。
シミュレーションでデータを取り、結果から何が言えるかを考察する
この授業で学んだ内容としては、リストの活用、平均値・四分位数・外れ値と箱ひげ図の関係の理解、シミュレーション(今回は人数制限)があります。
今回は簡易的なシミュレーションですが、これを行ったことで、データを取って、その結果からどのようなことが言えるか、ということはざっくりとわかったかと思います。
このシミュレーションの授業の少し前に、新型コロナウイルス感染症対策分科会の尾身会長が「人数制限は必要だ」と発言していましたので、人数制限が実際に有用であることが、この結果からわかりました。
これらのことから、Scratchを利用したことで、感染シミュレーションを短時間で視覚的に実施できました。
また、その結果を予想したり、オリジナルのデータを得たりする活動が容易にできました。
毎回異なるシミュレーション結果を見ながらデータを格納し、人数(変数)の違いによる経過時間データを箱ひげ図にすることで、人数による比較を考察しやすくなることが実感できました。
今回は、時間の関係であまりできませんでしたが、皆のデータを共有して、大量のデータをもとにグラフを作成したり、分散について踏み込んで考えたりさせたりすることができたらと良かったと思いました。
各人数へのシミュレーション回数を20回ではなく、もっと増やしてもよかったとか、人数は変えずに速度を変えてみたらどうだったか、ということを感じています。
Scratchで作成された感染シミュレーションには、もっと本格的なものや踏み込んだものもあります。箱ひげ図はMicrosoft Excel2016から簡単にできるようになりました。Googleでは、箱ひげ図の作成は「ローソク足」というものからやっていきますが、少しコツが必要になります。
[参考サイト]
・『子供の科学2020年7月号』
「はじめようジブン専用パソコン 第40回 感染症拡散シミュレーション」
・Bell Curve 統計WEB 「Excelによる箱ひげ図の作り方(統計グラフ編)」
・Googleスプレッドシートで箱ひげ図(box plot)を作成する方法
第15回全国高等学校情報教育研究会全国大会(オンライン大会) 動画発表より