1. オブジェクト指向プログラミングの考え方を理解する。
2. UML図でプログラムを理解・設計できるようになる。
3. UML図からJavaプログラムを作成できるようになる。
概要:
簡単なプログラミング演習を通して「オブジェクト指向プログラミング」の基本的な考え方とUML図を使用したプログラム設計を学習する。
言語はJavaを使用する。GUIビルダーが生成したプログラムコードとIDEの画面を比較しながら、Javaのオブジェクト指向プログラミングを体感する。
なお、GUIビルダーにはEclipseのSwing Designerを使用する。
授業の進め方・方法:
講義とプログラミング演習を交互に繰り返しながら授業を進める。
演習時間が十分に確保できないので、毎週1時間程度の時間外演習(UML図の完成、プログラムの完成など)を行うことが必須である。
到達目標をクリアするためには、毎回の演習を完成して理解を深めておく必要がある。
注意点:
最終成績=(中間試験+最終レポート)÷2
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
オブジェクト指向入門1 幾つかのプログラミングパラダイムとオブジェクト指向を比較する。オブジェクトとメッセージのイメージを掴むために、Javaでそれらをどのように表現するか学ぶ。また、GUIビルダーを用いて動作するプログラムを作成してみる。 【事前事後学習の内容(1時間)】プログラム作成演習 |
1. いくつかのプログラミングパラダイムがあることを知る。 2. オブジェクトとメッセージがJavaでどのように表現されるか理解する。 3. ボタンからTextAreaにメッセージが送られるJavaプログラムをGUIビルダーを用いて作成できる。
|
2週 |
オブジェクト指向入門2 GUIビルダーが出力したプログラムの内容を理解する。また、掴んだイメージの定着を図るために、もう一度、GUIビルダーを用いて動作するプログラムを作成してみる。 【事前事後学習の内容(1時間)】プログラム作成演習 |
1. Javaでメッセージパッシングがどのように表現されたか、GUIビルダーの出力を説明できる。 2. 少し複雑な例題プログラム(ボタンを押すとパネルの色が変化)をGUIビルダーを用いて作成できる。
|
3週 |
オブジェクト図・クラス図1 オブジェクト図、クラス図を紹介する。これまでに作成したプログラムのオブジェクト図とクラス図を描いてみる。内部状態を持った簡単なクラス(現在の色クラス)を、クラス図を先に描いてからプログラムにする。 【事前事後学習の内容(1時間)】クラス図の作成演習 |
1. オブジェクト同士の関係とメッセージをオブジェクト図、クラス図で表現できる。 2. 現在の色クラスをクラス図で表現できる。 3. 簡単なクラス図からJavaプログラムが作成できる。
|
4週 |
オブジェクト図・クラス図2 現在の色クラスを2週に作成したプログラムに組込み、ボタンを押す度に色が順番に変化するように改造する。 【事前事後学習の内容(1時間)】プログラム作成演習 |
1. 前回のクラスを含むプログラム全体をクラス図で表現できる。 2. クラス図からJavaプログラムが作成できる。
|
5週 |
継承1 JPanelを継承してパネル中央に円盤を表示するパネルクラスを作成する。前回のプログラムに組込み、ボタンを押す度に円盤の色が順番に変化するように改造する。 【事前事後学習の内容(1時間)】クラス図とプログラムの作成演習 |
1. 継承をクラス図で表現できる。 2. 既存のクラスを継承して機能の追加ができる。
|
6週 |
継承2 現在の色クラスを継承して「リセット機能付きの現在の色クラス」を作成する。「円を表示するパネルクラス」に継承を利用して半径などのプロパティを追加する。継承について知識の定着を図る。 【事前事後学習の内容(1時間)】クラス図とプログラムの作成演習 |
1. 自作のクラスを継承して機能追加・変更ができる。 2. 継承されることを考慮したクラスの設計について考察できる。
|
7週 |
演習 これまでに授業中に作成してきたプログラムやUML図を整理して提出する。 |
これまでに学んできた内容を整理して理解する。
|
8週 |
中間試験 |
これまでに学んできた内容に関する問題を解くことができる。
|
4thQ |
9週 |
MVCモデル 実用的な例として、カラー画像をグレースケールに変換した上で表示する、GUIを持った画像表示アプリを作成する。MVCモデルを意識した設計例(クラス図)を理解しプログラムを作成する。 【事前事後学習の内容(1時間)】クラス図とプログラムの作成演習 |
1. MVCモデルを意識したクラス図を理解できる。 2. カラー画像クラスを継承してグレースケール画像クラスを作成できる。
|
10週 |
シーケンス図 画像表示アプリを実装する。また、アプリの動作を理解するためにシーケンス図を描いてみる。 【事前事後学習の内容(1時間)】シーケンス図の作成演習 |
1. 画像表示アプリを完成させ動作させることができる。 2. 画像表示アプリのシーケンス図を描くことができる。
|
11週 |
多相性 「画像表示アプリ」をフィルタ機能を持った「画像処理アプリ」に改造する。新しい種類の画像フィルタを容易に追加できるようなプログラム構造にするために多相性を用いる。 【事前事後学習の内容(1時間)】クラス図の作成演習 |
1. 多相性の利点が理解できる。 2. アブストラクトクラスの役割が理解できる。 3. 画像処理アプリのクラス図を理解できる。
|
12週 |
演習 シーケンス図を描いて動作を確認した後、画像処理アプリを実装する。 【事前事後学習の内容(1時間)】シーケンス図とプログラムの作成演習 |
1. 画像処理アプリのシーケンス図を描ける。 2. 画像処理アプリをクラス図から実装できる。
|
13週 |
多重継承とインタフェース 画像処理アプリのアブストラクトクラスは実装を含まないのでインタフェースに置き換え可能である。多重継承とインタフェースについて考える。 【事前事後学習の内容(1時間)】クラス図とプログラムの作成演習 |
1. アブストラクトクラスとインタフェースを比較して利点・欠点を考察できる。
|
14週 |
演習 画像処理アプリのフィルタをインタフェースを用いたクラス図に書換えた後で実装する。 【事前事後学習の内容(1時間)】クラス図とプログラムの作成演習 |
1. インタフェースを用いたクラス図を描くことができる。 2. 実装を含まないアブストラクトクラスをインタフェースに書き換えることができる。
|
15週 |
最終レポートの作成と提出 【事前事後学習の内容(1時間)】レポートの作成 |
画像処理プログラムの設計に用いたドキュメント(UML)と完成したプログラム含む最終レポートを提出する。レポートの内容を総合的に評価し期末試験の代替とする。
|
16週 |
まとめ |
提出されたプログラムとドキュメントについて、簡単なレビューを行う。
|