ロンドン大学World Class CS 2023春~2024春セメスター振り返り

ロンドン大学World Class CS 2023春~2024春セメスター振り返り

長らくブログを更新できていませんでしたが大学は続けてます!この間に取った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で得られたメリットとして、ドイツでのエンジニア転職についてもポストできればと考えています。最後まで読んでいただきありがとうございました。

About

元紅茶バイヤーのフロントエンドエンジニア見習い。
2022年4月から、オンラインでロンドン大学にてコンピューターサイエンスを学んでいます。
MarkdownからPDFを生成できるオンラインエディタをリリースしました。
markedPDF