Georgia Tech OMSCSの入学準備と履修計画
Georgia Tech OMSCSの合格発表も終わり、これまでのことをまとめた。
いよいよSpring 2022セメスターに向けて準備を始める。「春」といういことで授業は4月に始まるのかなと悠長に構えていた。しかし、Spring 2022の授業はAcademic Calendarにあるとおり2022年1月10日から2022年5月7日だ。新入生の履修登録は1月6日にはじまる。年間スケジュールを見つつ、オリエンテーションや履修計画を年内に終わらせる必要がある。
年間スケジュール
スケジュールを誤解して突っ込んでいったら、初授業受講と転職タイミングを完全にかぶらせてしまった。反省を込めて主要なスケジュールを書いておきたい。退職の話をするとき、学業に専念するのかとけっこうな人数に尋ねられたりした。
Spring 2022
12/4 Time Tickets - Phase I Registration
12/8〜17 Phase I Registration
1/5 Time Tickets - Phase II Registration
1/6〜14 Phase II Registration
1/10 First Day of Classes
3/21〜25 Spring Break
4/28〜5/5 Final Exams
5/7 End of Term & Commencement
Summer 2022
3/24 Time Tickets
3/28〜5/20 Registration
5/16 First Day of Classes
7/28〜8/4 Final Exams
8/5 End of Term
Fall 2021
Fall 2022はまだ出てないので参考
3/25 Time Tickets
3/29〜5/21 Phase I Registration
春学期中に夏学期の登録と同時に行うので要注意。2022年は夏学期と同じく3/28〜5/20のはず
8/13 Time Tickets - Phase II
8/14〜27 Phase II Registration
8/23 First Day of Classes
10/11〜12 Fall Break
12/9〜16 Final Exams
12/17 End of Term & Commencement
12/27〜12/31 Winter Break
入学準備
合格通知がきてオファーを承諾してしばらくすると、入学準備に関するメールが届く。卒業・成績証明書の原本提出はこのあたりで要求されるので、卒業した大学が電子証明に対応してない場合、厳封された原本を提出する必要がある。それ以外の手続きはすべてオンラインで非同期で完結する。入学式など、同期的に開催されるイベントはない。
Passportというサイトで連絡先などを登録し、生徒アカウント登録を済ませるとgatech.eduアドレスが得られる。BuzzPortという、Passportを含む各種サブシステムを一覧できるポータルにもアクセスできるようなる。履修登録を行うOSCAR、授業のマテリアルを確認するCanvas、Office 365などもまとまっていてブックマーク必須だ。
それらの説明を含めた合計2時間ほどのオリエンテーションの動画と、履修の登録方法や卒業要件などが詳細にまとめられた36ページのPDFを読んだらあとは履修計画だ。
2〜6年(標準3.5年)に渡る業務・学業、プライベートの両立はいろいろなことがあるというのを前提に、複数選択肢があることを理解した。2学期目以降は、事前に許可をとれば1学期に3コース履修も可能らしい。
オリエンテーションで紹介されるものではないが、どこかで見かけた「gatech.eduメアドとアカウントでO'Reilly Safari Ebooksを利用できる」という情報が本当だったのもうれしい。
履修計画
Spiring 2022で合格した生徒は、Spiring 2022のPhase II Registrationで履修登録ができる。既存の生徒がPhase I Registrationの後なので、必修科目を希望通り登録するのは難しそうだ。そのため、つぎの項目を念頭において履修登録バトルに勝利する必要がある。
専攻の必修科目、選択科目、自由科目と自分が学びたい科目を整理
1年で基礎科目2つをB評価以上で終えないと基礎科目以外を履修できない
基礎科目は専攻外でもよい
履修登録(のちにdrop、withdrawするのも含め)春と秋は2科目、夏は1科目がMAX
waitlist(登録できなかった人の待ち行列)の様子を見て、drop(履修登録期間中のキャンセル、成績表に載らない)やwithdraw(登録期間後撤退期間内のキャンセル、生成表にwとして載るし)を使い分ける
卒業要件は30時間(30 credits、10科目)GPA 3.0
専攻の要件は5〜6科目で、それ以外は自由科目
自由科目は6時間分CSとCSE以外からも選択できる
私はComputing Systemsを専攻する予定なので、専攻科目中心にオンラインで提供されているものを選択していく。つぎの作業をしながら整理する。
基礎科目に※をつける。
基礎科目かどうかはこのページで専攻を問わず確認できる。
現時点で受けたいと思っている科目を太字にする。
OMSCentral(授業口コミサイト)で週平均の負荷的にタイミングを選ぶものもありそうだ。
受けたい科目のうち、現時点でのwaitlistの人数を末尾に書く。
どのくらい人気科目か。waitlistの人数が多いものは1科目目として履修することは難しいし、履修したいタイミングではバトルが必要だ。
事前に受講したほうがよい授業などがあれば書く
コースの略称を覚える
redditなどでだいたい略称で言及されるので、マッピングしておくと楽そう。頭文字そのままっぽいが、略称から科目名を引きたい。
必修科目
CS 6515は必須で、他から2科目選択。それ以上履修する場合、Computing Systems専攻の選択科目に算入する。すべて基礎科目扱い。
CS 6515 ※ Introduction to Graduate Algorithms (GA) (必須) 881
CS 6210 ※ Advanced Operating Systems (AOS) 0
CS 6250 ※ Computer Networks (CN) 261
Python, TCP, UDP
CS 6290 ※ High-Performance Computer Architecture (HPCA) 0
C/C++
CS 6300 ※ Software Development Process (SDP) 651
OOP, Java (C++, C#), Team
CS 6400 ※ Database Systems Concepts and Design (DBS, DBSC) 0
PHP, Python, Java, Team
選択科目
3科目選択。すべて基礎科目扱い。
CS 6035 ※ Introduction to Information Security (IIS) 0
C, Python 3.x, HTML/JS/PHP, and SQL, GDB
CS 6200 ※ Graduate Introduction to Operating Systems (GIOS) 0
C, C++, GDB, GCC (or IDE)
CS 6238 ※ Secure Computer Systems (SCS) 0
C, Python
CS 6260 ※ Applied Cryptography (AC) 0
math
CS 6262 ※ Network Security (NS) 0
CS 6035
CS 6263 ※ Intro to Cyber Physical Systems Security (CPSS) 0
CS 6291 ※ Embedded Systems Optimization (ESO)
C, C++, Python
CS 6310 ※ Software Architecture and Design (SAD) 0
CS 6300, Java
CS 6340 ※ Software Analysis and Testing (SA, SAT) 0
C++, Readiness Assessment
CS 6675 ※ Advanced Internet Computing Systems and Applications (?) 113
CS 7210 ※ Distributed Computing (DIST?) 0
CS 6200, CS6210, or CS 6250
CS 7280 ※ Network Science (NSCI?) 0
calculus, probability, linear algebra, and programming
CSE 6220 ※ High-Performance Computing (HPC, IHPC)
CS 6515, C or C++
その他面白そうなもの
現在提供されてるコースリストで専攻外のコースも含めて一覧できる。ほぼすべて基礎科目扱い。
CSE 6250 ※ Big Data for Health Informatics
CX 4240, CS 4400, CX 4242, Scala, Python, and Java, ETL process
CS 6440 ※ Intro to Health Informatics
C++/C# or Java, JavaScript, SQL, R, Docker
ISYE 6669: Deterministic Optimization
CS 8803-O12 ※ Systems Issues in Cloud Computing (SIC?, SICC?) 0
CS 6210 with A grade
CS 8803 O08 ※ Compilers - Theory and Practice 0
Java or C++
改めて履修できる授業やそれらのシラバスを見返してみると、OS(とネットワーク)の基礎・応用とその発展に位置づけられる分散システムやクラウドコンピューティングの実装まわりの授業は楽しそうだ。終えられればエンジニアとして見える景色も、受験準備していた頃に想像していた以上に変わる期待がもてる。一方で、受講するのに必要な、受験で示したはずの「CS基礎学力」はかなり不足しているようにも感じた。
以上を踏まえ、つぎのような順序で履修していきたい。
CS 6310 Software Architecture and Design
(CS 6400 Database Systems Concepts and Design)
CS 6250 Computer Networks
CS 6340 Software Analysis and Testing
CS 6200 Graduate Introduction to Operating Systems
CS 6290 High-Performance Computer Architecture
CS 6210 Advanced Operating Systems
CS 6515 Introduction to Graduate Algorithms
CS 8803-O12 Systems Issues in Cloud Computing
CS 7210 Distributed Computing
(CS 6675 Advanced Internet Computing Systems and Applications)
CS 8803 O08 Compilers - Theory and Practice
希望通りに履修登録できなかった、夏学期に詰め込むには厳しすぎる、夏学期に開講していない、科目が消えた・増えた、興味が変わったなどいろいろあるだろう。平均週60時間のDistributed Computingや30時間のCloud ComputingやCompilersは現状の労働状況では履修不可能かタイミングを選ぶ必要がある。
また、C/C++経験がないのでどこかで時間をとらないといけないだろう。OS系の科目を多く履修していくにあたり、投資対効果が高いはずだ。
シラバスを眺めたり、つぎの情報も参考にしたりしながら調整していきたい。
感想
10科目という限られた選択肢の中で、何かの分野を深めたり、これまで経験のないものに触れて視野を広げたりするのを両立するのは思ったより難しそうだ。履修登録、週あたりの負荷など種々の制約もあるので、理想の計画を思い描いても偶然の出会いは起きざるを得ないのだろう。そういう意味では、上に挙げたCS7000台やCS8000台の科目履修(私自身が大学院でCSを学びたいと思った動機の核のような部分)を目指す方向性を持ちつつ、ある程度流れに身を委ねるとよさそうだ。
10科目はあくまで卒業要件なので、その後も履修しようと思えばできる選択肢(special/non-degree student)自体はあることも頭の片隅においておくとよさそうだ。3年半後にどういう状況で何を考えているかはわからない。
なにはともあれ最初の科目で一通り流れを理解しつつ、よい社会人大学院生生活を送っていきたい。