土日は大阪で面接授業でした
普段からよく行っているところなので写真はこれだけ
『~入門』って名前の面接授業は多いですよね
私が今学期に登録しただけでも
『数理的ゲーム理論入門』『社会心理学入門』に続き
3個目の面接授業になります
定員20名で登録はもちろん満席
出席したのは18人で男女9人ずつでした
今回が5回目で最後の開催だそうです
1日目
1時間目は最大値を求めるアルゴリズムについて
30枚の数字が書かれたカードが配られ
その中から数字が一番大きなカードを探してみましょう
という実践から始まりました
それをプログラムで書くとどうなるかとか
処理する量がデータ数とどういう関係にあるかなど
基本的な事項についてとても丁寧に解説されました
途中からはちょっと発展形の問題として
数列の部分和の最大値を求めるアルゴリズムを
考えてみましょうというお話になりました
2時間目は部分和の最大値を求めるアルゴリズムについて
1時間目の途中からスタートです
まずは3重ループになっているプログラムが紹介され
その処理にどれくらいの時間がかかるか調べました
続いて2重ループに改良されたものの実行時間を調べ
最後に1重ループに改良されたものを調べました
1重ループのプログラムの解説のところでは
何かうまい方法がありますかと問いかけがあり
私はすぐにそのアルゴリズムがわかりましたが
他に誰も答えられそうになかったので珍しく発表
でも先生は誰も答えられないと思っていたらしく
最初「何言ってんの(笑)」みたいな目で見られました
5回目の面接授業で私が初めて正解を指摘したらしく
少しだけ存在感を出せて良かったです
3時間目は探索アルゴリズムについて
最初にお隣の方とペアになってのゲームをしました
片方が00~99までの100個の数を頭に思い浮かべ
もう片方がYesかNoで答えられる質問をして
何回で数を当てられるかというものです
最初は私が質問をする役
とぼけた方法でやってみようかとも思いましたが
素直に最良の方法(二分探索法)で質問しました
この機会にお隣の方と仲良くなれてよかったです
授業はその後、線形探索法と二分探索法の解説と
その実行時間の比較をしました
4時間目はソートアルゴリズムについて
まず最初に配られたカードを小さいん順に並べる作業
そこからどのようにソートするのが効率的か考えて
マージソートとクイックソートの解説に移りました
私にとって1日目の一番の収穫は
これらのソートの処理回数がO(nlogn)であることを
理解することができた点でしたね
この事実は知っていたけど理屈は知りませんでした
2日目
5時間目は貪欲アルゴリズムについて
仕事の量やその利益を最大にするアルゴリズムや
会議室の利用回数を最大にするアルゴリズムなどを
仲良くなったお隣の方と相談しながら考えました
どうも2日目はひらめきが悪くなかなか答えが出せず
お隣の方とう~んとなっている時間が多かったけど
6時間目はグラフ理論に関わるアルゴリズムについて
全部の家に電線を最短で引く方法や
出発地点から目的地点まで最短で行く方法を
これまたゲームを交えながら楽しく勉強しました
それにしてものことは一度勉強したはずなのに
すっかり忘れてしまっていたのがショックでした
カーナビのアルゴリズムの解説のところは面白く
もっと勉強してみたいなと思って聞いていました
7時間目はバックトラック法のアルゴリズムについて
迷路を解いてみようというところからスタートです
なかなか複雑で目もチカチカするし大変でした
迷路をうまく解く方法はないことが紹介された後
エイトクイーン問題を一般化したゲームもしました
この面接授業ではみんなでゲームをやってみて
いろいろ試行錯誤してみましょうということが多く
かなり工夫されているなと思いました
8時間目は乱数の利用について
酔っ払いが橋を渡れるかというゲームや
モンテカルロ法の定番=円周率を求める実験のほか
前の時間で遊んでみた迷路を乱数を使って作る方法が
説明されたので今度私もプログラムを組んでみます
大阪学習センターでは面接授業の最後の時間に
感想文を書く時間が割り当てられるので
最後の時間はいつも少しだけで終わってしまいます…
感想文を書くのが苦手な私は少しだけ書いて帰りました
今回の面接授業は少人数で先生との距離も近く
なによりお隣の方と仲良くなってたくさんのお話ができて
とても楽しい2日間になりました