ロンドン大学World Class CS 2023春~2024春セメスター振り返り
だいぶん間が空いてしまいましたが1年分振り返っていきます
長らくブログを更新できていませんでしたが大学は続けてます!この間に取った 7 モジュールの振り返りと、大学の折返しを迎えた自分から、これからオンラインでの UoL CS BSc を検討する人へのアドバイスです。
2023 春~2024 春にとったモジュールたち
2023 春
2023 年春は転職準備を進めるため、1 モジュールだけの受講になりました。
Introduction to Programming II (CM1010)
正直あんまり覚えてません… ITP1 の延長という感じで 3 つのベースになる p5.js アプリの中から一つ選んで、それを拡張したプロジェクトを提出するモジュールでした。自分はペイントアプリの拡張を選びました。ITP1 同様試験ではなくプロジェクトでの採点です。 javascript に慣れていれば、そんなに苦戦するようなモジュールではないかなと思います。逆に新しく学んだことも少ない印象でした。
2023 秋
Fundamentals of Computer Science (CM1025)
コンピューターサイエンス入門のモジュールです。 前半は Descrete Math で触れた集合やブール代数の振り返りを行い、後半から集合の知識を元にオートマトン(DFA, NFA)、正規表現、チューリングマシンなどに拡張されていきます。 その他は分割統治法、ヒープ、マスター定理、安定マッチングなどのアルゴリズムに軽く触れました。 CS 知識をざらっと攫え、今のところ一番楽しめたモジュールでした。今ちゃんと覚えているかと言われると???ですが、地力がついた実感を持てました。
Software Design and Development (CM2010)
ソフトウェアデザインの基礎を学びます。Module complexity、凝集度、結合度、テスト、TDD、エラーハンドリング、バージョンコントロールが主なトピックです。 特にエンジニア経験がほぼなかった自分には勉強になったモジュールでした。
Computer Security (CM2025)
ネットワーク、OS の基礎、暗号、ブロックチェーン、セキュリティモデルを学びます。主に RSA の手計算方法と証明に時間がかかりました。 転職先が E2EE を使ったアプリケーションの会社のため、暗号関連は特に興味を持って取り組めました。
2024 春
Algorithms and Data Structures II(CM2035)
計算量とマスター定理の振り返り、Comparison sort と Non comparison sort、ハッシュと衝突の解決法、二分木とヒープ、グラフを学びます。ADS1 の延長も多かったので連続で取れるならその方が効率が良いように思います。 各トピックの最後に C++でのアルゴリズム実装が設けられていて、そこでグッと理解度が高まった印象です。
Databases, Networks and the Web (CM2040)
Node.js、SQL、テンプレートエンジンを使った動的 Web アプリケーションの基本を学びます。2024 年春に取った三つのモジュールでは一番簡単な印象でした。中間試験は WEB アプリ制作なので時間が取られます。ASP などプロジェクト採点のモジュールとは組み合わせない方が良いと思います。
Agile Software Projects (CM2020)
何でも良いのでアプリケーションを五人チームで作りながら、ソフトウェア開発手法の入門を学びます。中間ではプランのレポート、期末では実際に動くアプリを作ってその開発プロセスについてレポートで提出します。授業では主にプロジェクトマネジメントと市場研究、UX デザイン、アジャイル、テストについて触れられました。 Level4 の Web Development もそうでしたが、チームプロジェクトは完全にランダムでアサインされるため、メンバー次第で作業量も大幅に変わります。 このモジュールは不人気のあまりか 2025 年 3 月に別モジュールに入れ替わりますが、それも正直納得の内容でした。
一旦ここまでを振り返って
オンラインかつパートタイムでの大学はメリットもデメリットも大きいため、慎重に選んだほうがよいです。
自分の場合、“ドイツに住んでフルタイムで仕事をしつつ、でもいつドイツを離れるか分からない、なのでオンラインでCS学位を取れる大学”という特殊な条件で大学を探したため、UoLはほぼ唯一に近いベストな選択だったと今でも思います。 ただ正直なところ、もし日本に住んでいたなら、フルタイムの大学に思い切って入り直すことも有力な選択肢になっただろうなと思います。 同僚のフルタイム学生たちと話していて思ったのですが、大学は強制的に勉強”させられる”環境に加えて、個々が興味ドリブンで掘り下げられる時間と環境を提供することも、その役割として持っているのだなと。そしてこのような環境のサポートを受けながら、適切な幅と深さを持った知識や視点を得てゆくことが、大学で学ぶ大きなメリットの一つだと思うのです。パートタイムではどうしても時間が限られるので、良くも悪くも効率的に成績を取ることを優先せざるを得ません。またこれはあくまで主観ですが、UoLは課題・試験が全体的に弱く感じます。つまりフルタイム大学同等の学習結果を得るためには、相当に能動的かつ計画的な勉強が必要になるということです。そしてそれをできる力を既に持っているのなら、もはや独学でも良いはずです。
大学での勉強を選択する以上、決して安くはないコストと時間が掛かります。これからUoL CS BScを考えられる方は、何を得ることを目的とするのかを慎重に検討しましょう。