Neunomizuの日記

俺だけが俺だけじゃない

宿題はやるな

tags: 情報

僕/私はどう評価されているの?

僕/私はどう評価されているのだろうか?

人間社会に生きていれば当たり前に感じることですよね?

容姿,能力,家柄,学歴等々,人によって人をどこから,どのように評価するか千差万別です

それはプログラミング言語とて同様!

プログラミング言語も,プログラミング言語によって,式を評価をする順番は違います

自分がどう評価されているか知る前に,少し落ち着いてプログラミング言語において式がどのように評価されるかを見てみましょう

評価の区分は夏休みの過ごし方に似ている

評価の仕方は大きく分けて2つです

  1. Applicative(eager)-order
  2. Normal(lazy)-order

前者(先行評価)は式を先に評価し,後者(遅延評価)は式が必要になるまで評価しません

要するに,夏休みが始まる前に宿題を終える人と,夏休み最終日まで宿題を溜める人です

溜める方がNormalなことから分かるように,人間は宿題を溜めるものだということです(いやlazyなのか?)

例えば,以下のようなSchemeのコードがあるとします

(define (p) (p)) ;; 無限に再帰する関数
(define (test x y)
    (if (= x 0) ;; xが0なら0を,それ以外はyを返す
    0
    y))
(test 0 (p))

Applicative(eager)-order

もしこれが宿題を終わらせるタイプなら,式は以下のように評価され永遠に終わりません

(test 0 (p)) ;; ここがスタート
(test 0 (p)) ;; (p)を評価して(p)になる
(test 0 (p)) ;; (p)を評価して(p)
...

Normal(lazy)-order

溜めるタイプの場合は次のように(if (= x 0))が評価されると,関数が0を返し終わります

(test 0 (p)) ;; ここがスタート
0 ;; 0を出力して終了

ちなみに

どっちが早いかどうかは時と場合によります

Schemeapplicative-orderなので,式を先に評価してます(gaucheracketなど自分の処理系で試してみるとわかります)

そのため,この関数は無限に終わりません

ということで,宿題を終わらせるととんでもないことになるということがわかりました(謎論理)

宿題は(直前まで)やるな」ということが今回の教訓です

追記

前回書いたときは寝ぼけていたので書こうと思っていることと反対のことを書いていました

寝るべし」という教訓も得られました(適当)

知識欲旺盛な人へ

米国(短期)留学週記~初週~

tags: 米国(短期)留学週記

多方面に迷惑をかけてStanfordで短期留学しています.その記録(生き恥)

授業が始まるまで

日本時間金曜日に出発して現地時間金曜日に到着しました

隣にいた日系イギリス人が同じプログラムに参加をしていて,ルー大柴語(正確には日本語で話すターンと英語で話すターンがあった)を話しながら米国に到着.VISAなど心配でしたが特に問題はなかったです

入国審査のときにトイレをめっちゃ我慢していて,"How are you?"と審査官に聞かれたときにトイレ行きたいと言ったら速攻で審査が終わりました.サンキュー

近くのホテルに泊まったのですが,最初はお金がなくて"Tinder"1で泊めてくれる人を探そうとしていました 結局さっきのイギリス人と同じホテルに泊まりました(治安が悪いらしいのでやめて正解でした)

CaliforniaはUberの世界っぽく,基本的にはUberでこの日は移動していました(いやLyftの世界?)

翌朝,土曜日にチェックインをして大学の寮に入りました.怒涛のオリエンテーションがあり,全く疲れが取れない... 寮に他にも日本人がいるとわかり,知り合いの知り合いだったらしく世界は狭いなと

日曜日は近所のウォールマートで日用雑貨を買っていました.キャンパスが広いので自転車を買おうと思ったのですが(一応キャンパスでも借りられますがこっちの方が安いらしい)お金がなかったのを忘れていました...

結局プロテインを大量に買いました,.日本に帰ったらマッチョになろうと決心しました

月曜日

この日から授業が始まりました

大学が広すぎて普通に遅刻しました(夜更かしをしましたからです)

授業後は図書館でダラダラしていました.キャンパス内での時間がすごくゆったりしていて良いです(と思っていたのはこの日くらいまで)

その後

最初は「アルゴリズム」と「機械学習」と「コンピュータシステム」と「ウェブ」に関する授業を取ろうと思っていました(全部で17 units)

しかし,よくよく周りの東大生に話を聞くと12 units以上必要なのはfull-timeの生徒だけで,東大生は8 unitsでよかったらしいです(道理で課題が重すぎるわけだ...)

日本からの課題も重く,最終的に「アルゴリズム」と「離散数学」の授業を取ることにしました

EEICには離散数学の授業はないのでちょうどいいかもしれないですね?(内容的にはちょくちょく触れてはいるけどガッツリはやらない)

授業に関して

1周間しかまだおらず,中間試験や期末試験なども終わっていないのですが今の所感じたところを述べていこうかなと

スライド

Stanfordの授業はおそらく授業ごとにスライドが予め作られていて,毎年それがマイナーチェンジされているようです

日本だと授業が同じでも教授ごとにスライドが違いますが,こっちは授業ごとに講師は変わってもスライドはいつも毎年同じっぽいです(もしかしたら院生が付いている教授のスライドを使っているだけ?)

これは結構理に適っているなと思っていて,大手の予備校,学習塾などもこの制度を導入していますし,additionalな部分は教授の裁量に任せ,テストに出すcoreな部分はスライドで統一するというスタイルは教授が変わっても授業の質が落ちにくく,大学院生などがしてもあまり授業のレベルは変わらないので良いです(これはスライドがよく練られている場合の話ですが)

後,日本の授業は非常に内容が簡潔にまとめられている場合が多いように感じますが,こちらの授業は行間がしっかり詰まっているように感じわかりやすいです

授業風景と質問

僕が受けているのがComputer Scienceの授業だからか知りませんが,一般に言われるようなdiscussionが頻繁行われる授業ではないです

むしろ普通にスライドを読んでいる感じです

ただ,生徒が質問をする(もちろん「自分はこれ知っているんだぜ?」みたいな質問もあります笑)ことが多いので授業のライブ感みたいなのはあります

そのため,授業に出るのも面白いです(ただのスライド読み上げだと家で読んでも変わらないので)

講師の方も質問のしやすい雰囲気を作ったり,どんな質問も丁寧に答えていらっしゃるので学生側も質問がしやすくてよいと思いました

また,Piazzaというサイトを使って,授業後に質問を匿名,実名を選択して行えます.Office Hoursも充実していますが,質問をする環境というのを大学側が非常に整えてくれているのはありがたいです

日本の場合,質問がしたいなぁと思っても授業後は列ができて次の授業が始まってしまったり,専用のフォーラムがなく先生も質問を積極的に受け入れる姿勢が見られない(もちろん生徒である僕らも積極的にする必要がありますが)のでこれはちょっと見習ってほしいなぁと思います

ちなみに,航空学科から来ていた人曰く

「航空の授業は最前列にいる人しかわかっていないが,最前列にいる人にしか教授が質問をしないのでわかった前提で話が進む」

らしいです(n=1)

課題

課題は多いです

EEICの課題は「簡単なのがたくさん出る」or「重いのがいくつか出る」という印象ですが,こちらの課題は「簡単なものからそこそこなのまでがたくさん出る」という感じです(初週でこれなのでこれからどんどん難しくなる??)

嫌いな電気系じゃないので

日本の課題と合わせてめっちゃメンヘラになっていますが,単体なら別に3,4科目あってもなんとかなる気がしますね(というかEEICの課題が忙しい時期と初週が被ったからで基本的には余裕がありそう)

全般

東大も授業サイト,ITC-LMS,Utasとサイトがばらばらで分かりにくいですが,こっちは授業サイトはすべてhttps://web.stanford.edu/class/にまとまっているのでそこはありがたいです.

ただ,履修はAxessという別のサイトで行ったり,質問はPiazzaだったりしてそこらへんどうにか統合できないのか...と思ってしまいます(授業によってはGradescopeというサイトも使わさせられる...)

ここらへんの煩雑さは世界共通なんでしょうかね〜どうにかして〜〜

授業はvideoで撮ってあり,remoteでも受講できるというのはかなり良いですね

これは日本でも導入してほしいと思いました

授業サイトの"Overview"というページが非常に便利で,毎授業のスライドがまとめられていたり,教科書の読むページが指定されていたり,配布資料が載っていたり...端的に言って神

金をかけるとこういうのは実現できるんでしょうね〜〜

環境

いたるところに附属(?)の食堂があります

僕がした契約では週14食で,毎食バイキングです

時間が決まっており,毎日絶起をしている僕は朝食を食べられない()ので,昼と夕がデフォです

量は食えますが,味はそこまで期待しない方がいいかもしれません

たくさん食べられるので満足としておきます

夜中に「foooofoooo」言っている住民がいます

foooofoooo住民みたいな人たちは結構盛んみたいです.部屋は遮音性能0なので「インド人のあの子がオーストラリア人の彼と...」みたいな噂がすぐに流れます.ただ,幸い僕自身はそういうのに遭遇したことはないです

ちなみに先日寮でコンドームを配られていました

部屋には本棚と勉強机とベッド以外に何もないので広く感じます

ベッドは2段ベッドの1段目がないみたいな感じになっているので寝るとき不安です.下には旅行バッグを置いています

ジムがいたるところにあり,筋トレがしやすいです

周り

休日は自転車か自動車があればマウンテンビューまで30分以内に着きます(by Google先生)

ただ,僕は自転車がないのでどこにも行けないです😠

1ヶ月分だけどこかのタイミングで借りて,外の世界を見てみたいです2

まとめ

食事・筋トレ・勉強をするくらいしかやることが基本的にないので圧倒的成長ができそうです

ここに来て思ったこと

  • とにかく,来てしまったからには帰れないので頑張らないとなぁという感じです...タフになります!!
  • EEICのアルゴリズムの課題が本当にできなくて萎えまくっているので,どうにかして挽回したい(する場所がない)
  • 人に心を開くのが苦手過ぎるなぁと感じる中で,そんな自分に優しくしてくれる日本の友人にマジで感謝って感じですわぁ(感情と言動が一致せずにツンデレでごめんね😢)
  • 学科の先生に多大な迷惑をかけているので勉強を頑張りたいなぁ...(こんなの書いている場合じゃないだろお前)
  • 学費を出してくれた家族に恩返ししたいわね〜〜(何年越しになるんだろうか...)
  • 学科の期末試験に行けない代わりに出された宿題をやらないと andSkype越しに期末試験をやっていただく先生に授業日程を知らせないと...

  1. 卍米国発出会い系アプリ卍

  2. 自転車レンタル屋

「Valgrind」...あなたを詐欺罪と器物損壊罪で訴えます!

tags: 情報

Valgrindを訴えます!

あなたを詐欺罪と器物損壊罪で訴えます!理由はもちろんお分かりですね?あなたが皆をこんなウラ技で騙し、セーブデータを破壊したからです!覚悟の準備をしておいて下さい。ちかいうちに訴えます。裁判も起こします。裁判所にも問答無用できてもらいます。慰謝料の準備もしておいて下さい!貴方は犯罪者です!刑務所にぶち込まれる楽しみにしておいて下さい!いいですね!1

はい.ということでValgrindを訴えます!(訴えません)

Valgrindが使えると騙しましたね。ちかいうちに訴えます。いいですね!

あなたは私を騙しました!

僕はMacを使っているので以下の環境はMacです!いいですね!

brewでインストールできると思っていますか?できると思いますよね?!いいですね!2

ということでインストールを試みます!

  • $ brew install valgrindterminalで打ちます
    • エラーが出るので覚悟の準備をしておいてください!問答無用でエラーを取り除きます。
  • $ brew edit valgrindterminalで打ちます.そうすると,viが起動するので,valgrindソースコードを編集してください!いいですね!
    • ソースコードheadという部分にあるhttps://sourceware.org/git/valgrind.gitという部分をgit://sourceware.org/valgrind.gitに置換してください!いいですね!
    • vimの基本操作がわからない人はこのサイトを見てください!いいですね!それでもわからない人はググってください!いいですね!
    • なんかボタン押してたらよくわからなくなってしまった人はESCを押して,uを連打してくださいいいですね!uで今までの行動をundoできます!いいですね!
  • その後は$ brew update$ brew install --HEAD valgrindをしてください!いいですね!

全部やりましたがうまく行かなかったです!

(調べるとこの方法はMojaveだとうまくいかないみたいです!ということでMojaveでもできるらしいやり方を調べます!いいですね!)

Mojaveでのやり方も調べます!いいですね!

StackOverflowの通りにやります!いいですね!

下のコードをterminalで打ってください!いいですね!

$ git clone https://github.com/Echelon9/valgrind.git
$ cd valgrind
$ git checkout feature/v3.14/macos-mojave-support-v2
$ ./autogen.sh
$ ./configure --prefix=/where/you/want/it/installed --enable-only64bit
$ make

次はvalgrind内にあるcoregrind/Makefileを探してください! vimで開いてください!いいですね!

そして,次の部分を

am__append_19 = \
    /usr/include/mach/mach_vm.defs \
        /usr/include/mach/task.defs \
        /usr/include/mach/thread_act.defs \
        /usr/include/mach/vm_map.defs

次のように置換してください!いいですね!

ただし,MacOSX10.14の部分は自分のMacのVersionに合わせてください!いいですね!

画面左上のりんごマークをクリックして,About This Macをクリックすると下のような画面が出てくるはずです! alt Mojave

    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/mach_vm.defs \
        /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/task.defs \
        /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/thread_act.defs \
        /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/mach/vm_map.defs

それが終わったら

$ make

を再びしましょう

それでもだめなら#define __private_extern__ externというコードを

  • coregrind/m_syscall.c
  • coregrind/m_syswrap/syswrap-darwin.c
  • coregrind/vg_preloaded.c

に加えてください!そして$ makeをして,そのあとに$ make installをしてください!

それでもダメです!下記のようなエラー文が出るだけです...

./auxprogs/make_or_upd_vgversion_h .
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-recursive
Making install in include
make[3]: Nothing to be done for `install-exec-am'.
 .././install-sh -c -d '/where/you/want/it/installed/include/valgrind'
mkdir: /where: Permission denied
mkdir: /where: No such file or directory
mkdir: /where/you: No such file or directory
mkdir: /where/you/want: No such file or directory
mkdir: /where/you/want/it: No such file or directory
mkdir: /where/you/want/it/installed: No such file or directory
mkdir: /where/you/want/it/installed/include: No such file or directory
make[3]: *** [install-nobase_pkgincludeHEADERS] Error 1
make[2]: *** [install-am] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

これでMacではValgrindが使えないとわかりましたね!いいですね!3

おそらく使えます

Dockerや古いOSを使えばおそらく使えます^^b

前者はメモリが足りない(8GBだとそろそろ足りなくなってきた...),後者はバックアップを取るのが面倒,ということで僕が諦めただけです

質問サイト・ブログ

質問サイト・ブログにエラーの解消法を投稿してくださっている方にはいつも感謝をしています

結果として間違っていたからと言っても,僕は全く責めるつもりはないです(もし意図的ならguiltyですが)(そもそも環境は千差万別なので)

当然誰も訴えないですよ!いいですね!

間違え

この記事がもし間違っていて,「本当は普通に使えるよ!」ということがあったら是非とも教えていただきたいです😢

戒め

仮想環境を気軽に使える程度のスペックのPCを買いましょう

米国VISAを申請で格闘(自分と)した話

tags: その他

VISAは早めに取りましょう

今年の夏に米国の大学のサマースクールに行く際に必要なVISA申請で困ったので今後のために書きます(これから行く機会あるのか?)

最初に戒めのために述べますが

逆算してVISAは取ろう

大まかな手順

書類を揃えて大使館へ申請のための面接(面接とは言っていない)をします

最初は相手の大学に連絡をする必要がある

VISAの種類

米国のVISAにも色々と種類があり,大きく分けて移民VISAと非移民VISAがあります

今回僕が取ったのはF-1という非移民VISAの学生用のVISAです

これにはまず,米国に行くというのを米国側の大学に証明してもらう必要があります

そのため,まずは早く授業料を払いましょう!

授業料を払うと,I-20(在学証明書)が空輸でアメリカから来ます.これがないと大使館に行ってもしょうがないです.

来るのに約3日かかるので余裕を持って授業料は払いましょう

旅行する人

ESTA(Electronic System for Travel Authorization)というVISA免除プログラムを使うので関係ない(と思います)

次はSEVIS

次はVISAを申請するのにSEVIS(Student and Exchange Visitor Information System)費用を払う必要があります

これは学生・交流訪問者(F-1,M-1,J-1と言ったVISAが必要な人)(学生・職業訓練者・研究者など)向けです

同時多発テロ以降に作られた,留学生などの管理を強化するための制度です(こんなところで影響があるとは...)

これを払わないとVISA面接が予約できるようにならないので,早めに払いましょう

次はDS-160申請書を書きます

この某天堂の製品みたいな申請書さえ書き終われば,VISA面接の予約ができるようになります

これもDS そういえばこれもDSですね

この行程を通して個人情報を米国の管理下に置くことになります()

親族・学校関係者以外で2人の電話番号や住所が必要になります(ぼっちはここで死にます)(寮なので同じ寮の人に頼めて運が良かった)

予め,誰に頼むか目星をつけておいた方がいいですね

長いだけで,こまめにセーブしながら進めば心配するほどではないはずですがここで僕は一つのバグに遭遇しました

無限に"Session Timed Out"が出る!!!

申請する証明写真が通らない!!!

これで1週間くらい潰しました.頭が悪すぎる選手権準優勝くらいですかね

Session Timed Out(差別)

"Session Timed Out"はブラウザで火狐を使っていたことが原因らしいです1

要件をよく見ると

  1. Internet Explorer 11またはGoogle Chrome ver 58以上を推奨。Safariは使えません

と書いてあります

最近できたロゴ 最近ロゴを変えて狐の原型はない模様

解決策はGoogle ChromeInternet Explorerを使うことでした

こういうのは日本の企業だけじゃなかったようです...

僕はWindows機を持っていないのでGoogle Chromeを使いましたが,もしIEしか使えないサイトがあったら...

(どこの国とは言わないですがM社のOSしか推奨環境にないサイト納税システムを運営している国があるらしい)

証明写真はいらない

次に申請する証明写真に関してですが,これはあとで面接に持ってくればいいので別に通らなくても大丈夫です

ネットで検索したところこの証明写真のパートが通らないことことが非常に多いようなのでなんとかしてほしいですね...

いざ面接

いざ面接です.DS-160の記入が終わるとVISA面接が申請できます

僕は夏前だったので面接予約をしても空いているのが最短で1週間後くらいからでした

「時間がない人はもっと注意してください←」

アメリカ大使館の立地...

流石戦勝国という感じでした

赤坂の一等地にここまでバカでかい大使館を堂々と設置しているとは...

広尾とかそこらへんで我慢してよToT

そして,威圧感に押されながらも面接に挑むのでした...

当日のドタバタ

書類がたくさん必要です. マルチタスクが苦手な僕にはこの手の書類地獄が本当に地獄でした(二重表現)

  • 印刷した面接予約確認書(忘れた)
  • DS-160フォーム確認ページ(間違えたページを印刷して来そうになった)
  • 証明写真(背景が白でないといけないのに水色のものを持っていった)
  • パスポート
  • 古いパスポート(なかったので持ってこなかった←これ大丈夫か未だにわかっていないです...)

が必要です2 上で書いたようにめちゃくちゃドタバタしています

苦手な人は予約した当日にどうにかしましょう

親か友達に手伝ってもらえる人は手伝ってもらった方が多分いいです

4回目の正直

こんな感じで「ないものはない」状態で大使館に向かった私ですが,入る際にも色々とやらかしました...

ないものはない

以下4点のミスを犯しました...

  • ラップトップを入れっぱなし来たためコインロッカーを探すことに(パソコンの持ち込みは禁止されています)
  • パスポートをバッグを忘れる(コインロッカーに間違えてパソコンと一緒においていってしまう痛恨のミス)
  • 証明写真の背景が青色で撮り直そうとしたらお金がなくて引き出すのに時間がかかった(証明写真自体は大使館ないでも取れるので,背景が白色にする証明機がわからない場合は大使館内で取りましょう)

このミスの多さ...

この度に入っては出ているので,多分あの日,あの時間帯は僕が世界で一番アメリカ大使館に出たり入ったりする頻度が高い人間だった気がします.AEDPM世界一ですね(American Embassy Detarihaittari per minute)

この日は予約時間は8:00だったのですが実際に着いたのは15分遅れです...

それに加えて上のヘマで時間を取られて結局終わったのは11:00

憂鬱でしたが,VISAの面接自体は受けられました

逆に言えばVISA面接は遅刻しても大丈夫っぽいということがわかったので収穫です

英語も書類を確認していたお姉さんに"Thank you"を言っただけで全然必要なかったです

まとめ

遅刻OK & 英語不要 なアメリカ大使館さんまじで感謝...ではなく,いい年しているのだからちゃんと時間・書類の管理ができるようになりましょうね僕^^;

手順

  • 留学先の大学に連絡を取る(3日)
  • SEVIS費用を払う(1日)
  • DS-160を正しいブラウザで申し込む(1日)
  • VISA面接予約をする(7日)
  • 最悪証明写真と面接予約確認書はなくても時間に遅れてもいいので,当日に大使館へ行く(1日)
  • VISAが届くのを待つ(7日)

20日前後かかると見積もるといいかもしれません

あくまでこれは個人の感想でこの記事でなんらかの被害を被った方がいても責任は取りません

夏の短期留学で取る科目に関して

tags: 情報

今年の夏の予定

今年の夏はStanfordにComputer Scienceの勉強をしに行く予定です.具体的にはSummer Sessionに行きます.短期留学です.

minimumはVISAの関係上12 units,maximumが20 units(1 unitで50分の授業です)で授業を取ることが義務付けられています.

僕は"CS110","CS161","CS193C","CS229"という授業を取る予定です.(後述しますがCS193Cはさようならする可能性が高いです)

帰国したときに学部に報告する必要もあるようなので先にまとめておきます.


目的

なぜこのSummer Sessionに参加したのかについて述べます.

  1. レベルが高い国外の大学の授業を受けたい
  2. Computer Scienceに興味がある
  3. 色んな人と関わりたい

1つ目の目的

要は日本以外の勉強してみて自分のレベル感が知りたいっていうのがあるからですね.Summer Sessionなのでどれだけ正規の学生がいるのかわからないですが,米国以外から集まる生徒も優秀な方が多いと思うのでいい機会だと思います.

実際行かないと達成できなさそうですね.

2つ目の目的

「CSの勉強ってどこでもできるから行かなくてもいいのでは?」と若干思っているので,実際に行ってみて判断したいからですね.

どこでもできるのなら人生の自由度が高まるし,どこでもできないのならどうしてできないのかがわかるし行く意味はあると感じました.

3つ目の目的

自分が今いる寮に入ってからも思うことで,色んな人と関わるといい刺激を受けるからですね.

実は自分が東大に入ろうとしたのも,中国の優秀な青年を見て,日本人として僕は大丈夫なのかと思ったことが直接の理由です.

まだ見ぬすごいやつに会いたいというわけです.

まとめると

まとめると体験していないのに知ったような口を利きたくないからということでしょう.(周りにいる反面教師達を頭に浮かべながら)


各講義に関する情報

事前に手に入る,各講義の情報をまとめたいと思います.

100番台は1年生,200番台は2年生が学ぶものらしいです.1 楽勝ですね^^;(というのは嘘で期末試験と留学先での授業が被っていて中々やばそう)

あと,一回でも欠席するとその瞬間に単位が天国に行ってしまうそうなのでEEICのように授業に休むということはできなさそうです...

取る講義(17 unitsの予定)

  • CS110: PRINCIPLES OF COMP SYS(4 units)
  • CS161: DESIGN & ANALYSIS ALGORITHMS(5 units)
  • CS193C: CLIENTSIDE INTERNET TECHNOLOGY(3 units)
  • CS229: MACHINE LEARNING(5 units)

CS110: Principles of Computer Systems

  • 4 units
  • 講師は"Roslyn Cyrus"という方で,Linkedinを見るとStanfordのMaster方らしいです.学部の頃はコーネル大学で英語学とアフリカ学を専攻していたようです.ホームページが結構面白いです.
  • Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; security, and encryption; and performance optimizations.

  • prerequisiteとしてコンピュータアーキテクチャの授業が指定されており,春学期の授業を見ると,UNIX・ネットワーク周りの部分などをみっちりやるようなのでそこらへんに興味があり取りました.一番楽しみな授業です.

CS161: Design and Analysis of Algorithms

  • 5 unit
  • 講師は"Reyna Hulett"という方でLinkedinを見るとGoogleとかFacebookとかDropboxで働いたことのあるかたでPh.D.の方らしいです.かなりアルゴリズムに強そう(小並感).
  • Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. Prerequisite: 103 or 103B; 109 or STATS 116.

  • EEICにもアルゴリズムの授業はあるのですが,ひたすら擬似コードを眺めているみたいな授業なのでうーん.5 unitsがあり,きっちり理論をやってくれそうなので取りました.
  • やったことある内容も多い気がします(一応競プロをやっているので)が,理論はしっかり抑えてないので取ります(自分で分厚いアルゴリズムの本を読もうともならないし...).

CS193C: Client-side Internet Technologies

  • 3 units
  • 講師は"Patrick Young"という方でHPを見ると,IBMで働いていて,小さな開発チームでグループでの開発効率を高めるような製品を作っていたようです.Ph.D.も取っていますね.
  • Client-side technologies used to create web sites such as Google maps or Gmail. Includes HTML5, CSS, JavaScript, the Document Object Model (DOM), and Ajax. Prerequisite: programming experience at the level of CS106A.

  • これは単位とコマが余っていたので取りました().しかし,夏休みにWeb系の企業にインターンで行くこともありちゃんと勉強したいと思っていたので好意的に考えています(大学は職業訓練校じゃないという方々にお叱りを受けそうなのでおおっぴらには言えませんが).
  • 他の授業の課題がやばい場合は,優先度が低いのでさようならをします^^;

CS229: Machine Learning

  • 5 units
  • 講師は"Anand Avati"という方でLinkedinを見ると,かの有名なAndrew Ng氏の下で機械学習の研究をしているPh.D.の学生らしいです.インド出身でソフトウェアエンジニアの経験もあるようです.
  • Topics: statistical pattern recognition, linear and non-linear regression, non-parametric methods, exponential family, GLMs, support vector machines, kernel methods, model/feature selection, learning theory, VC dimension, clustering, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning and adaptive control, Markov decision processes, approximate dynamic programming, and policy search. Prerequisites: linear algebra, and basic probability and statistics.

  • 今学期,理学部情報科学科の統計的機械学習の授業を取っているのですが,似たような感じになりそうです.数式と格闘してアルゴリズムを実装するという地獄のような授業になりそうですが...頑張ります(泣)

おわり

授業とあちらでの生活は非常に楽しみです.

学部に入ってから毎日充実しています(?)が,実験をするたびに間違った学部に来てしまった感が否めなくなるので,(あえて)距離を取ることで自分の学科愛を確かめたいと思います.

〜次回に続く(予定)〜