少しプログラミング課題があったがそこはそんなに難しいわけではなかった。どちらかというとディスカッションフォーラムとラーニングジャーナルが地獄だった
コース説明
このコースでは、データ構造の基本的な概念とそこから派生するアルゴリズムを紹介します。 このコースは、応用よりも理論に重点を置いていますが、コースを通して紹介される課題、例題、ケースは、理論的な概念と現実の問題解決とのギャップを埋めるのに役立ちます。 このコースでは、データ構造とアルゴリズムの例を視覚的にアニメーション化することで、その操作と機能を理解できるようにするソフトウェアツールを使用します。 このコースでは、再帰、基本的なデータ構造(スタック、キュー、リンクリスト、ハッシュテーブル、トレス、グラフなど)、アルゴリズム解析の基礎などを取り上げます。
各ユニットの内容 英語と日本語
Week 1: Unit 1– Introduction to Data Structures and Algorithms
Week 2: Unit 2- Algorithm Analysis
Week 3: Unit 3– Lists, Stacks, Queues, and Dictionaries
Week 4: Unit 4– Binary trees
Week 5: Unit 5– Non-binary Trees
Week 6: Unit 6- Internal Sorting techniques and algorithms
Week 7: Unit 7- File Processing and external sorting
Week 8: Unit 8- Searching and indexing techniques and algorithms
Week 9: Unit 9- Review Final Exam
ユニット 1- データ構造とアルゴリズム入門
ユニット 2- アルゴリズム分析
ユニット 3- リスト、スタック、キュー、辞書
ユニット 4- 二分木
毎週の課題テキストの読む量
ユニット 5- 非二項木
ユニット 6- 内部ソートのテクニックとアルゴリズム
ユニット 7- ファイル処理と外部ソート
ユニット 8- 検索と索引付けのテクニックとアルゴリズム
CS3303のアルゴリズム課題を理解するのが大変だった
プログラムを作る前に、どれだけそのコードの処理に時間がかかるかなどの計算をする指標を勉強したり、そして実際にどのコードが効率的なのか、アルゴリズムをいくつか勉強してそのコードを書くなどの授業だった
テキスト全体を理解しないといけないので、かなり難しく、英語が苦手なので読むのに時間がかかり、そこからさらに理解をしなければいけないという2段階の大変さがあった。
テキストを理解できればディスカッションフォーラムやプログラミング課題やラーニングジャーナル自体はそこまで難易度が難しいわけではない
要するにテキストを理解できるか、しっかり読み込めるかが勝負だった
Disscussion Forumについて
漸近解析というアルゴリズムの複雑さを計算する方法やデータを処理する順番、先入れ先出し、後入れ先出し、二分木に付いて説明など
JeliotというJavaの動作を視覚的に見せてくれるツールを使って説明する上記を説明するなど、クイックソートなど様々なソートアルゴリズムについて説明するといった課題でした。
課題の内容は1~2センテンスで抽象的な感じで書かれていたり、コードを実行して、それについて説明するなど具体的な内容だったりしました。
JavaやPythonを触ったことがあっても、アルゴリズムについて知らないと全部学習しなくてはいけないので、非常にテキスト理解に時間がかかりました
DFで生徒に高すぎる点数を付けた場合減点
これも後出しで出てきたんだけど、比較的DFは報復で点数を下げられたくないので、悪い点数をつけていないのだが、急に先生が全体の掲示板で、高すぎる評価をつけた人は減点しますという恐ろしいことを言い出した
意味が分からなかった。だから私は、いい内容の人だけを評価して高い点数をつけて減点しないように注意して作業した
DF自体はアルゴリズムについて説明するだけなのでそこまで難しいわけではない。テキストを理解するのが大変なだけ
Programing Assignmentについて
こちらは実際に検索アルゴリズムを実装するなどの課題でした。そのうえでJeliotで動かすという課題でした。
アルゴリズムの実装自体は主要な部分以外はコードが提供されているので、それを参考にして書けばいいのですが、Jeliotが古いJDKのバージョンしか対応していないようで、便利なパッケージが使えない、最新のJDKで対応している便利なコードの書き方をするとサポートしていなくエラーが出てJeliotが動かないなどで、コードを書き直さなければいけないという無駄な作業が発生して時間のムダが結構多かったです。でも基本的にはそこまで難しくありません。JavaのCS2401を終了していれば問題ないです
Learning Journalについて
自由記述の日記ぐらいな感じで500ワードぐらい書けば問題ないですが、私の講師は非常に厳しかったのでかなり減点されました。日記なのにダイレクト引用して書かなきゃいけないなど。これは講師の当たり外れだと思います
教師が外れ 必ず直接引用しないと1点減点
直接引用しないと減点になるという鬼のコースだった。そのため、わざわざどこを引用するか、どの程度引用するかを考える必要があり時間がかかった
ラーニングジャーナルも基本反省や気が付いたことを書くもので、ほかの人のコースの感想だとめっちゃ簡単に書いて10点だったなどあるが、私の講師は800ワードぐらい書いて、その中でも参考文献と直接引用をしないといけなかったため減点が非常に激しかった 8~10点をまばらにもらっていた
それなら最初から説明してほしいし、明確な基準を後出しにするのは卑怯だなと思った
Final Examは簡単Review Quizをしっかりやる
基本的にはReview Quizをしっかりやることで、満点が取れた。初めての満点 並行してセルフクイズも見直しておいたほうがよい
レビュークイズを数回やって100点取れれば90%はとれると思います
最終評価A+とかかった時間週20時間以上
結局なんだかんだありながら最終スコアは初めてのA+でした。とにかくテキストを読み込んだのがよかったです。その分週20時間以上テキストを読んだり調べたりしていたので、本当に時間がなかった
CS3303をとる人はこれ単体で受けたほうが気が楽だと思います。
先生のはずれを引かなければ、そこまでラーニングジャーナルやディスカッションフォーラムに余分な時間や気持ちを割かなくてもよかった気がします。
もう二度とやりたくないコース CS2401のJava 2のほうがよっぽどイージーでした