CS 4402

Term 4はCS 4402: Comparative Programming Languages、比較プログラミング言語学のコースを受講しました。カリキュラムはこんな感じ。

  1. Introduction to Programming Languages(プログラミング言語の分類など)
  2. Elements of Programming Languages(コンパイルのプロセスなど)
  3. Data Types(データ型。ビッグエンディアン/リトルエンディアン、オーバーフロー、負の整数表現に関連して2の補数計算など)
  4. Control Structures and Subprograms(値渡し/参照渡し、if, for, while...といったイテレーションはそこそこに再帰に注力)
  5. Object-Oriented Programming(Java等)
  6. Scripting Languages(PHPJavaScript等)
  7. Functional Programming(Haskell等)
  8. Logic Programming(Prolog等)
  9. Review and Final Exam

勉強時間合計:77時間59分

CS 4402の勉強時間
Exercise Assignmentが提出不要でピアアセスメントもなかったので、課題の量としてはかなり少なく、時間はかかりませんでした。Self-QuizやReview Quizと違って、Graded QuizやFinal Examとの関連はほぼありません。なので、時間がなければスキップしても…点数ではなく自分の理解のためにやるのが良いです。Discussion Assignmentはワード数の制限がなく、比較的自由なのですが、30%と高めの配点なので、250 words以上を目安にAPA引用に注意して書いていました。Graded QuizやFinal Examは、Self QuizやReview Quizからそのままではないですが、似た問題が多く出されます。なので、それらを周回するのが点数につながります。

さすがCS 4XXXコースだけあって、内容としては難しく、有意義なコースだったと思います。また、ピアが優秀だったことと、私が受講したタームは日本人学生らしいピアが多かったことも印象的でした。

Final ExamはProctoredで電卓と紙とペンが持ち込み許可されていました。ですが、2の補数計算ぐらいにしか使いようがなく、持ち込まなくてもテストを解くのに問題ないなと思いました。試験時間は90分。45問でFinal Examはすべて選択式だったと思います。(Graded QuizやReview Quizは単語レベルですが記述式の問題が出ます。)

以下、使用したサイトや参考文献などです。

ideone.com

どこかのユニットで案内されるのですが、ブラウザでのプログラミング開発・実行環境です。いろいろな言語を扱うので、ユニットごとにインストールしなおしたりするのは面倒で、基本このサイトを使っていました。 Online PHP/Java/C++... editor and compiler | paiza.IO みたいな感じ。

swish.swi-prolog.org

これはPrologのオンライン実行環境。ideone.comでできることになっていたものの、やりづらかったので、ユニット8でお世話になりました。

UoPeopleのlibraryで読めました。ユニット6で使用。「TaPL」として有名な本らしいです。

https://cliplab.org/~logalg/doc/The_Art_of_Prolog.pdf 後で読む。

peterhigginson.co.uk

Unit 1のExercise AssignmentがJava Applet使用サイトになっていたので、インストラクターに聞いたところ、上記ページを案内してもらいました。

youtu.be

Unit 4のExercise AssignmentもJava Applet使用だったので、上記動画を案内してもらいました。

Someya's Website

このサイト内の正規表現についてページがReading Assignmentになっていたのですが、404エラーになっていました。そこで、トップページにアクセスしたところ、執筆者である染谷泰正先生が2022年5月に亡くなっていたことを知りました。ご冥福をお祈りします。

www.ibm.com

Unit 2のExercise AssignmentでIBMのPDF資料がリンク切れになっていました。おそらく内容的に上記ページを読めば代替になると思います。