見出し画像

オーストラリア国立大学のCS修士で過ごした半年を振り返る

どうも、オーストラリア国立大学(ANU)に留学中のみしゅめです。全然投稿できてなかったのですけれど、何とか生存できてます。
今日はANUのMaster of Computingで1学期過ごした振り返りを共有したいと思います。


受講したコース

前学期は、以下のコースを受講しました。

  1. Discrete Mathematical Models: 離散数学入門という感じでした。Logic, set theory, counting, probability, graph theory含め本当に多くの分野を総ざらいしました。

  2. Computer Organisation and Program Execution: コンピュータってなにさという問いに対して、トランジスタレベルまで抽象度を下げて真正面から殴り倒していくコースです。

  3. Professional Practice 1: プロのエンジニアとは何たるか、仕事の取組み方から社会責任まで色々な側面からディスカッションするコースです。

  4. Structured Programming: Javaの記法とデータ構造・アルゴリズムの概要を学ぶコースです。

率直な感想

想定の25倍は大変でした。いや死ぬかと思ったぜほんと。数学が!!!わからなすぎて!!!何度か単位取れずに帰国する未来が夢に出たのは言うまでもない。。
加えて、各コースのアサインメントが多いまたはヘビーで、仕事してた時より仕事してる感がありました。終盤は最終試験の勉強と相まってパニックになり、それを見かねた妻が勉強計画を立ててくれる程でした(大感謝です)。

ひどく数学に苦しんだ

もし、ANUのMaster of Computingに行く予定のある方は、どうかDiscrete Mathのコースに怯えないでください。理系であれば、簡単だと思います。自分の周りの友達は、楽単ダンスしてました。

自分の場合は、政策科学学士というド文系出身で、何ならそもそも数学が大の苦手(高校ではいつもギリギリ単位取ってました)なんです。よって、入学時点では、脳内から数学の記憶がほぼ全て消え去ってました。

ゆえに、「set theory?ああ、集合のことかな。。全部忘れたけど。。」みたいな状態で、離散数学全分野証明付解答夜露死苦塾の門を叩いたわけです。
塾長(教授)は、当然わかってると思って、応用的な事をアサインメントで求めるんですね。「Russell's Paradoxの理解に苦しむ同僚からメールが来ました。概要、事例、解決策を含む返信をしなさい」とか言うんですね。すみません、自分がそのメールを送りたいです。

だから学期中は、ほとんどの時間を授業の見直しと練習問題に当て、毎日チューターに入り浸って質問しまくりました。
「わからないことも、もうわからんのです。」とか言う自分に、呆れ顔ながら教え続けてくれたチューターには、感謝しかありません。彼なしでは、間違いなく単位を落としたでしょう。

Microarchitectureづくりに勤しむ

Computer Organisationでは、自分の勉強したかったコンピュータの仕組みの理解に取り組めました。自分の思い込んでた仕組みと違う点がいくつかあって(Out of orderなmicroarchitectureなら、instructionを上から順に処理するとは限らないとか)、そういう発見に知的喜びを感じてました。

実技では、QuACという簡易なinstruction setに対応したMicroarchitectureをシミュレーションソフトで作りました(下図参照)。(離散数学に追われつつ)自分が実装できたのは、single coreでpipelineもサポートしない単純なものだったけれど、今まで何となく「CPUは計算する石」「RAMはプログラムのデータ入れとく箱」と思っていたものを精細に知り、手に馴染ませた経験は、ANUに入って得た大きな成果の一つになると思います。

ぼくのさいきょうのこんぴゅーたー

心残りは、試験勉強がほとんどできなかったことです。Discrete Mathの単位を絶対に取るために、試験前はDiscrete Math 90%, Structured Programming 5%, Computer Organisation 5%的な配分で勉強せざるを得ませんでした。

試験はopen bookだったし、配布されたサンプル試験が8問程度で簡単だったので、大丈夫かなとも思ってました。下記CコードをARMアセンブリに直すみたいな温度感でした。

int count = 0;
for (int i=0; i<10; i++) count += 2;

当日難問だらけの50問でしたけどね!!!たとえば、こんな問題が出ました。「下記CコードをARMアセンブリに直すけど、君はlink registerを使えない。さあどうする?あ、他registerをlink register的に使うのはなしね☆」

void bar() {
  //...
}
void foo() {
  bar();
}
int main(void) {
  foo();
  return 0;
}

いや先生どうしたんですか!?完全に予想を上回られた。。

Professional Practice 1の満足度は低い

必修だからどうしようもないけれど、このコースの満足度は低いです。ビジネスマナー講習+ゲスト講師のTEDトークを聞くみたいな内容でした。ビジネスマナーが大事なのは分かるし、全く学びが無かった訳ではないけれど、CS修士として60万円払うような内容ではないと思いました。自分はコンピュータの勉強がしたかったんだ。。

受講した友達のほとんど(というか全員)も不満を持っていました。初めは100人前後がレクチャーに来てましたが、最後の方は20人くらいしか来ませんでした。

唯一良かったことは、最終試験がなく、Discrete Mathの勉強時間を作れたことです。
定期的なレポート作成とグループワークで評価が決まる形式でした。

成績発表

そんなこんなな1学期の結果が、以下です。

グレードはHD > D > CR > P > N (落単)という関係

全単位取れた!!何より嬉しいのは、あんだけ苦しんだDiscrete MathがHDだったことです。諦めずに頑張ってよかった。。
代わりに生贄に捧げたComputer OrganisationはCRという結果に終わってしまったけれど、逆に振ったら間違いなくDiscrete Mathの単位を落としたので、英断だった(と思いたい)。

学んだこと

とにかく質問する

Discrete Mathで痛感したのは、一人で悶々と悩むよりもわかる人に聞いた方が、理解のスピードも深度も結果的に高いということです。
半年受講してみて、ANUのコース進度がとてつもないとわかり、事務処理能力がものを言う世界だと思いました。よって、わからないことは抱え込まずにどんどんチューターや友達に聞くべきです。
もし、誰にも聞かなければ、日本で自学自習してるのと変わらないので勿体無いです。学費で大金叩いてる分、元を取りに行きます!

Open book exam=難易度青天井

当時は面くらいましたが、よく考えれば、本を見ながら解けるの状況で、単純な知識問題や本に書いてありそうな例題的な内容を出すことはないと思いました。実際に、唯一open bookだったComputer Organisationが最も難しかったです。
もし、次に最終試験がopen bookと言われたら、喜ぶよりも前に優先度爆上げで準備するようにします。

反省点

勉強しかしなかった

数学でついていくのに精一杯で、全く他のことができませんでした。
特に、お世話になっている方に頂いた案件をほとんど進めることができず、申し訳ない思いです。

大学外の交流を持てなかった

卒業後の就職を見据えれば、キャンベラの文化をもっと知ったり、現地人と関係を持ちたいです。

この留学記を書けなかった

勉強で忙しかったといえど、振り返れば毎日書く時間を作れたと思います。

不安なこと

卒業後に仕事あるのか?

生成AIのどでかい波がきてる中、Computer Systemsに一辺倒で自分に仕事があるかという不安と、今アツい技術をガッツリ触れていないことへの焦りを感じていています。

とはいえ、並行して機械学習の勉強ができるほど要領がよくないし、自分の数学力でついていける自信もないので、まずは既に走り始めたComputer Systemsを行けるとこまで行くしかねえよっ、と毎度自分に言い聞かせてはいます。

オーストラリアで、全く業務経験やコネクションがないことも、この不安に拍車をかけている感じがします😇。

次学期の目標

OSを作ってみる

次学期にOSのコースを受講するのと、いつか書いた死ぬまでにやりたい事リストに「自作OSを作る」があったので、実行したいです。まずは小規模なものから始めようと思います。

大学外のコミュニティに参加する

いくつかソフトウェアエンジニア関連のコミュニティを見つけたので、片っ端から参加してみようと思います。そこから、最終的にはキャンベラのエンジニア界隈で存在感を出していきたい。もうインキャとか言ってられないんだよな。。

ネットワーキングに挑戦する

聞く人全員が「コネが全て」というほど、オーストラリアの就活はコネ drivenのようなので、苦手ではあるがネットワーキングイベントに顔を出し始めようと思います。自分に興味を持ってもらい、選考を有利にすることが目的だと思うので、それが達成できる目標を定めて臨みたいです。

留学の発信を続ける

短くても良いから、自分の留学体験を情報として残し、思い出とANUに留学する人の参考になれば良いなと思ってます。

てことで、

随分長々と書いてしまったけれど、これが2023年1学期の振り返りでした。まず、全単位とれたことを素直に喜びたいと思います。そして、いつも応援してくれる妻に感謝です。
次の学期では、もっと学外に目を向けて生活したいです。そんじゃノシ

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