Software専攻の学部カリキュラム
こちら、mohikanz Advent Calendar 2018のオチです。
記憶も曖昧な大学時代を振り返りながら、ソフトウェアを専攻だった自分が大学でどんな科目を勉強したか、ダラダラと書き流す真面目なやつです。高学年になるほど不真面目になり評点も下がってたのでそのへんの注意を。
まだ高校生、もしくは大学でソフトウェアを勉強してないなどのエンジニアさんに参考になれば幸いです。
自分は日本の大学出身者ではないため、各教科目の該当する日本語名があるかわからないんで英語名で書いていきます。
Elementary
大体1年生のときやるやつ。
Caculus
微分積分。高校数学からちょっと上がって偏微分・重積分とか。一般物理の土台になる。油断したらいつもテストでダメになるやつ。
Physics
一般物理。多分理系の高校物理からそれほど変わってなかった覚え。角運動量とトルクくらい?実験の時変数が多くて結果出すのがめんどくさい。
Chemistry
一般化学。だいたい炭素化合物系と熱力学とエンタルピー・エントロピー中心だった覚え。実験が臭い。
Linear Algebra
線形代数。行列とかベクタースペースとか。嫌い。
Discrete Mathematics
離散数学。全然覚えてない。教授の雑談聞くのが楽しかった。
Numeric Analysis
パスした。
Data Structure系列
Data Structure
データ構造。ADT・O notation・List・Stack/Queue・Tree・Sort・Graph・Tableなどなど。個人的にプログラミングでアルゴリズムより重要だと思ってる。ジャバでやってた。これうまいやつはプログラミングもだいたいうまい。
File Processing
ファイル処理。データ構造の少し延長でファイルポインタとかそのへん。
Computer Algorithm
アルゴリズム。またO notation・Complexity・Sort・Memoization・Cryptographyなど。なんかいろいろ重要なんだけど、授業が英語だったからゲームしてた。Data Structureでも少々触れる。AIやるなら重要。
Database
教授がいやなやつだったからパスした。多分めっちゃ重要。
Practical Programming系列
実用プログラミング技術的ななにか
Object-Oriented Programming
みんな大好きなOOP。うちは理論も実技もC++やってた。
System Programming
カーネルとかSystem callとかPOSIXとか。教授がつまんなくてゲームしてた。副教材として何故かDesign Patterns指定。
Game Programming
パスしたけど、パフォーマンス系プログラミングの実用版。
Web Programming
通信講座でPHPやってたっけ。ゴニョゴニョしてたんで何も覚えてない。
Programming Language系列
Principles of Programming Languages
プログラミング言語論?パーシングとかパーシングとかパーシングとか。やっぱり教授がつまらない。
Compilers
コンパイラー。型とかパーシングとかパーシングとか。講師がちょっと可愛かった。
Infrastructure系列
ハードウェア・インフラアーキテクチャ的なやつ
Computer Architecture
1年生にやるコンピュータの基本的なやつ。C言語できれば試験受けてパスできたのでパスしてた。
Operating System
カーネルとかブートローダーとかシェルとかUNIX/BSD/Solarisとか
Embedded system
OSの実技で組み込み系。カーネルとブートローダーをRAM driveに乗っけて起動してパケット監視とかいろいろやってた。
Microprocessor
CPU構造とかAssembly語とかARMとか。テストでAssembly語を手書きで…
Etc.
Software Engineering
システム工学系。要件定義・分析・設計・実装・テスト・フィードバックそのへんの話。文系的なやつ。実装は俺に任せて!と言っといて最後に逃げればなんとかなる。
Computer Graphics
LinkとかVertexとか。寝てた。
Capstone Design
工学設計?歴的な設計理論とか聞いてで?ってなるやつ。寝てた。
Network・Security・Multimedia
専攻単位全部とったからパス
最後に
卒業できたのが奇跡のようだ…