ロンドン大学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 月に別モジュールに入れ替わりますが、それも正直納得の内容でした。

これまでを振り返って、これから UoL を検討する人へ

オンラインかつパートタイムでの大学はメリットもデメリットも大きいため、慎重に選んだほうがよいです! 自分の場合は、“ドイツに住んでフルタイムで仕事をしながら、オンライン+英語で CS 学位を取れる大学”という特殊な条件で大学を探したため、UoL はベストな選択だったと今でも思います。実際に UoL で勉強した内容や、勉強中であるということ自体が、ドイツでのエンジニア就職に繋がったのは間違いなく、恩恵は大きく受けています。 ただもし日本に住んでいたなら、フルタイムの大学に思い切って入ったほうが卒業までに蓄えられる知識は UoL と比べて大きくなってその後の選択肢にも幅が出るのかもと思います。パートタイムの大学では、まず限られた時間で効率良く授業を進めて良いグレードを取ることにまず集中せざるを得なく、興味を持ったトピックを掘り下げる時間が取れないことがままあります。結果モジュールを取り終わった後に同僚の Working student と比べて知識の浅さを実感することもありました。 また UoL はオンラインかつパートタイムでも卒業できるためか、課題や試験がリアルの大学と比べて弱く設定してあるように感じます。一般的に大学は興味ドリブンでの勉強に加えて、試験などで強制的に勉強させられることで、適度な幅と深さで知識を広げられることが利点の一つだと思います。UoL でももちろんその両輪は機能しますが、フルタイムと比べて時間に限りがあって掘り下げられる深さが浅くなること、加えて上記の通り強制力が弱いため、より能動的かつかなり計画的に勉強しないと知識幅も広がりづらいと感じます。

自分の場合、オンラインでの UoL + フルタイムリモートワークを経て、計画性と自制心が無くリアルが向いているということがわかりました。実際に今はフル出社の職場に転職して半年経って、明らかに仕事の効率は高まり、ペアプロや雑談を通して新しい知識に触れられる機会も大幅に増えているように感じます。恐らく大学もリアルのほうが向いているのでしょう。UoL の Goldsmith 校へのトランスファーはべらぼうに高いため難しいですが、もし修士まで取りたいとなればオンラインではなくリアルの大学院を選ぼうと考えています。

大学での勉強を選択する以上、決して安くはないコストと時間が掛かります。これから UoL CS BSc を考えられる方は、自分がどの環境に向いているか、何を優先するかを慎重に考えられるのが良いと思います。

UoL で得られたメリットとして、ドイツでのエンジニア転職についてもポストできればと考えています。最後まで読んでいただきありがとうございました。