表計算ソフトウェアでシミュレーション(10)待ち行列のシミュレーション⑦どのように授業をしたか

モデル化とシミュレーション

こんにちは。引き続き、表計算ソフトウェアでシミュレーションの話題を取り上げます。

今月は待ち行列のシミュレーションをシリーズとして続けてきました。

この内容を授業でどのように扱っているかについて、今回はまとめます。

モデル化とシミュレーションの目的

モデル化とシミュレーションの授業の目的を整理しておきます。

1個目の目的としては、1つ1つの計算手順を組み立てて、値を求めるためのアルゴリズムを考えることです。

表計算ソフトウェアで数式を作っているので、あまりプログラミングという感じではありません。

しかし、要素間の関係を数式モデルで表して順に値を求めることはプログラミングの中では頻繁に行われています。

プリミティブな数式を組み合わせて、全体としてまとまったものを作り上げるのは、十分プログラミングになると考えています。

2個目の目的は、実際にシミュレーションを行うことによって、シミュレーションの有用性を理解することです。

頭の中や紙の上ではどのようになるかがわからないことが、コンピュータを使うことによって予想したり想像したりできるようになることです。

これをうまい方法で視覚化することができれば、より理解が深まることでしょう。

3個目の目的は、シミュレーションを別の場面に適用することにより、身の回りや社会的な問題を解決しようとする姿勢を身につけることです。

コンピュータを使って考えたことが、コンピュータ内部だけのことではなく、身の周りや社会とつながっていることを経験ができると思います。

モデル化とシミュレーションの考え方を使って、問題の発見や解決をする経験をもつことで、より積極的にさまざまな事象を考える際にコンピュータを使おうとしてほしいなと思っています。

一緒に作ってみる

1個目の目的に近づくためには、条件を決めてモデルを作成しシミュレーションすることをひとつひとつ実際にやっていることが必要だと思います。

待ち行列のシミュレーションは、要素間の組み合わせはそれなりに複雑ですが、ひとつひとつの数式は難しくありません。

手順を追いながら作っていくには、手ごろな題材だと思います。

私の授業では、窓口が1個の場合について、全くの空白の表から待ち時間を求める表について、数式モデルができる理由とあわせて説明を聞きながら、生徒は待ち行列を求める表を作っていきます。

配布してシミュレーション結果を見てみる

すべて自分で作る経験をできればよいのですが、時間の制約があるので、授業ですべてを説明するのは無理です。

窓口が増えた場合、その手があることを思いつけば、どのようになるかは気になることです。

そこで、 窓口が2個・3個の場合について、私の方で作成しておき、生徒はそれを見ながらどのような結果になるかを見ています。

窓口の数の違いによる待ち時間の変化を、結果を比較しながら見て、その有用性を経験します。

また、視覚化する部分も数式は1つで済むのですが、関数が入れ子になっていて複雑なので、一緒に配布して見させています。

再計算により、列の長さが目まぐるしく変化する様子を見ながら、このツールを楽しそうなものと感じてもらっていたようです。

応用できる例を考えさせてみる

3個目の目的を考られるよう、実際にこのモデル化・シミュレーションが適用できる問題をグループ形式で生徒たちが発見して、あてはめてみています。

トイレの列の長さ・自動改札で人が通過していく様子など、様々なことを考えています。

自動改札では、自動改札機が3台よりも多いことを考慮して、窓口が3個の数式を見ながら、さらに多い6台の場合の数式にアレンジしたグループもありました。

また、テーマパークでの待ち行列に着目したグループもありました。

このグループでは、テーマパークには1人で来る人は少なく、何人かで一緒に乗り物に乗るような行列を考えていました。

完全に自力では作り切れませんでしたが、多少の手助けをもらってシミュレーションしていました。

コンピュータを使って考えようとしたことをきっかけにして、教えられた知識や技術の範囲を超えていく姿は嬉しく思いました。

(生徒が考えたアレンジバージョンはいつか取り上げようと思います)

まとめ

授業の展開は、

① 窓口1個をまっさらから作ってみる

② 窓口2個・3個の場合と視覚化については、配布されたファイルを動かしてみる

③ ①・②を適用できる例を考えてみる

といった流れで授業をしています。

それにより、さらに先に進んでいく生徒もある程度いるといった現状です。

今回はこれでおしまいにします。それではまた。

Posted by 春日井 優