学問としてのコンピュータサイエンスの範囲

アメリカの職場ではエンジニアの専門性が高いため、ドキュメントを残さなくても問題にならないという主旨の記事を読んだ。

note.com

アメリカにおけるエンジニアはコンピュータサイエンスを学んでいる(記事内では”出ている”という表現だったので学位を取得している)ため、実装のレベルが高く、読んでも分からないようなものは PR 時点で弾かれるとのこと。

記事は日本のソフトウェア業界においても専門性を重んじようと帰着している。

記事を読んで

コンピュータサイエンスを大学で専攻していなかった自分にとっては耳の痛い記事だった。

専攻してこなかったとはいえ大学でしか学べないような学問でもないし、理論なら実験器具も設備も要らないのでこれから体系的に学んでみても遅くないだろう。

しかしながら学問としてのコンピュータサイエンスが指す範囲が分からないと勉強のしようがない。

ということで一般的な大学におけるコンピュータサイエンスのカリキュラムを調べてみた。

学問としてのコンピュータサイエンスの範囲

日本における一般的な大学といえばやはり東京大学だろう。

東京大学理学部情報科学科のカリキュラムが公開されていた。

引用: 講義内容|東京大学 理学部情報科学科/大学院情報理工学系研究科コンピュータ科学専攻

講義の詳細は東京大学授業カタログで調べられる。

理論(緑部)は情報数学やアルゴリズムに始まり、基盤(青部)はアセンブリやディジタル回路といった懐かしい響きが並んでいる。学年が上がるとより具体的な理論や演習が増えていく。

とにかく日本最高峰の情報科学科のカリキュラムなのだからこれが学問としてのコンピュータサイエンスの範囲と捉えてもよいだろう。

冒頭の実装レベルを上げるという意味においては、オペレーティングシステム、計算機構成論、計算量理論、言語モデル論あたりを学んでおくとよいだろうか。