はてなダイアリーでは「へぴゅーNT/というわけで(ry」だった何か。
まとまった文章が中心。日々の短文はmb(ryにあります。

First Grade from OMSCS

ジョージア工科大学オンラインコンピュータサイエンス修士課程(OMSCS)の最初のTermが無事終わった

このエントリは社会人学生アドベントカレンダー2023の12/14分です。成績が出るのを待ってたらアップロードがおそくなってしまった…。

状況としてはタイトルの通りです。2023年1月にUoPeopleを卒業、3月にOMSCSに応募、4月末に合格通知で、8月末(Fall)から最初の学期でした。同じオンラインの大学(大学院)ですが、科目登録から成績評価まで、UoPeopleと仕組みがかなり違って苦労しました。

このエントリでは、履修科目決め→登録→受講→成績評価までを雑多に記録したいと思います。ちなみに履修した科目は Machine Learning for Trading (略称 ML4T)で、約94点でAを取れました。

ちなみに、UoPeopleの卒業までの3年間については

mbr.hatenadiary.jp mbr.hatenadiary.jp

また、OMSCSの応募については mbr.hatenadiary.jp

もご参照ください。

思ったより長くなったので以下目次です。

最初のTermに何を取るべきか

念願のOMSCS合格!早速好きな物を取りたいところですが、OMSCSには以下の縛りがあります。

All applications are reviewed by a faculty committee to ensure that those admitted can succeed in the program. Applicants who are selected for admission will be conditionally admitted into the degree program and must pass two OMS CS foundational courses with a grade of B or better within a year from when they matriculate to be fully admitted.

FAQ | OMSCS | Georgia Institute of Technology | Atlanta, GA

要は最初の1年はお試し期間で、それなりにいい成績を取らないと駄目なのです。Bは基本的に80点以上です。あと、卒業にあたってはGPA3.00以上、ただし専攻必修科目はB以上、専攻選択科目はC以上という縛りがあります。厳しい。

また、科目数については最初のTermに2つ以上とるのはオフィシャルに推奨されていません。ただ、もともと2科目以上とるつもりはなかったので、これはあまり問題になりませんでした。1Term1科目だと3年半くらいかかりますが、別に急いでないですし。

さらに、新入生はPhase2という、学期開始のぎりぎりの登録期間にしか登録できないので不利です。事前の登録期間(Phase 1)で人気の科目(往々にして簡単な科目)はもう埋まってるので、さらに選択肢の幅が狭まります。

以上の条件を踏まえて、滑り込めばまだ何とかなりそうな科目をomscs.rocks を食い入るように眺めることで、Machine Learning for Trading に決めました。Trading全く興味ないんですが。本当は専攻(Specialization)を決めて、それに沿った科目を取るのが筋なのですが、この時点ではInteractive IntelligenceとMachine Learningの間で決め切れていなかったので、とにかく履修登録できて点数が取れそうな科目にしました。

ちなみに公式っぽいこのサイトhttps://critique.gatech.edu/ では、科目を落とした学生の割合などもわかるので難易度を見極めるうえでお勧めです。

激戦の科目登録

UoPeopleのときも科目登録はかなり大変で、希望の科目がとれないというのはよくあったのですが、OMSCSの場合はそもそも科目が少ない(提供している科目だけでなく、卒業までに10科目しかとらなくて良い点も含めて)なので、科目登録はより激戦でした。

なので、事前情報を基に科目登録を最速で実行するストラテジーを考えて実行しました。以下は、実際に自分がやった方法です。

あらかじめ、システムが重くなる前、具体的には登録開始時間の10分くらい前に科目登録システムにログインしておきます。適当にページをリロードとかしてログアウトを防ぎます。時間が近づいたら、omscs.rocks にあるCRNという各コースに完全にユニークな番号をコピペしておいて、23時になった瞬間に科目登録システムのCRNの検索窓(普通の検索条件とは別のタブ)に叩き込み、出てきた画面でRegisterを迷わず押します。これで2分以内に登録できます。

CRNさえあっていれば大丈夫なので、ここで悩んではいけません。下手にコース番号で科目検索とかするとオンキャンパスの同名科目が出てきたりして危険です。CRNを信じろ。

ちなみに、自分の時はML4Tの定員は1300人で、Phase2開始時点で空きが300くらいあったはずですが、5分でいっぱいになりました。怖いですね。来期の登録もPhase 1のときにしましたが、これもまた人気の科目は凄い勢いで埋まるので、23時(冬時間の時は24時)待機推奨です。

定員があふれてもWaitlistで待てるらしいのですが、空きが出来た時に12時間以内に登録しないと順番を飛ばされるという話も聞いたので、時差を考えるとちょっと危険だなあと個人的には思っています。

興味持てな過ぎ&ペース掴めなさ過ぎて困る

なんやかんやで学期が始まるとLMS(Learning management system)にログインするわけですが、ここでまた新しい仕組みに遭遇します。具体的にはUoPeopleのLMSはMoodleでしたが、OMSCSはcanvasです。あとはOMSCSではGradescopeという、コードの自動実行・採点システムが別にあります。すごい。

また、UoPeopleはどの科目も同じような仕組み(Discussion Assignment、Written or Programming assignment、Exam、Self-Quiz、Learning Journal)ですが、OMSCSはコースによって形式が違うので戸惑います。ML4Tは基本的にProject(プログラミング and/or レポート)が71点分と試験が25点分です。Quizとコースサーベイがそれぞれ全体で2点分ずつあるので、毎回忘れずにCanvasにアクセスする必要があります。ただし、Quizはそれほど教材に即している感じでもないので、毎週アサインされた資料読みはサボろうと思えばサボれる→課題や試験の直前に慌てて溜めていた分を消化して課題・試験に臨む、という感じで学期中ずっとペースをつかめず苦労しました。課題の配点も3点のものから20点のものまであって、配点の大きい課題をやっているときはストレスフルでした。

また、毎週月曜日にTAセッションという、課題の解説やリアルタイムに質問に答えたりしてくれる時間があるのですが、1秒も参加しませんでした&録画も見ませんでした。TAセッションとは別に、学生が質問できるテキストベースのフォーラムで他の受講生が質問しまくっているので、それを見ながら良い感じにProjectを進めると楽です。

あと、ML4Tは成績がつくのが物凄く遅いです。Redditとかでもたまに話題になってますが地獄の遅さです。これにより、自分が正しく課題をこなせているのか不安になります。さらにML4TはプロジェクトのInstructionが絶望的に複雑です。プロットの線の色まで指定されて、あってないと減点です。この点はいろんな口コミサイトで指摘されていて、ふーんとしか思ってなかったのですが、いざ自分がやろうとすると本当に洒落にならないレベルで複雑です。まず間違いなく1度はキレます。おそらくですが、過去のいろいろな積み上げやフィードバック、採点上の都合などで厳密さを追求するうちに複雑怪奇になったものと推察します(そしてたぶんこれからも複雑になり続ける)。これは、講義を作る側としてはやってしまいがちなので気を付けたいですね…。対応策としては、検索を駆使したり、ChatGPTにぶち込んで要約してもらうのが良いです。

ただし、ML4Tは毎期1300人と受講生が非常に多いので、ネット上に良いまとめ記事が落ちていたり、他にも参考になるものが色々見つかるので、それを駆使すればなんとかなるように思えました。

試験監督付き試験!だけどHonorlockはProctorUより簡単

ML4Tは中間と期末の2回試験があって、あわせて25点分を占めています。この辺はUoPeopleとあまり違わないです。UoPeopleのときは4択問題でしたが、こっちはTrue/Falseを選ぶ形式でした。実は、今年から試験形式が変わったとかで、これまでは5択か4択の問題が20問程度(各問題に対して正解の選択肢は1つだけ)だったものが、22問の問題の5つの選択肢のそれぞれに対してTrue/Falseを選ぶように変わった(実質110問)ので負担が激増しました。その代わり、持ち込み可(Open-book)で時間も延びたようなので、難易度はそこまで変わってないのかもしれません。

ちなみに、試験監督ツールとして使われているHonorlockはProctorUと同じく、ブラウザの拡張機能として入れるツールで、画面共有とカメラで不正してないか監視する感じです。でもProctorUと違って人間を介さないっぽいので事前の予約が必要ないですし、部屋の中を全部見せたりする必要も無かった(少なくともML4Tでは)ので、かなり楽でした。

うっかり和文Transcriptを送り忘れたことに学期途中に気づく

ちなみに、OMSCSは入学手続きの時は基本的にオファーをAcceptしておけばよくて、最初のTermが終わるまでに必要な学位の証明書の原本などを送ればよいのですが、ここでうっかり英文だけでなく和文の証明書も必要であることを(どこかで読んだのに)忘れていて、ばたばたしました。7月に英文証明書をEMSで3000円くらいかけて送ったのに、10月頃にもう一度、和文証明書を3000円かけて送ったので、多少お金が無駄になりました…。ちなみに証明書が間に合わないと、来期の履修登録ができない(Hold)というペナルティが発生します。自分は(2度目の送付の際、ApplicationのときのNumberをEMS送付状に含め忘れたりして手続きが遅れたりしましたが、別途担当部署にメールしたりして)ぎりぎりなんとかなりました。

来期どうするか

前述の通り、最初の1年でFoundation course 2科目B以上の縛りがあるので、比較的簡単と言われていて、かつかなり自分の側に予備知識があるNetwork Science(NetSci)にしました。メインの教科書らしきBarabasiの本も持ってるし、今度は興味もあるし。まあ専門の分子生物学以外のネットワークはあんまり興味ないけど…(Social networkとか)。

一応、本業の方でも大学院講義でちょっと触れているのと、ちょうど時期的に来Termが終わったころに本業の方の講義があるので、大学院で学んだことを大学院で教えるという素晴らしい好循環を目指す予定です。やったね。

さらにその次の学期、Summerはいつもより学期が短い&開講している科目が減るため何を取るべきかちょっと迷っています。夏学期おすすめ科目といえばML4TとNetSciなんですが、もう取っちゃってるし…。Computer NetworkとかAI - Ethics Soceityあたりも良く名前があがるのですが、また科目登録が激戦なのでどうしたものかなと思っています。無事1年を乗り切ったら、その次の秋学期は地獄と名高い必修科目のMachine Learningでも取ります。