Programming for the Puzzled (MIT OpenCourseWare)


2018年 07月 23日

日本でも、大学の講義がビデオで公開されるようになったとはいうものの、通常行われている講義がそのまま公開されるのではなく、かなり短い特別な講義だけが公開される感じで、とても世界と比較てきるようなオープン性は見られない。

まあ、そんなことを言っても仕方がない、ここは日本だ。
それよりも、世界の大学でどんな講義が公開されているのか、探して勉強したほうが良い。

MITOPENCOURSEWAREでは、MITの実際の講義がそのままビデオでじゃんじゃん公開されている。
現在、2400コースあり、3億人が見たそうだ。
この数字は、MITだけでの数字である。

実際の正規のコース授業がそのまま公開されているようで、形態もいろいろあるようだが、VIDEOが一番気楽でよい。
VIDEOだけではなく、資料、問題、なども用意されていて、とても親切である。

日本の大学だと、あれこれ登録しないと見せてくれないケチな根性のところが多いが、ここは何の登録をしなくても、見せてくれる。
ちゃんと授業を受けて、試験も受けて、サーティフィケイトを貰いたいとかの場合は、登録などが必要みたいだ。

さて、最近、MITでパズルの授業を行っているというのを伝え聞いた。
それで、さっそく調べて見つけたのが、Programming for the Puzzled というコースだ。

レベルは学部生向けで、パズルでアルゴリズムを考えることで、プログラミング能力の基礎を鍛えようという意図らしい。
実際、この授業だけではなく、パズルやゲームを授業に使っている例は簡単に見つかる。

先生は、Srini Devadas教授で、インド人である。
あのIITマドラス校出身で、バークレーで学位を取得し、MITのFull Professorになっている。
ということで、ちょっと英語にインド訛りがあるが、そんなに気にしなくて良い感じだ。
そもそも、MITとかでコンピュータ関係を勉強しようとしたら、インド英語は必須科目だろう。
この講義には、トランスクリプション(発言内容を全部文字にしたもの)が用意されているので、聞き取りにくければ、テキストとして読むこともできる。

講義は全部で11本のビデオになっている。
毎回、色々なパズルを取り上げて、アルゴリズムについて細かく解説し、Pythonのプログラムを示しながら講義は進む。
Pythonのプログラムや、課題の解答プログラムも用意されていて、懇切丁寧だ。

講義の中に、SUDOKUがあるというので、この講義を知ったわけである。
SUDOKUの回は、再帰呼出しが話の中心であった。
最後の方で、再帰呼出しをしないで解くやりかた(普通にルールや手筋に基づく方法)の説明が簡単にされていた。
SUDOKUの問題を作ることには触れていなかった。
まあ、そこまでやると、さすがにMITでも、学部生向けの入門コースとしては無理があるのだろう。

第3回は、Puzzle 3: You Can Read Minds というタイトルで、トランプ手品が題材であった。
手品を1つ身につけたい場合には、ちょっと聴講するとよいだろう。

その他にも、アルゴリズムを考えないといけない、アルゴリズムによって大差がでてしまう例などが取り上げられている。

といっても、どれも基本的なものばかりだ。
パズルに関する高度な内容ではないので、プログラマなら出来て当然と思われるものばかりである。