プロフィール画像

Masaki Nishi
ソフトウェアエンジニア

ジョージア工科大学オンラインCS修士の履修計画をする【OMSCS】

ここをキャンプ地とすることにしたので提供コースを比較検討する

georgia-tech-computer-science

こんにちは、です。

ジョージア工科大学とテキサス大学オースティン校のコンピュータサイエンス修士オンラインプログラムに合格し、ジョージア工科大学の方に進学することにしたため、履修計画を立てることにしました。

選択する専攻分野

専攻分野は以下から選択する必要があります。

  • Computational Perception and Robotics
  • Computer Graphics
  • Computing Systems
  • Human-Computer Interaction
  • Interactive Intelligence
  • Machine Learning

私はネットワーク、セキュリティ、OS、システムデザイン、データベースあたりに興味を持っているため、Computing Systems専攻を想定しています。

コース名称のみで気になったコース

とりあえずコース名称だけ見て気になったコースをリストしてみました。前述の通り、主にネットワーク、セキュリティ、OS、システムデザイン、データベースあたりのコースを対象としています。

コード 略称 コース名 言語 セメスター コースカタログ シラバス 前提条件 コース内容 成績配分 コースレビュー 評価(5) 難易度(5) 作業量(h)
CS-6035 IIS Introduction to Information Security JavaScript All GT Official Syllabus 脅威分析、暗号技術、ソフトウェア脆弱性、OS保護、ネットワークセキュリティなどを学習し、プロジェクトを通じて実践的なセキュリティ技術やシステム防御方法を習得する。
  • 個人プロジェクト: 100%
Reviews 3.44 2.54 10.39
CS-6200 GIOS Graduate Introduction to Operating Systems C/C++ ALL GT Official Syllabus OSの抽象概念、並行性、同期、リソース管理、分散サービスなどを学習し、プロジェクトを通じて実践的なOS技術やシステム管理方法を習得する。
  • 個人プロジェクト: 45%
  • 試験: 50%
  • パーティシペーション: 5%
Reviews 4.36 3.68 18.43
CS-6210 AOS Advanced Operating Systems C/C++ Summer Break GT Official Syllabus OSの構造化、並列システムの同期・通信・スケジューリング、分散システム、障害管理、インターネット規模のシステム支援などを論文から学び、プロジェクトを通じて実践的なOS設計・実装技術を習得する。
  • Pre-lab: 2%
  • ホームワーク: 3%
  • 個人もしくはグループでのプロジェクト: 48%
  • パーティシペーション: 3%
  • 論文サマリー: 2%
  • 試験: 42%
Reviews 4.03 4.15 17.13
CS-6211 SDCC Special Topics: Systems Design for Cloud Computing C/C++ Summer Break GT Official Syllabus
  • CS6210でA評価推奨
クラウドコンピューティングインフラの各層(ソフトウェア定義ネットワーキング、システムソフトウェア、ネットワーク機能仮想化、アプリケーション開発)を開発するための実践的なプロジェクトを実施する。
  • 以下を満たしてAもしくはFの評価のみ
    • 同期クラスのセッションに70%参加する
    • 録画されたレッスン全て視聴
    • 毎週のクイズ
    • プロジェクトの完了と承認を得る
Reviews 4.63 4.56 28.25
CS-6238 SCS Secure Computer Systems C/C++ ALL GT Official Syllabus
  • 前提コースなし
  • 学部レベルのOSコース推奨
コンピュータシステムのセキュリティ設計原則、認証、アクセス制御と認可、任意および強制セキュリティポリシー、セキュアカーネル設計、セキュアデータベースなどを学び、プロジェクトを通じて実践的なセキュリティシステム設計・実装技術を習得する。
  • クイズ: 20%
  • 個人プロジェクト: 20%
  • 試験: 60%
Reviews 2.97 3.55 15.47
CS-6250 CN Computer Networks Python ALL GT Official Syllabus
  • 前提コースなし
  • 学部レベルのネットワーク・Pythonプログラミング知識
コンピュータネットワークの基本原則と実践を学び、インターネットプロトコルスタックの全レイヤーにわたるプロトコルとアルゴリズムを幅広くカバーする。プロジェクトを通じて、ルーティング、ソフトウェア定義ネットワーキング(SDN)、BGPハイジャック、インターネット測定などの実践的なスキルを習得する。
  • 個人プロジェクト: 60%
  • 試験: 30%
  • クイズ: 10%
Reviews 3.49 2.43 8.93
CS-6262 NetSec Network Security Various ALL GT Official Syllabus CS6035または同等コースを推奨 ネットワークセキュリティの設計原則と実践を学び、認証、整合性、機密性、プライバシー、情報隠蔽、デジタルウォーターマーキング、アクセス制御、ファイアウォール、侵入検知システム(IDS)などのトピックを幅広くカバーする。プロジェクトを通じて、ペネトレーションテスト、マルウェア分析、ネットワークトラフィック分析、機械学習を用いたセキュリティ対策などの実践的なスキルを習得する。
  • クイズ: 10%
  • 個人プロジェクト: 80%
  • 試験: 10%
Reviews 3.19 3.00 12.71
CS-6264 SND Information Security Lab: System and Network Defenses Various Spring Break GT Official Syllabus
  • 前提コースなし
  • 情報セキュリティの基本概念の理解をしている必要がある
  • 理想的にはCS6262の受講
  • CまたはJavaでのプログラミング経験
ソフトウェアセキュリティ、マルウェア分析、ネットワークセキュリティ、ウェブセキュリティ、モバイルセキュリティ、機械学習を用いたセキュリティ対策など、幅広いサイバーセキュリティ分野を学ぶ。実践的なプロジェクトを通じて、ペネトレーションテストやネットワークトラフィック分析などのスキルを習得する。
  • クイズ: 10%
  • 個人プロジェクト: 80%
  • 試験: 10%
Reviews 3.17 3.83 19.17
CS-6290 HPCA High-Performance Computer Architecture C/C++ ALL GT Official Syllabus
  • 前提コースなし
  • 学部レベルのコンピュータアーキテクチャコースを推奨
  • 命令セット、パイプラインなどの実用的な知識推奨
  • C++とLinuxに精通し、大規模なプログラムを改修できる自信がある
現代のコンピュータアーキテクチャに関する主要な概念を学び、分岐予測、アウトオブオーダー実行、キャッシュ最適化、多層キャッシュ、メモリ・ストレージ、キャッシュコヒーレンス、マルチコアプロセッサなどを包括的に扱う。プロジェクトでは、プロセッサシミュレータの修正やパフォーマンス指標の収集、アーキテクチャ機能の実装を通じて、実践的なスキルを習得し、システムの性能向上に寄与する技術を身につける。
  • 個人とグループプロジェクト: 50%
  • 試験: 50%
Reviews 3.82 3.65 15.41
CS-6300 SDP Software Development Process Java ALL GT Official Syllabus
  • 前提コースなし
  • Javaの基本知識
  • 学部レベルのソフトウェアエンジニアリングコース推奨
  • または業界経験
ソフトウェアシステムの開発プロセスを包括的に学ぶ。実際の製品開発におけるソフトウェアプロセスの使用方法、ソフトウェア品質を確保する技術、ソフトウェアの進化に伴うメンテナンス作業などを扱う。学生は厳格なプロセスからアジャイルプロセスまで、さまざまなソフトウェアプロセスを体験し、現代の技術や開発手法とソフトウェアプロセスとの関連性を理解する。
  • アサインメント: 44%
  • グループプロジェクト: 18%
  • 個人プロジェクト: 25%
  • コラボレーション: 10%
  • パーティシペーション: 3%
Reviews 3.56 2.32 9.07
CS-6310 SAD Software Architecture and Design Java ALL GT Official Syllabus
  • 前提コースなし
  • 学部レベルのソフトウェアエンジニアリングコースもしくはCS6300の受講を推奨
  • もしくは実務経験
  • Javaプログラミング、OOPの知識必須
大規模ソフトウェアシステムの分析と設計に必要な原則と概念を学ぶプロジェクトベースのコース。オブジェクト指向設計技術、UMLによる設計表現、設計パターン、アーキテクチャスタイルの選択と評価などをカバーする。学生はフルスタックウェブサイト開発プロジェクトを通じて、実践的な設計と実装のスキルを習得し、チームでの協働やソフトウェアアーキテクチャの評価能力を高める。
  • 1000ptスケール
    • アサインメント: 875pt
    • クイズ: 15pt
    • パーティシペーション: 10pt
    • グループアサインメントへの貢献: 100pt
Reviews 2.95 2.61 11.87
CS-6340 SAT Advanced Topics in Software Analysis and Testing Multiple ALL GT Official Syllabus 静的および動的なプログラム分析技術とソフトウェアテストの原則を学ぶプロジェクトベースのコース。データフロー分析、型システム、シンボリック実行などを通じて、ソフトウェアの正確性を評価しバグを発見するスキルを習得する。実践的な分析ツールを用いたプロジェクトを通じて、現実世界の複雑なプログラムに対する分析能力とソフトウェア信頼性向上の技術を高める。
  • ラボ: 60%
  • 試験: 20%
  • クイズ・サーベイ・パーティシペーション: 20%
Reviews 3.55 3.22 12.69
CS-6400 DBS Database Systems Concepts and Design SQL ALL GT Official Syllabus
  • 前提コースなし
  • PHP、Python、Java などのスクリプト言語またはプログラミング言語を少なくとも1つ理解
  • ソフトウェア エンジニアリングの概念と Git/ソース管理に関する知識
データベースシステムの基本概念と設計を学ぶコース。リレーショナルモデル、リレーショナル代数、SQL、データベース正規化、効率化、インデックス作成などを包括的にカバーする。プロジェクトを通じて、チームでのデータベースアプリケーション開発手法を実践的に習得し、フルスタック開発のスキルも向上させる。
  • グループプロジェクト: 35%
  • 試験: 50%
  • パーティシペーション: 15%
Reviews 2.58 2.88 11.24
CS-6422 DBI Database System Implementation C++ N/A(2025 Springから提供 GT Official Syllabus
  • 前提コースなし
  • 学部レベルのデータ構造とアルゴリズムやコンピュータ システムとネットワークなどのコースの修了
  • オペレーティング システムと入門データベース システムに精通していること
  • C++に習熟していること
  • システムプログラミングの経験
リレーショナルデータベース管理システムの設計と実装に特化した実践的なコース。ストレージ管理、インデックス構造、クエリ実行の内部メカニズムを深く学び、C++を用いて完全なデータベースを構築する。プログラミング課題を通じて、スロッティッドページやB+ツリーなどの高度な技術を適用し、複雑なSQLクエリの解析と実行技術を習得。実際のプロジェクトに取り組むことで、現実世界の課題に対応する実践的なスキルを身につける。
  • 試験: 50%
  • アサインメント: 20%
  • エクササイズシート: 15%
  • パーティシペーション: 15%
N/A N/A N/A N/A
CS-6423 N/A Adv Database Systems N/A N/A(DBIの後続として提供予定 GT Official(仮) Syllabus(仮)
  • 前提コースなし
  • CS6422の前提条件を推奨
  • CS6422受講を推奨
現代のデータベース管理システムの設計と実装に関する高度なトピックを学ぶコースである。クエリ最適化、並行制御、ログ記録とリカバリ手法、クエリコンパイル、最新ハードウェアの活用などを網羅。C++を用いて実践的なプログラミング課題を通じて、効率的かつ正確なDBMSコンポーネントの構築技術を習得。プロジェクトでは、実世界の課題に対応するデータベースシステムの開発経験を積む。
  • アサインメント: 35%
  • エクササイズシート: 15%
  • 試験: 30%
  • パーティシペーション: 10%
  • 余り: 10%
N/A N/A N/A N/A
CS-6515-o01 GA Introduction to Graduate Algorithms English ALL GT Official Syllabus
  • 前提コースなし
  • 学部レベルのアルゴリズム・離散数学の知識
  • 特に、DFS、BFS、ダイクストラの最短経路アルゴリズムなどの基本的なグラフ アルゴリズム、および基本的な動的プログラミングと分割統治アルゴリズム
  • アルゴリズムの漸近的実行時間の分析
動的計画法、分割統治法(FFT含む)、ランダム化アルゴリズム(RSA暗号システム含む)、グラフアルゴリズム、最大流アルゴリズム、線形計画法、NP完全性理論など、基礎から応用まで幅広いトピックを網羅。プログラミング課題を通じて、これらのアルゴリズムを実装し、効率的かつ正確な問題解決能力を養う。プロジェクトでは、複雑なアルゴリズムの設計・解析を行い、実践的なスキルを深化させる。
  • アサインメント: 25%
  • クイズ: 15%
  • 試験: 60%
Reviews 3.32 4.05 19.13
CS-6675 AICSA Advanced Internet Computing Systems and Applications English ALL GT Official Syllabus
  • 前提コースなし
  • コンピューティングと通信ネットワークの知識
クラウドコンピューティング、ピアツーピア、ブロックチェーン、モバイル・エッジコンピューティング、ビッグデータなど八つの主要分野を包括的に扱う。プロジェクトでは、これらの技術の基本概念、設計原則、システム最適化技術を実践的に習得し、革新的なインターネットサービスの開発や研究を行う。
  • アサインメント: 40%
  • 試験: 30%
  • 個人プロジェクト: 20%
  • パーティシペーション: 10%
Reviews 3.17 2.75 13.00
CS-7210 DC Distributed Computing Various Summer Break GT Official Syllabus
  • 前提コースなし
  • CS6200、CS6210、またはCS6250で得られるような、コンピュータ システムやコンピュータ ネットワークに関する大学院レベルの知識
分散システムの基礎概念と設計技術を学ぶコース。グローバルステート、論理クロック、障害モデルなどの基本概念を深く理解する。分散アルゴリズムの理論を学び、DSLabsフレームワークを用いてキー・バリュー・ストアやPaxosコンセンサスなどの分散システムコンポーネントを実装するプロジェクトを通じて、実践的なスキルを習得する。
  • アサインメント:55%
  • 試験: 40%
  • パーティシペーション: 5%
Reviews 3.24 4.64 51.51
CS-8803-O08 Compiler Special Topics: Compilers – Theory and Practice Various ALL GT Official Syllabus
  • 前提コースなし
  • データ構造とアルゴリズムに関する十分な知識
  • れたプログラミング スキル
  • Java または C++ で大規模なソフトウェアを作成する能力
  • Linux 環境で作業できる能力
高水準プログラミング言語用コンパイラの理論と実践を学ぶコース。プロジェクトを通じて、JavaまたはC++でスキャナ、パーサ生成、中間表現の生成、MIPSアセンブリの生成など、コンパイラの主要フェーズを一から実装する。さらに、最適化技術やレジスタ割り当ての手法を習得し、実際のコンパイラ設計の深い理解を得る。
  • アサインメント: 28%
  • 個人プロジェクト: 37%
  • 試験: 35%
Reviews 4.13 4.65 28.78
CSE-6220 HPC High Performance Computing C/C++ ALL GT Official Syllabus
  • 前提コースなし
  • CS 6515または学部アルゴリズムコース推奨
  • CやC++などの「低レベル」または「高レベル」言語でのプログラミング経験がある
  • *nix環境(Unix、Linuxなど)でのCLIの使用経験がある
  • course readiness survey
スケーラブルな並列アルゴリズム設計と分析を中心に、マルチコア、分散メモリ、深いメモリ階層を持つシステムで効率的に動作するアルゴリズムを構築するための基礎技術を習得する。講義では、並列計算の基本原理や計算モデルを扱い、ソート、グラフ探索、線形代数などの応用を学ぶ。プロジェクトでは、OpenMP、MPI、CUDAなどを用いて並列アルゴリズムを実装し、GTスーパークラスタ上で実行する。これにより、理論を実践に移すプロセスを経験し、実世界のHPC環境で効率を最大化する方法を習得する。
  • ラボ: 65%
  • 試験: 35%
Reviews 4.14 4.31 21.02

評判を加味してコース選定

上記リストから、レビューサイトの評価内容を加味して以下のコースを選定しました。

# コード 略称 コース名 評価(5) 難易度(5) 作業量(h)
1 CS-6211 SDCC Special Topics: Systems Design for Cloud Computing 4.63 4.56 28.25
2 CS-6200 GIOS Graduate Introduction to Operating Systems 4.36 3.68 18.43
3 CSE-6220 HPC High Performance Computing 4.14 4.31 21.02
4 CS-8803-O08 Compiler Special Topics: Compilers – Theory and Practice 4.13 4.65 28.78
5 CS-6210 AOS Advanced Operating Systems 4.03 4.15 17.13
6 CS-6290 HPCA High-Performance Computer Architecture 3.82 3.65 15.41
7 CS-6340 SAT Advanced Topics in Software Analysis and Testing 3.55 3.22 12.69
8 CS-6250 CN Computer Networks 3.49 2.43 8.93
9 CS-6035 IIS Introduction to Information Security 3.44 2.54 10.39
10 CS-6515-o01 GA Introduction to Graduate Algorithms 3.32 4.05 19.13
11 CS-7210 DC Distributed Computing 3.24 4.64 51.51
12 CS-6262 NetSec Network Security 3.19 3.00 12.71
13 CS-6422 DBI Database System Implementation N/A N/A N/A
14 CS-6423 N/A Adv Database Systems N/A N/A N/A

卒業要件は下記の通り、CoreとElectives、Free Electivesに該当するコースをそれぞれ必要数受講し、合計10コース修了する必要があります。このリストに含まれるコースを組み合わせることで、卒業要件を満たすことができそうです。

  • Core1(1つ選択)
    • 10
  • Core2(2つ選択)
    • 5, 6, 8
  • Electives(3つ選択)
    • 1, 2, 3, 4, 7, 9, 11, 12, 13, 14?
  • Free Electives(4つ選択)
    • 全て該当

ただ、現状でも合計14コースあるため、優先順位をつけて10コースに絞る必要があります。本当に興味があれば、余った4コースも卒業後に受講することができるため、優先順位で受講して良さそうです。

CS-6211 – SDCC – Special Topics: Systems Design for Cloud Computing

AWSやAzureのようなクラウドサービスを使ってシステムを構築するようなブートキャンプ的な要素に加えて、クラウドサービス自体がどのような技術で実装されているかを学習するコースのようです。

プロジェクトでは、SDNやNFVをトピックとして扱い、ネットワークのオーケストレーションを自前で実装したり、最終的にAzure上にアプリケーションを構築するそうです。

AWSで働いていましたが、専門的に担当していたサービスの全体的なアーキテクチャや一部のコードベースを理解している程度なので、より広く体系的に学んでみたい気持ちがあって気になっています。

コーストピックの難解さよりも、プロジェクト作業に時間が掛かる想定で、OMSCSの中でもワークロードの多い授業となっています。また、同期的なセッションに参加することがコース合格の必須条件となっており、日本から受講するには辛い可能性がありそうです。

CS-6200 – GIOS – Graduate Introduction to Operating Systems

包括的にOSの機能を学習し、C言語でネットワーク経由でのファイル転送、IPCを使用したプロセス間でのファイル転送、分散ファイルシステムを実装するプロジェクトベースのコースです。

プロジェクトに時間がかかる上に、成績の半分を占める試験も相応に難しく、ワークロードも多いですが、評判はとても良いです。

全エンジニアにおすすめできるらしいので、多分受講します。

CSE-6220 – HPC – High Performance Computing

分散システム上の並列アルゴリズムを学習し、OMP、MPI、CUDA を使用して並列および分散コンピューティングのプロジェクトを実施するコースです。

このコースもワークロードが多く、試験が難しいらしいですが、評判はとても良いです。

これも積極的に受講したい。

CS-8803-O08 – Compiler – Special Topics: Compilers – Theory and Practice

コンパイラのフロントエンド、ミドルエンド、バックエンドの理論に触れ、プロジェクトではコンパイラをゼロから構築するコースです。

コンパイラはC++でも実装できるようですが、バグが多くJavaを推奨していたり、最終的には構築したコンパイラが約9000行ほどになったというレビューがありました。

「Advanced Topics in Software Analysis and Testing」でもコンパイラに触れるらしいので、興味が出たら受講を考えます。

CS-6210 – AOS – Advanced Operating Systems

OSそのものというよりも、OSを使用した並列システム、分散システムに関する内容を扱い、KVMでの仮想マシンのスケジューリングやバリア同期、gRPCを使用した分散サービス、MapReduceフレームワークの実装などのプロジェクトを行うコースです。

システム設計の変遷などを学ぶコースで、システム分析・システム設計のコースだというレビューがそこそこありました。

システム設計のコースで評判が良いコースが少ないのと、「Special Topics: Systems Design for Cloud Computing」と「Distributed Computing」のコース準備としてとても良いらしいので、受講を考えています。

CS-6290 – HPCA – High-Performance Computer Architecture

コンピュータアーキテクチャの包括的な内容、CPUパイプライン、分岐予測、コンパイラILP最適化、仮想メモリ、キャッシュ、メモリ、フォールト トレランス、コヒーレンス、同期ハードウェアサポート、マルチコアシステムなどのトピックに触れることができるコースです。

プロジェクトは簡単であまり学ぶことはなく、論文などの外部ソースを読む必要はなく、基本的には講義を視聴していれば良いというようなレビューでした。

唯一のハードウェア領域のコースで興味を持っていますが、優先度は低いかもしれないです。

CS-6340 – SAT – Advanced Topics in Software Analysis and Testing

コース名とは違い、ソフトウェア分析理論とLLVMを組み合わせた内容で、さまざまな静的および動的分析手法について扱うコースです。プロジェクトはFuzzing(LLVM)、Dataflow(LLVM)、Datalog(LLVM + Z3)、Type Systems(TypeScript)、Cooperative Bug Isolation(LLVM)、Delta Debugging(Java)、KLEE(C + KLEE)などに触れます。

ワークロードは軽めで、「Compiler – Special Topics: Compilers – Theory and Practice」の前段としては良さそうなコースです。

DevOps系の内容を期待していましたが、実務に直結する内容ではなさそうでした。コンパイラ設計とか自動テスト技術の中身を知りたいなら良さそうです。コンパイラに興味が出てきたら受講する予定です。

CS-6250 – CN – Computer Networks

大学院レベルのコンピュータネットワーク入門コースで、OSIモデル、一般的なインターネットプロトコル、ドメインルーティングとルーターアーキテクチャ、ソフトウェア定義ネットワーク、コンテンツ配信ネットワーク、BGP、およびセキュリティについて学習するコースです。プロジェクトはスパニングツリープロトコル、SDNファイアウォール、BGPハイジャック、BGP測定、および距離ベクトルルーティングといった内容です。

ワークロードは少なく、トピックも学部レベルというレビューがありました。

学部の時にネットワークのコース評判が悪く避けてきたので、ここで受講したいです。

CS-6035 – IIS – Introduction to Information Security

大学院レベルのセキュリティ入門コースで、セキュリティ全般というよりはウェブ系のセキュリティが中心となっているコースです。プロジェクトのみで評価される唯一のコースで、Man in the Middle、Database Security、Malware Analysis、Api Security、RSA Cryptography、Binary Exploitation、Log4Shellといった内容のプロジェクトを実施します。

こちらもワークロードが少なく難易度が低めのため、入門として良さそうです。

学部でセキュリティのコースを受講していないので、こちらも受講したいです。

CS-6515-o01 – GA – Introduction to Graduate Algorithms

卒業要件のために必須の授業で、 動的計画法、分割統治法、高速フーリエ変換、RSA、グラフアルゴリズム、最大フロー問題、線形計画法、P vs NPなどを扱うコースです。プロジェクトの他に、アサインメントで数学的な証明を行う必要があり、アルゴリズムを英文で説明する必要があるそうです。

教授とTAの評判がすこぶる悪いです。また、半数以上がB評価以下で落第するそうです。

必須なので受講します。アルゴリズムは個人的に好きなので問題なさそうという所感です。

CS-7210 – DC – Distributed Computing

論理時計、一貫性、レプリケーション、 分散合意などのトピックに触れ、Amazon Auroraなど流行のクラウドが採用しているアーキテクチャに関する議論などがあるコースです。プロジェクトでは、分散KVSや分散トランザクション、分散システムにおける非同期メッセージ配信など、分散システムの重要なコンポーネントや概念を実装するようです。

ワークロードがずば抜けて多く、学生向けではなく経験豊富なエンジニア向けというレビューが多いです。特にプロジェクトのテストケースが厳密であり、エッジケースをパスするのに時間がかかるそうです。

間違いなく勉強になりそうですが、50時間/週以上を仕事と並行するのはかなり厳しそうという所感です。コースレビューが信用できるか確認して、余裕がありそうであれば受講を検討します。

CS-6262 – NetSec- Network Security

認証、整合性、機密性、プライバシー、情報隠蔽、デジタルウォーターマーキング、アクセス制御、ファイアウォール、侵入検知システム(IDS)など、幅広いセキュリティ関連のトピックをカバーするコースです。プロジェクトは、侵入テストやウェブ攻撃、マルウェア分析、ネットワークトラフィック分析、MLセキュリティなどのトピックを扱います。

クイズや試験の問題が曖昧というところで評価は低くなってますが、プロジェクト自体は楽しいらしいです。成績配分はプロジェクトに比重を置いているので、悪くなさそうという所感です。

ネットワークとセキュリティの両軸を学べそうなので、受講を考えています。

CS-6422 – DBI – Database System Implementation

RedditのFeedback on a new OMSCS course on building database systems (Spring 2025)で記載されてますが、データベースの新しいコースだそうです。今現在唯一存在しているデータベースのコースの評判が最低レベルに低いので、新しく検討されているコースです。

このコースでは、ストレージ管理、インデックス構造、クエリ実行などのトピックを掘り下げ、 C++に重点を置いて学習し、BuzzDBを基盤として、教育用データベースシステムをゼロから段階的に構築するそうです。

プロジェクトは、マルチスレッドバッファマネージャやディスク上のB+Tree、クエリ実行エンジンなどのトピックを扱います。

個人的にデータベースは重点的に学びたかったので、Spring 2025の入学時に受講するか、初学期は受講を避けて様子見するかのどちらかになると思います。

CS-6423 – N/A – Adv Database Systems

上記に加えて、後続のデータベースコースとして開講される予定です。ログ記録とリカバリ、同時実行制御、クエリ最適化など、データベースシステムの実装に関する高度なトピックを扱う予定だそうです。

卒業までに開講されたら受講したいです。

受講順序

以下を考慮して最終的な受講順序を決定します。

  • 受講確度が高いコース
  • コースの人気度(満席率)
  • コース依存関係

受講確度が高いコース

  1. Tier1
    1. CS-6035 – IIS – Introduction to Information Security
    2. CS-6200 – GIOS – Graduate Introduction to Operating Systems
    3. CS-6210 – AOS – Advanced Operating Systems
    4. CS-6250 – CN – Computer Networks
    5. CS-6422 – DBI – Database System Implementation
    6. CS-6423 – N/A – Adv Database Systems
    7. CS-6515-o01 – GA – Introduction to Graduate Algorithms
  2. Tier2(その他必要に応じて選択するコース)
    1. CS-6211 – SDCC – Special Topics: Systems Design for Cloud Computing
    2. CSE-6220 – HPC – High Performance Computing
    3. CS-6262 – NetSec- Network Security
    4. CS-6290 – HPCA – High-Performance Computer Architecture
    5. CS-6340 – SAT – Advanced Topics in Software Analysis and Testing
    6. CS-7210 – DC – Distributed Computing
    7. CS-8803-O08 – Compiler – Special Topics: Compilers – Theory and Practice

コースの人気度(満席率)

omscs.rocksでコースの満席率を確認することができます。

なお、卒業に近い学生の方がクラス登録で優先されるという仕組みのため、入学直後では人気のクラスを受講することは難しいです。

そのため、満席率100%以上のものは最初の学期で受講することは難しいということになります。

  1. Tier1
    1. 40% – CS-6035 – IIS – Introduction to Information Security
    2. 79% – CS-6200 – GIOS – Graduate Introduction to Operating Systems
    3. 74% – CS-6210 – AOS – Advanced Operating Systems
    4. 149% – CS-6250 – CN – Computer Networks
    5. N/A – CS-6422 – DBI – Database System Implementation
    6. N/A – CS-6423 – N/A – Adv Database Systems
    7. 433% – CS-6515-o01 – GA – Introduction to Graduate Algorithms
  2. Tier2
    1. 60% – CS-6211 – SDCC – Special Topics: Systems Design for Cloud Computing
    2. 57% – CSE-6220 – HPC – High Performance Computing
    3. 59% – CS-6262 – NetSec- Network Security
    4. 62% – CS-6290 – HPCA – High-Performance Computer Architecture
    5. 61% – CS-6340 – SAT – Advanced Topics in Software Analysis and Testing
    6. 69% – CS-7210 – DC – Distributed Computing
    7. 41% – CS-8803-O08 – Compiler – Special Topics: Compilers – Theory and Practice

コース依存関係

OMSCSでは全てのクラスで必須の前提講義がなく、推奨条件となります。また、推奨条件になくても、コースレビューの内容から適切な依存関係を策定しました。

トップレベルのコースが下位レベルコースの依存コースとなります。

  • CS-6035 – IIS – Introduction to Information Security + CS-6250 – CN – Computer Networks
    • CS-6262 – NetSec- Network Security
  • CS-6200 – GIOS – Graduate Introduction to Operating Systems
    • CS-6210 – AOS – Advanced Operating Systems + CS-6250 – CN – Computer Networks
      • CS-6211 – SDCC – Special Topics: Systems Design for Cloud Computing
      • CS-7210 – DC – Distributed Computing
  • CS-6290 – HPCA – High-Performance Computer Architecture
  • CS-6340 – SAT – Advanced Topics in Software Analysis and Testing + CS-6515-o01 – GA – Introduction to Graduate Algorithms
    • CS-8803-O08 – Compiler – Special Topics: Compilers – Theory and Practice
  • CS-6422 – DBI – Database System Implementation
    • CS-6423 – N/A – Adv Database Systems
  • CS-6200 – GIOS – Graduate Introduction to Operating Systems + CS-6515-o01 – GA – Introduction to Graduate Algorithms
    • CSE-6220 – HPC – High Performance Computing

最終履修計画

夏は短縮学期のため、開講されてないコースがあります。また、ワークロードの多いコースを短縮学期で受講すると負荷がより高くなるため、夏学期では負荷の少ないコースを受講することが推奨されます。

上記を考慮して以下の履修計画とします。

なお、プライベートでの負荷やコースでの実際の負荷を考慮し、柔軟に2年計画と3年計画を切り替えていこうと思います。

2年計画

  • 2025
    • Spring
      • CS-6200 – GIOS – Graduate Introduction to Operating Systems
      • CS-6250 – CN – Computer Networks
      • 予備:CS-6035 – IIS – Introduction to Information Security
    • Summer
      • CS-6422 – DBI – Database System Implementation
    • Fall
      • CS-6210 – AOS – Advanced Operating Systems
      • CS-6035 – IIS – Introduction to Information Security
      • 予備:CS-6250 – CN – Computer Networks
  • 2026
    • Spring
      • CS-6262 – NetSec- Network Security
      • CS-6423 – N/A – Adv Database Systems
    • Summer
      • CS-6515-o01 – GA – Introduction to Graduate Algorithms
    • Fall
      • Tier2
      • Tier2

3年計画

  • 2025
    • Spring
      • CS-6200 – GIOS – Graduate Introduction to Operating Systems
    • Summer
      • CS-6035 – IIS – Introduction to Information Security
    • Fall
      • CS-6210 – AOS – Advanced Operating Systems
  • 2026
    • Spring
      • CS-6422 – DBI – Database System Implementation
    • Summer
      • CS-6250 – CN – Computer Networks
    • Fall
      • CS-6423 – N/A – Adv Database Systems
  • 2027
    • Spring
      • CS-6515-o01 – GA – Introduction to Graduate Algorithms
    • Summer
      • Tier2
    • Fall
      • Tier2
  • 2028
    • Spring
      • Tier2

まとめ

ここまで履修計画しておいて言いにくいのですが、これまでの経験から当初の履修計画が上手くいくことはないと思っているので、最終的にはだいぶ違った履修結果になると思います。

後々履修計画を変更する場合でも、あらかじめリサーチしておいた内容が無駄になることはないので、柔軟に考えようと思います。

余談ですが、オレゴン州がクォーター制だったことから、春学期は4月からという先入観があり、ジョージア工科大学も4月から始まると高を括っていたら、1月初旬からクラス開始ということで大変焦っています。

履修計画をしている明日にはクラス登録が始まるということで大忙しです。先行きが危ぶまれますね…。

シェアする

プロフィール画像

Masaki Nishi

サンフランシスコ・シリコンバレーでのインターンや外資SIer、メガベンチャーでのエンジニアを経験後、現在はAmazon Web Servicesに勤務。

詳細プロフィール