さて、今朝方(2023/8/5)届いたメールで衝撃の情報が。
今期取ろうとしていたOMSCSの大体の専攻で必修扱いのCS6515: Introduction to Graduate Algorithmsが既に満員とのこと。
なんということでしょう。
これは本格的に履修計画を立てていかないと詰むかもしれないということで、各授業の情報を整理することにした。
この記事は、2023.8.6に公開した記事をはてなブログから移行したものです。
ひとまずの前提
前提として、OMSCSの正規学生になるためには、FoundationコースをB以上の成績で2つ終える必要がある。
この仕組みはUoPeopleと同じだからわかりやすい。
だからどれだけ計画を立てたところで、しばらくはFoundationコースしか取れないことを念頭におく必要がある。
専攻
OMSCSには5つの専攻があり、このどれかを必ず選んで卒業要件を満たす必要がある。
ちなみに、専攻はいつでもどこでも変更できるため、途中で気が変わっても浮気しても全然OK。最終的に宣言した専攻の卒業要件を満たしていれば良いらしい。
選考一覧はこんな感じ(和訳はDeepl任せ)。
- Computational Perception and Robotics(計算知覚とロボット工学)
- Computing Systems(コンピューティング・システム)
- Human-Computer Interaction (人間とコンピュータの相互作用)
- Interactive Intelligence(対話型インテリジェンス)
- Machine Learning (機械学習)
わたしはこの中で2と3に興味がある。
正確に言うと、興味が2、仕事に活かせそうなのが3といったところ。いや逆かも。
世の流れ的には4や5に乗るべきだろうけど、わたしの数学力は弱々しいので恐らく無謀だし、興味もあまりない。
なのでここからは、2と3の要件を見ていく。
卒業要件
前提として、合算のGPA3.0以上かつ30単位パスすることで卒業できる。
Computing Systemは18単位が、Human-Computer Interactionは15単位が、それぞれ必修&選択必修&選択で、それ以外はどの専攻の科目も自由に選べる仕組みだそう。
それを踏まえ、各専攻の必修&選択必修&選択をひとまず列挙する(Foundationコースにあたるものは※)
Computing System
選択肢がめちゃ多い。
伝統的にCSが強い理由がここにありそう。
選択必修1
- CS 6505 Computability, Algorithms, and Complexity
- ※CS 6515 Introduction to Graduate Algorithms(満員)
選択必修2(この中から2科目選択、3科目目以降は選択としてカウント)
- ※CS 6210 Advanced Operating Systems
- CS 6241 Compiler Design
- ※CS 6250 Computer Networks
- ※CS 6290 High-Performance Computer Architecture
- ※CS 6300 Software Development Process(CS6301と被るのはNG、満員)
- CS 6301 Advanced Topics in Software Engineering(CS6300と被るのはNG)
- CS 6390 Programming Languages
- ※CS 6400 Database Systems Concepts and Designs
選択(3科目選択)
- ※CS 6035 Introduction to Information Security
- ※CS 6200 Graduate Introduction to Operating Systems
- CS 6220 Big Data Systems and Analytics
- CS 6235 Real Time Systems
- ※CS 6238 Secure Computer Systems
- ※CS 6260 Applied Cryptography
- ※CS 6262 Network Security
- ※CS 6263 Intro to Cyber Physical Systems Security
- ※CS 6291 Embedded Software Optimization
- ※CS 6310 Software Architecture and Design
- ※CS 6340 Software Analysis and Testing
- CS 6365 Introduction to Enterprise Computing
- CS 6422 Database System Implementation
- CS 6550 Design and Analysis of Algorithms
- ※CS 6675 Advanced Internet Computing Systems and Applications
- ※CS 7210 Distributed Computing
- CS 7260 Internetworking Architectures and Protocols
- CS 7270 Networked Applications and Services
- ※CS 7280 Network Science
- CS 7290 Advanced Topics in Microarchitecture
- CS 7292 Reliability and Security in Computer Architecture
- CS 7560 Theory of Cryptography
Human-Computer Interaction
こっちは選択肢がかなり少ないから、今回の履修登録で選べるのは4科目。わかりやすいけど、バトルは激しそうだ。
必修
- CS 6456 Principles of User Interface Software(CS7470と被るのはNG)
- ※CS 7470 Mobile and Ubiquitous Computing (CS6456と被るのはNG、満員)
- ※CS 6750 Human-Computer Interaction
選択(3科目)
グループ1(最低1科目)
- CS 6010 Principles of Design
- CS 6320 Software Requirements Analysis and Specification
- CS 6455 User Interface Design and Evaluation
- ※CS 6457 Video Game Design
- ※CS 6460 Educational Technology: Conceptual Foundations
- CS 6465 Computational Journalism
- CS 6470 Design of Online Communities
- ※CS 6795 Introduction to Cognitive Science(満員)
- CS 7465 Educational Technology: Design and Evaluation
- CS 7467 Computer-Supported Collaborative Learning
- CS 7790 Cognitive Modeling
グループ2(最低1科目)
- ※CS 6440 Introduction to Health Informatics
- CS 6730 Data Visualization: Principles & Applications
- CS 6763 Design of Design Environments
- CS 6770 Mixed Reality Experience Design
- CS 7450 Information Visualization
- CS 7451 Human-Centered Data Analysis
- CS 7460 Collaborative Computing
- ※CS 7470 Mobile and Ubiquitous Computing(満員)
授業の必須知識
ここからは、今期取れる可能性がある科目について、なんとなくの必須知識とか授業形態を列挙する。
Computing System
- CS 6210 Advanced Operating Systems(OS・ネットワーク・アーキテクチャの知識、グループワーク必須、Macチップ無理)
- CS 6250 Computer Networks(ネットワークの基礎知識、Python、Macチップ非推奨)
- CS 6290 High-Performance Computer Architecture(コンピュータアーキテクチャの知識、C/C++)
- CS 6400 Database Systems Concepts and Designs (PHP or Python or Java、グループワーク必須)
- CS 6035 Introduction to Information Security(離散数学、モジュラー数学、C、Python、Java、HTML/JS/PHP、SQL、Appleチップ非推奨)
- CS 6200 Graduate Introduction to Operating Systems(ハードウェア・ソフトウェアの基礎知識、Appleチップ無理、C/C++)
- CS 6238 Secure Computer Systems(学部レベルのOS知識、C、Python)
- CS 6260 Applied Cryptography(離散数学・計算理論・基礎アルゴリズム・確率論・モジュラー数学)
- CS 6262 Network Security(CS6035)
- CS 6263 Intro to Cyber Physical Systems Security(ネットワーク、情報セキュリティ)
- CS 6291 Embedded Software Optimization(学部レベルのコンピュータアーキテクチャ、C/C++、Python)
- CS 6310 Software Architecture and Design(CS6300、Java、グループワーク必須)
- CS 6340 Software Analysis and Testing(C++、unixコマンド、基礎的なCSと数学、Appleチップ非推奨)
- CS 6675 Advanced Internet Computing Systems and Applications(ネットワーク)
- CS 7210 Distributed Computing(CS6200、CS6210、CS6250)
- CS 7280 Network Science(微積、線形代数、確率、グループワークの情報なし)
出願段階でCSレベルの知識を提示したはずだけど、改めて調査すると「自分全然足りてないのでは?」という思いが強くなる。
学部を通ってないから覚悟の上ではあるけど、やっぱり不安になる。
ここには書いてないけど、要求されるPCのスペックが異常に高い科目もあるのでそこは注意。
Human-Computer Interaction
- CS 6750 Human-Computer Interaction(特になし、強いていうなら課題はほとんど文章書く系)
- CS 6457 Video Game Design(C#、Java、線形代数、コンピュータグラフィック、グループワーク必須)
- CS 6460 Educational Technology: Conceptual Foundations(グループワークありそう)
- CS 6440 Introduction to Health Informatics(Java、Python、Typescript、React、グループワークありそう)
Computing systemsと比べると、少し文系寄りというか、求められる技術レベルは比較的低い。
6457とか6440とか普通に面白そうだし、専攻をこちらにしなくても、どこかで取るのはアリだよなあ。
候補を決めた
上で列挙した情報の他に、負荷や残席数やPCのスペックを踏まえて、今回は下記コースを候補にして検討する。
ここからは、必要な事前知識と単純な興味、今期使いそうなPCが耐えうるスペックなのかを踏まえてさらに絞ろうと思っている。
- CS 6250 Computer Networks(確定でwaiting list入りになる)
- CS 6440 Introduction to Health Informatics確定でwaiting list入りになる)
- CS 6035 Introduction to Information Security(候補筆頭)
- CS 6457 Video Game Design
- CS 6263 Intro to Cyber Physical Systems Security
- CS 6340 Software Analysis and Testing
にほんブログ村