naoya_t@hatenablog

いわゆるチラシノウラであります

Courseraレポート(〜9/3)

前回までのあらすじ(〜8/26)

現在、量子力学&量子計算のクラス(Umesh Vazirani先生)と、8/26に参戦したアルゴリズムのクラス(Robert Sedgewick先生+Kevin Wayne先生)を受講中。量子計算の方がメイン。

Quantum Mechanics and Quantum Computation (Umesh Vazirani, UCB) - 7/17開講; 現在7週目

  • Week 6
    • 量子回路: n量子ビット系, ユニバーサルな量子ゲート, 可逆な計算
    • 初期の量子アルゴリズム: フーリエサンプリング, Simonのアルゴリズム、二重スリット実験

講義ビデオをひと通り見て、ぼんやりした理解(ノートは取ってるけど自分が書いたノートが何言ってるのかさっぱり分からん)のままAssignment 6を受けた。1回目は得点が8割に満たず。

  • 解けない問題から、自分が何が分かっていないのかが見えてきたのでその辺りを何とかするため講義ビデオを見直し。アダマールゲートが何故フーリエ変換的な役割を果たすのか、ちくちく手計算してみて腑に落ちる。
  • 問題文が曖昧な箇所があって困ったのだけれどその辺りは4択問題をbrute forceで解いた結果から問題の意図を推測してくれている先人の人柱のお陰で何とかなった。お陰様で2度目で満点。2度目なので10%減点されて90点相当。通算58.7/60なう。

Week 7では量子フーリエ変換とShorのアルゴリズムに入る。その前にWeek 6の後半をおさらいしておかなければ恐らくわけわかめだろう。頑張る。

Algorithms, Part I (Robert Sedgewick & Kevin Wayne, Princeton) - 8/12開講; 8/26参戦; 現在4週目

アルゴリズムのクラスは2週+α遅れ参戦のせいでAssignmentの締切りがギリギリ、ということもあり(内容を知ってる気になっているという事もあり)講義ビデオを視聴する時間がフルで取れない。
そこで、講義ビデオを見る前にExercisesの問題を先に開き、解けない問題があった場合にビデオを見る、という戦略でやってみることにした。(問題を解くのに)必要な情報をつまみ食いする感じ。講義の中で定義されている内容を参照している場合は見るしかないが。

Exercisesについてはそれで割と何とかなるのだけれど、Programming Assignments の方はそうは行かない。講義で説明していない(用意されているjarに入ってない)クラスは使えない、という縛りのせいもあるけれど、講義ビデオで実装を紹介しているのをコピペすれば済む箇所もあるので、講義ビデオを早送りで見るケースが多い。(Sedgewick先生の講義は大抵x1.75で見ている。これは先生の英語が聴きやすいからこそできる事)

Programming Assignmentsはメモリや時間、特定メソッドの呼び出し回数などに制限がつけられていて、簡単には満点が取れないような設計になっていて面白い。(TopCoderで言ったらDiv I Medium問題を解いてるような感じ。Javaだけど)

Javaでプログラム書くのがちょっと面白くなってきた。SRMのDiv2過去問あたりJavaで解いてみようかな。