edX Introduction to Object-Oriented Programming with Java

OMSCS への出願準備として受講した edx Java コースの振り返り

OMSCS への出願に際して、推奨されていた Georgia Tech が提供する MOOC の Introduction to Object-Oriented Programming with Java を受講した。

Overall

ジョージア工科大学 OMSCS の出願に関しては、CS または関連する学位を取得していることが好ましいとされていたが、該当しない場合は、3 つの MOOC を受講することが推奨されている。 MOOC だと Coursera が有名であるが、Georgia Tech は edX に授業を提供しているようで、推奨されているコースは全て edX 上で提供されていた。

社会人をしながらオンライン海外大学院への進学

CS の学位は持ち合わせておらず、その内でもオブジェクト指向に興味を持ったため以下のコースを受講した。 大学の学部レベルの授業をそのままオンラインに持ってきたようなので、ボリュームとしては週 5-6 時間で 5 カ月ほど要するものである。

こちらのコースに関しては、動画の講義とテキストを読み進めていくものであった。 内容に関しては、登録をすれば無料で確認することができるが、課題の採点や認定証を得るのは費用が生じる。 3 Part で構成になっており、それぞれを別に購入することもできるが、全てまとめて購入することで割引がされる。 合計で $700 程度であり、決して安い買い物ではないことから、初めは継続できるかわからなかったため、Part 1 だけ購入した。 最終的には、全て購入し完了することができた。 ネットで検索すると edX のクーポンコードが存在したため、利用した記憶がある。

Content

Java の入門コースであり、オブジェクト指向の概念を課題を通して学んでいく内容であった。 小テスト、課題、確認テストで評価が決定し、60% 以上の成績で証明書が発行される。 各 Part 内に Module が 3, 4 程度存在し、それぞれに簡単な選択問題とプログラムを提出する課題が課された。 課題に関しては、細かく指定された要件を読み解き、Java で実装し提出するものであった。 提出した課題については自動で採点され、要件通りの動作をしているか判定される。 最終的に、Part を総括として、制限時間があり、一度しか実施できない選択式のテストがあった。

Part 1 Foundations and Syntax Basics

型や算術計算の仕方など、いわゆるプログラミング言語の最初に学ぶことからはじめ、Array や Method に関して学習した。 coding 課題は 3 つあった。

  • HW01 : 初回の課題のため、提供されたプログラムの構文エラーなどを見つけ出す簡単なものであった。
  • HW02 : 簡単な計算機の作成が課題であった。入力として、可算などのオペレーションを指定することで、該当な型を入力するよう指示し、それらを適切に扱うものを実装した。
  • HW03 : 2D Array を利用し、戦艦の位置を管理するような海戦ゲームの実装を行った。

海戦ゲーム

Part 2 Object-Oriented Programming and Algorithms

オブジェクト指向の確信に迫る class, inheritance, Polymorphism などに関して学んだ。

  • HW04 : Frog, Fly, Pond class を実装し、それぞれの異なる振る舞いを実装した。Pond (池) で Frog, Fly を instantiate させ、生態系を表現する課題であった。クラスのアクセス指定子を適切に設定することで、カプセル化の実際の例となった。
  • HW05 : Among us に近しいゲームのロジックを実装した。Player class から継承された RedAstronaut, BlueAstronaut を実装した。RedAstronaut は imposter interface も継承しており、BlueAstronaut は Crewmate interface を継承することで実装した。 (課題のタイトルが Amidst Us でかなり意識したものになっている。)

Part 3 Exceptions, Data Structures, Recursion, and GUIs

Exception から始まり、List や Recursion に関して取り扱った。

  • HW06 : Pet class から継承した動物たちを対象に、獣医を題材とした。それぞれの動物に対する治療後の振る舞いを Abstract method や Override を活用し、Polymorphism の具体例を実装した。加えて、診察の予定をファイルに入出力するようにし、状況に応じて Exception を出力するよう実装した。
  • HW07 : Generics を利用し、Index に応じた、node の追加、削除を含む Linked List を実装した。

Reflection

オブジェクト指向のプログラミング言語に関してしっかりと学んだことがなかったため、基礎を固める上で有意義なコースであった。 Coding 課題に関しては、講義内容に利用するものになっており、興味をそそられるような題材になっていたことから、継続して続けることができた。

しかし、期限が設定されていないことから、継続していくには自らを律する必要がありエネルギーを要した。 当初は、出願までに 3 つの MOOC の受講を終えようと思っていたが、最終的にはこのコースともう一つのコースの半分までで出願することになった。

Licensed under CC BY-NC-SA 4.0
Hugo で構築されています。
テーマ StackJimmy によって設計されています。