2010-12-08

Basic Design Patterns on Racket



今日でRacket(Scheme)授業の最後のLabが終了。最後のLabの内容は、基本のデザインパターンの復習。具体的には、「基礎のfunctionがしっかり書けていれば、例示されたComposing functionsは動くはずだよね?」という内容。なので、Composing functionsが正しく動かせるように、テストもコメントも含めてbasic functionsを書いていく作業を3時間弱ひたすらやってました。

最終的な成果はこんな感じです。そして、実際のソースコードはコチラ(Plain textではないので、開くにはDr. RacketなどのIDEが必要)。MapやFilterの基礎的な振る舞いが分かるかと思います。

参考になれば幸い。

2010-12-03

How to Select a Course




留学センターから近況報告書の期限が迫っているとの連絡があり、今つらつらと近況報告書を書いています。

この報告書の中には、自由記入欄なる箇所があって、そこで大学の授業選択の仕方について書いていたら、少しエッセイっぽくなってしまいました。そこそこ一般的なことをせっかく書いたのに、留学センターの人達と未来の交換留学生達にしか読まれないと思うと癪だったので、その一部をブログの方にも転載します。何かの参考になれば幸い。

----- 以下、転載 -----

Illinois州の中では、Knox CollegeとMonmouth Collegeでリベラルアーツカレッジの雌雄を競っているらしいが、いずれにせよトップランクの大学ではないので注意すべき。もし留学する理由が勉学に励むことであれば、下記に記すTIPS(授業、学生、生活)を考慮しておくと役に立つと思う。

まず、授業の質が教授によって異なることを留意する必要がある。上述の「履修科目と授業について」の説明欄でも述べているとおり、全ての教授が熱心に授業に取り組んでいるわけではない。また、一回の交換留学では、たかだか2学期分の講義(約8講義)しか履修できない。数少ない履修授業が、質の低い教授による質の低い授業だったのでは、実のある留学生活になるわけがない。そのため、留学先で意義のある授業を取るためには、質の高い教授を自分で見定める必要がある。

教授を見定める方法として、シラバス、ウェブ、対談の3つの方法がある。1つはシラバスから判断することである。熱心な教授であるほど、シラバスに授業方針、授業内容、今後出される全ての課題・プロジェクトなどの情報を詳細に記す傾向がある。シラバスの内容が手抜きであったり、今後どのように授業が進められるかイメージしづらいシラバスであったりした場合は、教授および授業の質を疑ったほうが良い。

一方で、シラバスだけでなく、Publicationやウェブ上の情報も、教授の質を判断する良い材料となる。理工学系の教授であれば、Microsoft Academic Searchが役に立つ。教授の名前を入力することで、その教授が過去に発表した論文と、そのCitationの数が分かる。もし教授の論文のCitationの数が少なかった場合は、少なくともトップレベルの教育は受けていないと考えてよい。また、RateMyProfessorというサイトで、各大学の教授を任意の学生が評価しているので、学生の視点から見た教授像を把握することができる。今期の教授について言えば、事実にかなり即している情報が載っていたので、全く信用できない情報ではないと思う。また、大学のHPから教授のページに探したりGoogleで検索したりして、その教授の詳細な経歴(学歴と職歴)を調べても良い。いずれの方法でも、教授の素性が全く掴めなかった場合、教授の質を強く疑ったほうが良い。(言い換えれば、全く話題に上がらないほど実績の無い、名ばかりの教授である可能性が高い。)

ここまでの全てのプロセスを経ると、だいぶ情報が集まっていると思うが、しかし、意思決定に必要な最後の判断材料は、自分と教授とのフィーリングである。どんな教授でも、メールで問い合わせれば、大抵の場合、授業の内容について対談の場を設けてくれる。それまでに授業に関する情報が集め終わっていることに越したことは無いが、そうでなくとも、その教授による授業を学びたいかどうか、個人的な価値観で判断することは可能なはずである。例えば、授業に関する内容のOpen-ended Questionや、履修を考えている動機を投げかけ、教授のスタンスや主張の立て方を見ることで、その教授の能力を知ることができる。そして、その教授の能力や話し方を観察し、自分自身が納得できるのであれば、その教授の授業を是非履修するべきだろう。

個人的な仮説だが、トップレベルの大学から離れれば離れるほど、その大学内にいる優秀な教授の割合が少なくなっているのではないかと思う。しかし、トップレベルの大学であろうとなかろうと、授業はたった1人の教授によって行われる。したがって、教授が十分に優秀であれば、大学によらず、十分に質の良い授業を履修できるはずだ。例えば、Vrije Universiteit Amsterdamは世界中で有名な大学とは言えないが、しかし、その大学にいるAndrew S. Tanenbaum教授の教え子達は、コンピュータサイエンスの分野で十分な成果を出している。せっかくの留学の機会を、少なくとも自分自身が納得のできる形で終わらせたいのであれば、熟慮を重ねた授業選択が不可欠ではないかと思う。

(以下は、留学先の大学における具体的な内容なので省略。)

----- ここまで -----

2010-12-01

Scheme Invader

一日遅れで、こちらも12月1日になりました。あと半月ばかりで夢の日本食にありつけるかと思うと、涙が止まりません。

Twitterでちょろっと叫んだような気がしますが、今日を持ってRacket (Scheme)の授業のFinal Projectが終わりました。作った作品は簡単なSpace Invaderです。Schemeで作ったのでタイトルはScheme Invaderにしました。で、せっかく作ったので、前回のVirtual ZooのようにYouTubeにアップロードしてみました。興味があれば是非見てください。




また、例によってソースコード一式はGitHubにアップされてます。ただ、Racketファイルはplain textではないので、DrRacketなどのソフトウェアで開かないとソースコードは見れないので注意してください。