1年次後期に使うJava本?

Share on:

そろそろ後期の授業・プログラミング2の教科書選定するかということで、今週末にでもジュンク堂に行こうかと。オススメありますか?>先輩の皆さん

ちなみに私自身は Java 歴ほぼ0に近いです(ぉぃ)。学生の頃、Javaが出初めの頃にApplication, Applet作って遊んだぐらいか。Application はほぼC言語丸写しでどこにJavaらしさがあるんだ、というソースになってたはずですがw

そんな訳でJava大先輩からのオススメがあればWelcomeです。


去年までは山田先生が担当してて、最後の年は「本格学習Java入門 [改訂新版]」を指定してたらしい。これが良さげなら踏襲するのもありだよね。2011年なので結構古いのだけど、受講済み学生(現2年次)としてはどんな塩梅でしたか?

目次を眺める限りでは基本を抑えつつ、いくつか応用編を組み込んでるらしい。古いだけあって例えば(必要かは置いといて)GenericsやAnnotationあたりの話は書かれてないのかな。一方で、足りない分はオフィシャルドキュメントで補うという形もありそうではあるか。


<対象学生の背景>

  • 対象は1年次。
  • 前期にPython3(留年してる学生はC言語)でのプログラミング経験はあるので、一般的な構造化プログラミングぐらいの知識は既に勉強済み。
  • 一方でPythonしかやってないと「コンパイラ」の存在を知らない。

<教えたい知識の候補>
上記を踏まえると、、、コンパイラ、JavaVM、オブジェクト指向、クラス(軽い話はPythonでもやる予定)、継承、Absract/Interface、Annotation、Generics、といったJava話をメインにする方が良いのかしら。


教科書は置いといて、去年の時点で考えた授業計画叩き台的には次のようになってます。

第1回: プログラミング1の振り返り,インタプリタ言語とコンパイラ言語,静的な型付け,環境構築,実行
第2回: Javaの基本知識(変数と定数,演算子,型変換,配列,制御文)
第3回: コメントとコーディング規約
第4回: バージョン管理,pull request と merge,diff
第5回: ユニットテストとjarの利用
第6回: Gradleによる構成管理
第7回: 振り返り1(プログラムの実行,バージョン管理,ユニットテスト,コード読解)
第8回: オブジェクト指向1: クラスとインスタンス,コンストラクタ
第9回: オブジェクト指向2: 関数 vs. メソッド,処理と情報の隠蔽(カプセル化),継承
第10回: オブジェクト指向3: 多重定義(Overload)
第11回: オブジェクト指向4: 多態性(polymorphism)とオーバーライド,アノテーション
第12回: 抽象クラス(Abstract),インターフェース(Interface)と多重継承
第13回: 例外と例外処理
第14回: Java: クラスライブラリ
第15回: 振り返り2(実践的なプログラミング,継承,隠蔽,オーバーロード,オーバーライド,多態性)

この流れでやれるかどうかはさておき、これがJavaらしい中身になってるかの判断がつかないぐらいには、Javaのことよく分かってないんだよな。