見出し画像

UoPeopleでCS3303を履修した感想

※2022年8月時点の情報です。

UoPeopleでCS3303 Data Structures(データ構造)を履修した感想文です。すでにUoPeopleに入学済みで、今後同講義を受講する予定の方を想定読者としているため、UoPeopleのシステムや独自用語の説明などは割愛しています。

講義内容

範囲

詳細は公式ページにあるとおりですが、CS1103で学んだアルゴリズムの復習とそれらのアルゴリズムの漸近解析をひたすら行っていました。

PrerequisitesはCS1103のみとなっていますが、MATH1302(離散数学)MATH1201(大学代数学)、MATH1211など、最低限の数学の基礎知識があるほうが進めやすく感じました。


課題・試験

  • Written Assignments

    • 実質Programming Assignmentです。提出回数自体は少ないのですが、配点はDiscussionと同等なので、ここを落とすと痛手となります。難易度自体はCS1103をクリアしている人間であれば高くないと思われるののですが、jeliotというアルゴリズムをビジュアル化したツール上での実行を求められるため、実装がやや面倒でした。jeliot上でビジュアル化されたアルゴリズムの挙動を見ること自体は楽しかったのですが、実行速度が遅いため、ピア採点にも時間を取られました。

  • Discussion課題

    • 毎週出ます。上記のAssignmentがない週はやや重めでした。

  • Learning Journal

    • 課題の少なさに対して指定Word数がそれなりに多かったため、意外に時間を取られました。あくまで私の居たクラスでの話となりますが、Instructorが「テキストを含む複数文献からの引用」「Quizを含む全課題についての感想の記述」を求めてきたため、Discussionで触れなかったReading Assignmentの範囲についても情報を整理し、記述していました。結果的に提出課題で触れられていなかった範囲を学習する良い機会になったと思います。


かかった時間

基本的にDiscusstionとLearning Journalのみだったので、週3~10時間程度で済んでいました。異様に時間がかかっている週は前述のプログラミング課題で時間を取られた週になります。アルゴリズムと関係ない入力周りの仕様に拘ってしまったのが原因なので、そこに拘らなければ10~15時間は節約できたと思われます……。


使ったツール・本など

大学からの指定教科書やツールに加えて、私は以下を利用していました。

開発環境

IntelliJ IDEAで開発を進め、最終的に実行するのはJeliotとしていました。Jeliotで使用されるJDKのバージョンが非常に古いためか両者での挙動がかなり異なっていたため、事前にInteliJで利用するJDKのバージョンをJeliotに合わせておくなどしておいた方が良かったと思われます。


参考書・参考ページ

アルゴリズムについては、CS1103に引き続き、こちらで紹介されていた以下を利用していました。アニメーションがわかりやすいのはもちろん、疑似コードが載っているためコーディング課題の際などに重宝しました。

また、計算量の求め方について、以下の記事も参考にさせていただきました。

序盤少しだけデザインパターンの一部が登場するので本を一冊買ってみたものの、こちらはあまり使いませんでした。


感想

応用情報などで触れたことはあるものの、いまいちわかっているようでわかっていなかった計算量の求め方について、ループ条件などからきちんと計算できるようになったので良かったです。

ちなみに、instructorさんにも恵まれました。熱心な方で、Discussion postに雑なコメントをするとしっかり減点されました。


この記事が気に入ったらサポートをしてみませんか?