プログラミング教育入門(3/3)


小学校でのプログラミング教育はコーディング(プログラムを作ること)を目的としていません.したがって,プログラムを作ることはせず,あらかじめ作っておいたプログラムを授業に利用するという方法もとることができます.ここでは,そのような例を紹介します.



2020年4月ごろ,新型コロナウイルス感染症の感染が拡大し,社会に大きな影響を与えました.このころ,政府から「感染の拡大を止めるには,人との接触を8割削減する必要がある」との発表がありました.インターネットが発達し,誰もが情報を発信できる時代となりましたが,その一方でフェイクニュースも増加しており,どんな情報も本当の情報かどうか判断できる能力が必要になっていると感じます.科学者は基本的な姿勢として,疑っても疑っても疑いようがない真実こそが真理であるという意識があり,徹底的に検証して正しいと判断するということを日常的にしています.このような考え方はクリティカルシンキングと呼ばれ,これからの社会を生き抜く上て必要なスキルだと言われています.
さて,「感染の拡大を止めるには,人との接触を8割削減する必要がある」は本当でしょうか.こういうことに疑問をもっても,これまでは真偽を確かめる手段がありませんでした.しかし,Scratchというツールを手に入れて,小学生でもこういった疑問の答えを探ることができるようになりました.Scratchでのシミュレーションをみてください.非感染者が感染者に接触したとき必ず感染する場合は感染率100%のシミュレーションで,非感染者が感染者に接触したときに20%の確率で感染する(接触を8割削減したことを模倣した)場合のシミュレーションが感染率20%のシミュレーションです.何度か実行して違いを確認してください.
感染率100%:https://scratch.mit.edu/projects/385134176/
感染率20%:https://scratch.mit.edu/projects/385455461/



当初,クリティカルシンキングについて考えるテーマとして,感染拡大のシミュレーションを使った授業を検討していて,C分類「教育課程内で各教科等とは別に実施するもの」での授業を想定していました.しかし,このシミュレーションの話を様々な教員研修で話していたところ,秋田市立四ツ小屋小学校の小野哲先生から,プログラムを改良して保健の「病気の予防」の単元で利用したいとの申し出があり,プログラムを改良しました.これによりB分類「学習指導要領に例示されていないが,学習指導要領に示される各教科等の内容を指導する中で実施するもの」の教材にすることができました.
改良点したのはマスクをした猫を登場させたことで,詳しくは次のスライドで説明します.



スライドの右の図のように,マスクの有無,病気に感染しているかどうかで全部で4種類の猫を登場させます.病気の猫の色は同じ青色にしてもよかったのですが,パッと見たときに区別がつきやすいように少し違う青色にしてあります.
プログラム:https://scratch.mit.edu/projects/556493503/
緑の旗を押した後,「s」キーを押すとシミュレーションがスタートします.20秒のシミュレーションのあと,各状態の猫が何匹いるか結果が表示されます.



猫はそれぞれ自由に動き回ります.端に着いたら跳ね返っていますね.よく考えると,お掃除ロボットの動きと同じじゃないでしょうか.感染して1秒経つと病気が治る設定にしています.感染率はウェブの情報をもとにスライドの表の通りとしました.
出典:https://news.yahoo.co.jp/byline/kutsunasatoshi/20201010-00202347/



このプログラムの背景はただの真っ白な背景ですが,背景にプログラムが設置されています.右下の白い「背景」をクリックして,左上の「コード」のタブをクリックすると背景に設置されているプログラムをみることができます.スライドの左側にあるプログラムと同じ部分があると思います.ここで,シミュレーション開始時の4種の猫の人数を設定することができます.
設定が終わった後は「s」キーを押すことでシミュレーションが開始します.
20秒経つと上部に4種の猫の人数が表示されますので,病気の猫の合計をメモしましょう.



スライドの表の通り,5種の条件でシミュレーションを実施してください.結果はひとまずどこかにメモしておいてください.



実験結果をGoogleスプレッドシートで集計しましょう.
スプレッドシート:https://docs.google.com/spreadsheets/d/156IotW4v8yFBmZaiummO37z279V_FjrfezfDkv4hRto/edit?usp=sharing
スプレッドシートを開くとスライドの左側のような表が現れます.実験者1から100までの欄は書き込みが可能になっていますので,空いているところに実験データを入力してください.
以前は,データの共有をしたいときには,一人一人実験結果を話してもらって黒板に書いていくとうった作業が必要でしたが,一人一台の端末がある今,スプレッドシートを使えば瞬間的にデータを共有できます.



プログラミングを授業に取り入れるとき,子どもたちに利用するプログラムすべてを作らせる必要がありません.マスクの有効性を調べるプログラムのように,プログラムの一部を書き換えさせるという方法もあります.
データの共有は一人一台端末が配布されたため,それを活用するととても楽です.
プログラミングを授業に取り入れる余地はまだまだたくさんあると思います.小学校の先生方と協力してB分類の教材を開発できるとうれしく思います.



プログラミング教育入門,いかがでしたでしょうか.最後に全体をまとめて終わりとしたいと思います.



プログラミング教育入門を受講して,プログラミング経験やプログラミング教育に対する不安について心境の変化はございましたでしょうか.改めて,アンケートにお答えください.なお,お名前またはハンドルネームは開始時と同じものを入力していただけると助かります.
アンケートフォーム:https://forms.gle/SjBDbnGLMd7BWgvv5
この講座を受ける前と受けた後でどう変化したでしょうか.振り返ることでメタ認知を促すことができると思っています.



本講座で紹介したプログラミング教育のポイントをまとめます.

  1. 必ずプログラムを作る必要はなく,プログラムを利用するだけという方法もある
  2. プログラムを作らせる場合にも,すべてを作らせる必要はなく,大事な部分だけ作らせるという方法もある
  3. プログラミングをさせる場合には,あらかじめプログラムに必要なブロックを出させて,その組み合わせだけを考えさせるという方法もある
  4. いろいろなレベルを用意しておくと個に応じた学習に対応することができる


本講座が受講者の皆様にとって有益なものであればうれしく思います.
ここで紹介したプログラム以外にも学校で利用できるプログラミング教育のアイデアが多数ありますので,ご興味ございましたら研究会までご連絡いただければと思います.

秋田県子どもプログラミング教育研究会
https://prog.akita-pu.ac.jp/