私はオレゴン州立大学のコンピュータサイエンスプログラムの半分以上を終了しているところです。 それは 15 科目の (少し) 厳しい試練で、私がフルタイムで働きながら四半期に 2 科目を取っているという事実によって、より厳しくなっています (例外として、この夏は結婚するための時間を作るために 1 科目だけでした 🙂)。 現在までに、以下のコースを受講した、または現在受講中である(順不同)。
- コンピュータサイエンス入門I
- コンピュータサイエンス入門II
- コンピュータサイエンスの離散構造
- データ構造
- Web開発
- データベース入門
- コンピュータアーキテクチャ&アセンブリ言語
- アルゴリズム解析
- オペレーティングシステム(現在進行中)
- ソフトウェア工学I(現在進行中)
。
そして目の前には以下の授業が待っています。
- Software Engineering II
- Introduction to Usability Engineering
- Intro to Computer Networks
- Mobile and Cloud Software Development
- Software Projects (Program Capstone)
異なる学習スタイル、異なる背景を持つ多様な学生グループに教えるために作られた他のプログラム同様、授業の質や難しさは様々です。 私の評価では、最も興味深いコースは、最も難しいコースでもありました。
Introduction to Computer Science II は、強力なプログラマーでない学生を排除するように設計されているようでした。 このコースは、オブジェクト指向のデザインパターンに焦点を当てながら、コードを書くことに重きを置いていました (C++ は OSU のプログラムで使用される主要言語であり、ここで大きく取り上げられました)。
Discrete Structures in Computer Science は、私の代数と証明を書く筋肉がそれほど錆びていなければ、おそらくより簡単だったでしょう。 しかし、一度ウォームアップすれば、このコースは帰納的推論の魅力的なエクササイズであり、集合とグラフの理論への確かな入門となります。 このコースは、このクラスで紹介される記号の種類を多用する人工知能に関連する分野を調査する際に、特に役立つことが証明されました。
コンピュータ・アーキテクチャ & アセンブリ言語は、旅に出ました。 C++では、ポインタやメモリ割り当てといった、ほとんどの言語が抽象化している概念を学ぶことができますが、アセンブリはそれとは異なるものです。 ここでは、CPU上でメモリを移動させることを学び、ループ、条件文、関数がどのように構築されるかを一から確認することができます。 また、すべてのCISCが採用しているフェッチ、デコード、実行のサイクルも紹介されています。 つまり、コンピュータとは何か、そして、私たちが当たり前のように行っている美しいことをどのように行っているのかを学ぶのです。
Analysis of Algorithms は、概念的には、このプログラムの中で最も難しいコースでした。 コンピュータサイエンス入門II」よりも作業量は軽かったのですが、極限や微分などを最後に見たのは大学時代でした。 微積分のブラッシュアップのために、週末はカーンアカデミーに通う日々が続きましたが、基本を押さえたら、あとは本番です。 このコースは、「単なる」プログラミングやソフトウェアの作成を超えた抽象的な考え方が求められるため、初めて「コンピュータサイエンティスト」であることを実感したコースでした。 このコースでは、Big-O記法やアルゴリズム分析、動的計画法、複雑性理論、グラフ理論とアルゴリズム、そして古典的な検索とソートのアルゴリズムに触れることができます。 コースの質自体には不満が残りますが、トピックは本当に美しいです。
他のコースはそれ自体「悪い」わけではありませんが、他のコースの厳密さや深さに欠けているか、あるいは構成や講義、コースワークがあまりにもお粗末で、気が散ってしまうような状態です。 とはいえ、各コースには興味深い内容のナゲットがあり、最も重要なのは、問題を解決し続けるという行為が、「開発者」、「エンジニア」、「コンピュータ科学者」(あるいは高速でビットを動かす人をどう呼ぼうとも)としての方法を学ぶ鍵になる、ということです。 次の3四半期で7つのコースを終了しますが、残りのコースワークの大部分(ユーザビリティエンジニアリング、ソフトウェアエンジニアリング、クラウドコンピューティング)はすべて私の得意とする分野です。 今年の8月には、オレゴン州立大学でC.S.の学士号を取得し、ジョージア工科大学のC.S.修士課程に進学する予定です。 このプログラムでの時間的な拘束は時にストレスになりますが、この経験は何物にも変えがたいものです
。