オブジェクト指向プログラミング

科目基礎情報

学校 徳山工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 オブジェクト指向プログラミング
科目番号 0148 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 1
開設学科 情報電子工学科 対象学年 5
開設期 後期 週時間数 1
教科書/教材 参考図書:小森裕介「なぜ、あなたはJavaでオブジェクト指向開発ができないのか」(技術評論社)、布広永示「Javaオブジェクト指向プログラミング」(オーム社) 、林晴比古「新Java言語入門」(ソフトバンク)
担当教員 重村 哲至

到達目標

1. オブジェクト指向プログラミングの考え方を理解する。
2. UML図でプログラムを理解・設計できるようになる。
3. UML図からJavaプログラムを作成できるようになる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
1. オブジェクト指向プログラミングの考え方を理解する。継承と多相性が使いこなせる。オブジェクト・クラスとメッセージの関係が分かる。オブジェクト、クラス、メッセージの関係が分からない。
2. UML図でプログラムを理解・設計できるようになる。シーケンス図を用いてプログラムの動きを理解・確認できる。クラス図とオブジェクト図を用いてプログラムの構造を理解・設計できる。クラス図・オブジェクト図が表すものを理解できない。
3. UML図からJavaプログラムを作成できるようになる。シーケンス図を考慮しJavaプログラムを作成できる。クラス図から関連とメッセージパッシングをJavaプログラムにできる。クラス図からJavaプログラムを作成できない。

学科の到達目標項目との関係

到達目標 B 1 説明 閉じる
JABEE d-1 説明 閉じる
JABEE e 説明 閉じる

教育方法等

概要:
簡単なプログラミング演習を通して「オブジェクト指向プログラミング」の基本的な考え方とUML図を使用したプログラム設計を学習する。
言語はJavaを使用する。GUIビルダーが生成したプログラムコードとIDEの画面を比較しながら、Javaのオブジェクト指向プログラミングを体感する。
なお、GUIビルダーにはEclipseのSwing Designerを使用する。
授業の進め方・方法:
講義とプログラミング演習を交互に繰り返しながら授業を進める。
演習ごとにレポートを提出する。演習時間が十分に確保できないので、毎週1時間程度の時間外演習(UML図の完成、プログラムの完成など)を行うことが必須である。
学習シートは例題演習で代用する。
注意点:

授業計画

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

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4後12,後14
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4後1,後2
主要な言語処理プロセッサの種類と特徴を説明できる。4後1
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4後1
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4後2,後12,後14

評価割合

試験課題相互評価態度合計
総合評価割合505000100
基礎的能力00000
専門的能力505000100
分野横断的能力00000