デューク大学の「Java Programming: Solving Problems with Software」を修了しました

オブジェクト指向について本格的に学ぶために、以下のコースを受講しました。

 

www.coursera.org

 

獲得した修了証はこちら。

 

 

ちなみに、全4コース構成となるため、今回のコースはオブジェクト指向についてはあまり触れられておらず、現在受講している第2コースの「Java Programming: Arrays, Lists, and Structured Data」でようやく話が出た程度です。

 

コース難易度は初心者向けと設定されていますが、全くの未経験者がこの講座から学習をスタートするのはおすすめしません。現にレビュー欄でも、初学者には難しすぎるといった意見も見受けられました。


各セクションの課題では、0からクラスファイルを作成する必要があります。大まかな全体設計の指示は入りますが、それでも大半のコードを自分で記述しなければならず、試験パートでは、課題で作成したプログラムを実際に実行させて回答をする必要があるため、きちんと動作しなければ次の週へ進むことができません(地獄)。

自分がこれまで受けてきた講座では、あらかじめスクリプトが与えられておりその中の一部のコードを書き換えるものや、作成した一つの関数のみを提出するといった比較的ライトな課題が多く、受講当初は非常に負荷が大きかったことを覚えています。良い感じに補助輪が外せてきたということでしょうか。


自分はこのコースを受講するにあたって、以下のコースとオンラインクイズが前提知識として役立ちました。


・少なくとも1つのプログラミング言語について学ぶ

www.coursera.org

 

参考:Pythonを0から学びたいなら、ミシガン大学のPython for Everybodyという講座がおすすめ

 

Javaの肩慣らし

codingbat.com

 

参考:CodingBatに取り組んでいます

 

 

内容

- 1週目:イントロダクション&Javaの構文とセマンティクス

おなじみのHello World!からになります。この週のみでJavaの基礎の殆どをカバーするという中々のスピードっぷりです。Pythonでこうした基礎はある程度理解していたものの、そもそもクラス、インスタンス化とは何ぞや?という状態だったので、イントロダクションにも関わらず全週のなかで一番時間がかかりました。

 

- 2週目:Javaの文字列

おなじみ文字列操作です。Javaの実行においては環境構築をする必要はなく、BlueJという統合開発環境を用います。ただこのBlueJ、あまり評判がよろしくなく、自分の場合は主にVS Codeで課題を進めることが多かったです。


- 3週目:JavaCSVファイルと基本統計

以下のパッケージを使用して、CSVファイルを呼び出し、そこから任意の情報を取り出すプログラムを作成します。

 

www.dukelearntoprogram.com

 

- 4週目:ミニプロジェクト:赤ちゃんの名前

いわゆるキャップストーンプロジェクトになります。

 

雑感

このコースを受講してよかったと思えるのが、これまではやや座学中心でパッシブな講座が多かったのに対して、完全に課題が中心となってカリキュラムが進むので、各週に乗り越えるべき壁がきちんと設けられていたことです。自分で考えなければいけない部分がこれまでのコースに比べて格段に増え、最初は時間はかかりましたが良い感じにステップアップを感じることができました。作成したファイル郡は後日Githubにでもまとめてアップロードできればと思います。

ではでは。