【情報I:プログラミング】教室脱出シミュレーション
プログラミング教材を学習し, 実生活に即した題材を扱い, 実践的なモデリング・シミュレーション能力を養うことは, 情報Iを指導する教育者としての使命です.
ところが, 情報Iは基本単位数が2であることから, 中々深い部分まで扱えないという実態もあります.
本noteでは, そんなお悩みに応えるべく, 全国どこの教室でも簡単に行える授業案として,シミュレーション分野の事例をご紹介します.
前作では, Google Colabを活用したモデリングを扱いましたので, こちらも合わせてチェックをしていただければと思います.
教室から生徒が脱出にかかるまでの時間をシミュレーションで算出しよう!
【目的】
プログラミングで習得した, Pythonの基本構文や文法を組み合わせて, 最も単純な, 空間や人の移動をモデル化し, 適宜変数や数式を改変して, シミュレーションしようとする態度を醸成する.
【注意】
ここで紹介するGoogle Colaboratoryのノートブックは, 一番シンプルなケースを想定して組んでいます.
取り扱う教室のサイズや生徒の人数や, 最初の配置などは適宜リアリティのあるものを用いてください.
また, 実際の避難訓練では違った指示出しやマニュアルが存在しているかと思いますので, 本noteを授業で活用する際は, あくまで学習目的であることを注意事項としてご紹介ください.
【準備】
1. こちらのGoogle Colaboratoryをドライブへコピーし, 適宜課題として生徒に配りましょう!
2.シミュレーションテンプレート(保管用)をじっくり読み込む.
このノートブックでは, 変数や設定式を改変していただくことで, 実験的にシミュレーションしていただけますが, プログラミングがまだおぼつかない生徒さんがいつでも立ち返れるように, 「シミュレーションテンプレート保管用」を準備しています.
改変する場合は下部の練習用をご利用ください.
プログラムには極力解説をつけていますが, プログラムを理解するだけでも, 教室から安全に脱出するモデルをどう表したか勉強になるはずです.
【シミュレーション】
実際には変数のx軸, y軸が教室と廊下のサイズ感を表しています.
生徒の人数や, 平均的な歩幅, 避難時の近接距離, 出口の位置なども適宜設定しましょう!
このような形で教室から生徒が出口を通って外に出るまでの時間を計測できるようになっています.
どれも簡単なライブラリとメソッドを使ってますので, まずはしっかり慣れていただきたいと思います!
実際に災害時は, "前の人に当たらないように"なんて悠長なことは言ってられないと思いますが, 避難訓練でも「押さない, 走らない」が基本となっていますので, ここは発展させたいルールがある場合のみ考察してください.
その後に, 実際に教室内でルール通りに脱出してみて, それまでの時間を測ってみましょう.
想定の時間通りになっているか, それとも思いの外差分が大きかったか, モデリングを改変する要素をブレインストームしてみると, 子どもたちのやる気もアップするでしょう.
掘り下げるポイントを以下に書いておきます.
机や椅子などの障害物を設けるとどうなるか.
パニック時は必ずしも最短距離を移動するとは限らないが, そういう単純化された動き以外の想定はどうするか.
前の生徒が移動し空いたスペースに, 動いていく移動の最適化を他にどう表現するか.
出口が2個になるとどうなるか.
時間が余った生徒にはこのあたりの問題を考えてもらうことで, 実り多き時間になると思います.
まとめ
最後になります.
このコードは私が作ったもので, 表現が甘かったり実験の形跡が残ったりしている部分があります.
と, 楽しむ気持ちで取り組んでもらえればと思います.
こんなふうにアレンジしました, などありましたらコメントをお寄せください.
田中善将への仕事依頼やSNSフォローはこちら
講演・執筆・コンサルティングのお仕事依頼はこちらまで.
Xはこちら.
教育関係者の皆様は, Facebookでも繋がってください.