見出し画像

米国コンピュータサイエンス修士に入学した話


はじめに / 勝手な謝辞

この記事は、社会人学生アドベントカレンダーの12日目です。現在、ウィスコンシン大学マディソン校のMaster of Science in Computer Science - Professional Master’s Programに所属している@YorkNishimura1と申します。アドベントカレンダーを作ってくださった@momiji_fullmoonさん、ありがとうございます。11日目の@wakadori_Mk3さんの1年の絵師鍛錬の成果がすごすぎて、プレッシャーに感じています。

TL; DR

ウィスコンシン大学からの合格通知。。!20年ぶりくらいにガッツポーズした
  • 36歳でも、csrankings.orgで20位以内の米国コンピュータサイエンス(CS)の修士は受かる!あきらめなければ道は開ける!

  • ただし、いわゆる理系の米国大学院の出願における必要条件(prerequisite)はかなり厳格。なので、それを満たさない場合は、可能な限り正式に満たす=通信課程でも良いからCSの学士を取るほうが、結果的に近道(とおもう)

  • 大学名よりも頑張ってGPAを4.0に近づけることのほうが重要。

  • TOP10の大学や、ピュアなリサーチCS理学修士(Master of Science in Computer Science)に行きたければ、リサーチの実績が必須。後述する、研究室配属もあるような大学で学士を取り直すと、可能性はさらに高まるかも。

  • なお、「CS学士がないと絶対に受からない!」ではないです。最終的には業界経験も加味されるので、個別判断になります(Admissionもそのようにコメントしてます)。

自分のスペック

  • 2007年に東大経済学部卒業(Bachelor of Art, Economics、GPA3.35)。卒論はベイズ統計(MCMC)を使った株式市場のボラティリティ推定。ゼミは統計、ゲーム理論、計量マクロ経済学でした。

  • 国家公務員としてキャリアスタート。その後、外資系の証券会社→コンサルやスタートアップを転々と→メルカリでプロダクトマネージャーを1年間やっていました。

  • エンジニアの経験は、スタートアップで必要に応じてGoやPythonでスクレイピングのスクリプトを書いたり、業務自動化のためにGASを組んだ程度。

  • 「米国でMCSC取りたい!」となってから、帝京大理工学部情報科学科の通信課程に入学。Bachelor of Engineering を取得。GPAは出願時で3.61、最終3.51で着地。

  • 英語は、2010年前後にMBAを志して勉強したときに102、去年の出願時で100(R: 28, L: 25, S: 24, W: 23)。GREは2回受けてどちらも318(V: 151(149)、Q: 167(169)、AWA: 3.5)。

米国CS修士を志望した理由

もともと、子ども時代からアメリカへの強い憧れがありました。その上、ITのスタートアップで働いていたので、幼少時の憧憬と相まって「米国で勝負してみたい!!」と思ったのが根底にある動機です。

米国で働くには「ビザ」という大きな壁があるのですが、この壁を乗り越えるのに一番可能性が高く、かつ、その後の職も得やすそうなCSの修士を選択した、というのが志望動機になります。

なお、米国に来て、米国修士への入学=お客さん待遇よりも、米国企業でのポジション確保のほうが、想像の数倍ほど大変だということが分かりました。これはまた別の記事でお伝えできればと思います。

CS修士の必要条件とその対策

米国では、ある学位や授業を取るために、厳格に必要条件(prerequisite)が定められています。
UW-Madisonでの授業の履修を例にとります。CS537という授業をとるためにCS352という授業が必要だと定められているとします。この場合、CS352の履修記録がなければ、CS537のシステムでの履修ができない(弾かれる)仕組みになっています。
授業でさえこれほど厳しく管理されているのであれば、入学の審査要件はさらに厳しくチェックしていると思われます。

そのため、もし読者の方が、CSバックグラウンドは無いけど米国のCS修士を取りたい!と思われているのであれば、以下のようなやり方でCSや情報系、それに近い学士を取ることを強くおすすめします。

必要な単位とは?

ほとんどの米国CS修士の必要条件である以下の単位を頑張って集めましょう。できれば良い成績を取りましょう。

  • データ構造とアルゴリズム

  • コンピュータアーキテクチャ

  • オペレーティングシステム

  • データベース

  • オブジェクト指向言語(プログラミング2とかプログラミング演習的な授業)

  • 微積分と線形代数、場合によっては多変数微積分や微分方程式

  • 離散数学やグラフ理論

Admissionのコメントの例: Purdue University

Requirements for Non-CS Majors
We consider applicants from other fields, particularly mathematics, science, and engineering and are willing to accept them despite some deficiencies that they will have to make up.
Major deficiencies are best remedied before applying or attending:
 - object-oriented programming
 - systems programming
 - data structures and algorithms
Other good preparatory material includes computer architecture and operating system concepts, analysis of algorithms, probability, and linear algebra.
A more extensive background opens up more areas for PhD research.

https://www.cs.purdue.edu/graduate/admission/requirements_nonCS.html


必要条件を揃えるためのプログラムのススメ

1.帝京大学理工学部情報科学科(通信課程)

僕は、帝京大学情報科学科のプログラムに2.5年を費やしてBachelor of Engineeringを取得しました。0.5年は、科目等履修生の制度を使ったためにはみ出した期間です。帝京大の科目等履修生の制度では、取得した単位は正規生になったときに引き継げます。

良かった点

  • 通信課程なので、仕事の波と学業の波をある程度調節できる。

  • 安い(2020年時点で15万円/年。成績上位者3%で5万円の奨学金あり)

  • 先生方が優しい。通信学生にも関わらず、メールなどでの相談も受け付けて頂いた

  • 概念をわかりやすく説明する講義内容

これはできないよという点

  • 制度としての研究室配属はない(ただし、リサーチのテーマを明確にした上で先生に相談すれば、リサーチのアドバイスもしていただける場合もある)

  • プログラミング言語やコンパイラなど、計算機科学分野の一部の科目が履修できない

  • データサイエンスの授業はなかった(今は変わってるかも。通信の修士課程にはあったはず)

2.電通大夜間/東京理科大理学部第二部

社会人学生アドベントカレンダーでも紹介があった(電通大理科大)のですが、電通大夜間過程理科大理学部第二部数学科にも必要単位を取得できるプログラムがあります。

僕は特に理科大を中心に検討しましたが、主に通学の負担と卒業までの期間を考慮して帝京大に決めました。研究室配属によるリサーチの経験は、出願結果に大きく寄与するので、学費や通学の負担を許容できる方にはおすすめです。


3.海外大学CS学士課程

University of London University of Florida では通信でCS学士が取れるようです。学費は高いですが、英語での学位が取れるのはとてもアドバンテージがあるように見えます。英語で初めての学問を学ぶのは時間がかかり過ぎそうな気がして、自分はパスしました。

4.フルタイム入り直し

会津大学。コンピュータサイエンス専門の大学で計算機科学の授業がめちゃある。海外の教授も多いので推薦状のパワーもありそう。編入入学の制度もあります。5つの選択肢の中で、最も時間・金銭コストがかかるが、最も良い準備になりそう。真剣に検討しましたが、時間コストが高いと判断しパスしました。

5.Courseraなどで単位を取る

コストは最も安いが、大学のAdmissionでは「大学での単位しか認めない」と明記しているところもあります。時間的にどうしてもという方はこちらのオプションも検討せざるを得ないと思うので、事前にAdmissionに確認するのがベターだと思います。

英語の準備

TOEFLやGREは、世の中にたくさんの参考記事があるのでそちらに譲りますが、その中でも自分が工夫した点を何点か述べます。必要があればここも別記事で詳細説明します。

Andy先生の勉強会: 勉強法と過去問の取得

単語やその他の対策で80点以上とった後、この勉強会でもらう勉強法とTOEFL過去問をひたすら実施すればよいかなと思います。

TOEFL Speaking: かんたんな文書を暗唱・暗記する

MBA界隈では有名なDonaldの塾に2ヶ月ほど行った後、ダイアローグ基礎編1200の米国アクセントのセットを、1-3セット/日のペースでCDを聞きながら暗唱。最終的には何も見ずに何も聞かずに再現できるようにしました。


また、上記の勉強会でもらったTOEFL Speaking過去問の模範回答を、15問分90パッセージくらい暗唱しました。

結果、Sで日本人としては高めの24点を獲得できました。

受験結果とその考察

2020年の10月から21年の2月にかけて20プログラム出願して、8プログラムに合格しました。

出願時期や結果の時期は以下の通りです。

黄色が合格、グレーが不合格

最終的に、UW-Madison(システムやデータベースに強い)、UMass Amherst(ML全般に強い)、Stony Brook University(純粋なMSCSプログラム+MLVisionに強い)で迷いました。結果、(1)住みやすい街にある、(2)専攻希望の科目が強い、(3)大学時代の恩師の母校であるUW−Madisonに入学しました。
なお、Madisonは、家賃もリーズナブル、公共交通もそこそこ、人が優しい、治安がよい、と、米国生活スタートの居住地としてとても良い場所です。

受験の考察

  • 年齢:出願時は36歳だったが、ほぼ影響なしと思われる

  • ランキングトップ10の大学:全落ち。リサーチ経験がない点がウィークポイントだったと思う

  • ランキング30位以内:ちゃんと準備すれば受かる!

  • GPA大事。更にいうと、大学院のPrerequisiteになってる単位の成績が大事だとおもう

  • 超優秀なCandidateは多くの大学に受かるが、体は1つ。そのため、席が空き次第順次別のCandidateにオファーが来る。メンタルは病むが、気を強く持って待つ!

なお、GradChatという有名な結果共有サイトがありますが、本当に信用できないので、ネタやなって思って見るくらいでいいと思います。

Yocketというインド発のサービスのほうが有用でした。このサービスでは、自分のGPAやGREの点数を入れると、過去の合格者/不合格者との点数比較で、各大学/各プログラムへの合格可能性が出ます。受験したすべての大学を入れてみましたが、30%を超えている大学はすべて受かり、それ以下の大学はすべて落ちました。CSの場合はまぁまぁ信頼できるソースかなと思ってます。

さいごに

今は、Professional Master(ThesisなしでもMasterとれる)のコースですが、PhD進学も検討に入ってきてしまいました。。。このあたりの悩みはまた別の記事で書いてみたいです。

すべての内容は無料ですが、「応援してもいいぜ!」という方がいらっしゃれば、以下から投げ銭いただければ大変うれしいです。温かいコーヒーを飲ませていただきます。

もし、TOEFL等の英語のスコアのあげ方、アプライ先の決め方、SoPの書き方、お金面、米国の就活戦線の状況、UW-Madisonのコース内容など、本テーマについてもっと知りたいという方がいれば、ぜひコメントに残してください!記事にします。コメントによる質問もおまちしています。

なお、2022年夏の米国でのインターン先を真剣に探してます。。LeetCode100問とMLとSystem Programmingと、ヨワヨワな経歴ですが、来夏までにはもう少しマシになってるはずなので、検討してもいいよという方からのご連絡をお待ちしています。

長文にお付き合いいただき、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?