2015年度工学院大学 情報学部コンピュータ科学科
オブジェクト指向プログラミング(Object-oriented Programming)[2285]
2単位 山崎 浩之 講師 [ 教員業績 JP EN ]
- <授業のねらい>
- クラスに基づいたオブジェクト指向の考え方を学ぶ。
Javaのオブジェクト指向に関わる主要な文法機能の意味と用途を理解する。 Javaの基本的なクラスライブラリを利用したコーディングができるようになる。
- <受講にあたっての前提条件>
- 1年次科目「プログラミング基礎」「C-プログラミング」を履修し、C言語の基礎を習得済みであること。
1年次科目「情報処理概論及演習」の後期内容を履修し、VBA言語の基礎を習得済みであること。 2年次科目「オブジェクト指向プログラミング演習(PBL)」を同時に受講すること。
- <具体的な到達目標>
- カプセル化・継承を理解し、基本的なクラスが設計できる。
抽象クラスとインターフェイスを理解し、クラスライブラリを適切に利用できる。 与えられたプログラムを読み、クラス間の関係をUMLクラス図で表現できる。 ファイルやTCP/IP通信を扱うI/Oストリームを利用するコーディングができる。 GUIを利用するコーディングができる。 小規模なクラスライブラリを開発できる。
- <授業計画及び準備学習>
- 1.ガイダンス Javaとは何か
プログラミング言語の系譜におけるJavaの位置づけについて紹介する。 「最小プログラム」等の簡単なソースコードを題材に、Javaコードの特徴を観察する。 演習では、コマンドプロンプト・テキストエディタ・JDKの操作を練習する。(プリント教材配布) 準備学習:C言語の文法を復習しておくとよい。 2.タートルグラフィックスとOOP 前回与えた「最小プログラム」に文法的な解説を与える。 タートルグラフィックス・LOGO・オブジェクト指向について紹介する。 JavaのVM・メモリ管理の仕組みと、newキーワードについて解説する。 演習では、教科書第2〜3章に沿ってタートルクラスの使い方を練習する。 また、ドキュメントの参照の仕方を練習する。 準備学習:自宅に自分用のPCがあれば、JDKをインストールしてみる。 3.データ型・変数・流れ制御・配列 Javaのデータ型・変数・流れ制御(条件分岐・反復)について、C言語と比較しつつ簡単に紹介する。 Javaの配列ついても簡単に触れる。 演習では、教科書第4章に沿って多角形を組み合わせた図形を描く。 準備学習:教科書第4章と第6章を熟読する。Javaのif文・while文などはCと大体同じである。 Cと同様の文法は、授業でいちいち説明しないので、自習で頭に入れること。 疑問があれば、質問できるよう整理しておく。 4.配列とfor文 クラスとは・this参照 Javaの配列について、詳しく解説する。多次元配列・拡張for文など、Cとは違う部分も多いので注意。 this参照と静的コンテキストについて解説する。 演習では、教科書第5章に沿って配列を使った図形などを描く。 準備学習:教科書第5章を熟読する。 5.カプセル化と継承 カプセル化の機能に焦点を当て、クラスの機能を解説する。 アクセス修飾子publicとprivateの役割について解説する。 メソッドのシグネチャとオーバーロードについて解説する。 UMLクラス図におけるクラスの表現について紹介する。 演習では、教科書第7章前半に沿ってオーバーロードのコーディングを学ぶ。 準備学習:教科書第7章を熟読する。 6.アクセッサ 継承とオーバーライド コンストラクタ・アックセッサなどの役割について解説する。 継承の機能に焦点を当て、クラスの機能を解説する。 メソッドのオーバーライドについて解説する。 UMLクラス図における継承の表現について紹介する。 演習では、教科書第7章後半に沿って継承を活用したコーディングを練習する。 準備学習:教科書第7章の練習問題を解いてみる。疑問があれば、質問できるよう整理しておく。 7.ポリモーフィズム 抽象クラスとインターフェイス ポリモーフィズムの機能に焦点を当て、クラスの機能を解説する。 メソッド探索とオーバーライドの関係について詳述する。 代入互換性・is-a関係・キャストについて、詳述する。 UMLクラス図における抽象クラスの表現について紹介する。 演習では、教科書第8章前半に沿って、抽象クラスとオーバーライドを活用したコーディングを練習する。 準備学習:教科書第8章を熟読する。 8.多重継承とインターフェイス 集約と委譲 クラスの多重継承の利点と欠点について解説する。 インターフェイスを利用した多重継承の解決について紹介する。 UMLクラス図におけるインターフェイスの表現について紹介する。 演習では、教科書第8章後半に沿ってポリモーフィズムを活用したコーディングを練習する。 準備学習:教科書第8章の練習問題を解く。 9.例外 パッケージ コレクション 特殊な流れ制御としての例外処理について解説する。 例外の文法機能ではクラスによる系統分類が本質的役割を果たすことが重要。 系統分類の観点からコレクションフレームワークについて紹介する。 演習では、ポリモーフィズムの理解を深める練習をする。(プリント教材配布) 準備学習:教科書第9章を熟読。第17章にも目を通しておく。 10.マルチスレッド ガベージコレクション 複数のスレッドによる並列処理について、初歩的な機能を解説する。 演習では、教科書第10章に沿ってマルチスレッドのコーディングを練習する。 準備学習:教科書第10章を熟読。 11.I/Oストリーム ReaderとWriter ファイルと標準入出力を中心に、データの入出力処理について解説する。 ioパッケージのクラス群について系統分類の観点から紹介する。 演習では、教科書第15章に沿って、ファイルI/O・Scannar等のコーディングを練習する。 準備学習:教科書第15章を熟読。 12.TCP/IP通信 TCP/IP方式のネットワーク通信について簡単に紹介する。 I/Oストリームの知識を前提に、Socketクラス・ServerSocketクラスの利用法を紹介する。 演習では、ネットワーク通信とマルチスレッドのコーディングを練習する。(プリント教材配布) 準備学習:教科書第16章を熟読。 13.JavaにおけるGUI AWTとSwingのGUIコンポーネントの仕組みを、イベント処理に焦点を当てて解説する。 レイアウト機能については詳しく扱わないので、興味があれば自習すること。 演習では、最終課題に向けた部品の制作を開始する。(プリント教材配布) 準備学習:教科書第11章・第13章に目を通しておく。 14.まとめ 授業全体を振り返る。質問を受ける。期末試験について。 最終課題の仕様を与え、提出について指示する。(プリント教材配布) 演習では、最終課題の制作を進める。 準備学習:前回のプリントに沿ってできる限り作業を進めておく。 15.学習成果の確認(試験) 準備学習:出題範囲の全体を熟読し、ノートを整理する。(試験は手書きノートのみ参照可) プログラムが読めて書けるよう、十分練習しておく。 UMLクラス図の書き方を練習しておく。
- <成績評価方法>
- 講義は筆記試験(手書きノート参照可)により評価する(50点)。
演習はレポート(プログラミングの提出課題)に出席状況を加味して評価する(50点)。 上記の和を総合評価(講義・演習に共通の評点)とする。
- <教科書>
- 「すべての人のためのJavaプログラミング 第2版」立木秀樹、有賀妙子著(共立出版)
- <参考書>
- 指定の参考書はありません。
必要に応じて、下記の公式ドキュメント等を参照してください。 http://docs.oracle.com/javase/jp/7/
- <オフィスアワー>
- 八王子は土曜日(11:00〜15:00)をオフィイスアワーとする。15号館地階 教員準備室。
新宿は火・水・木曜日(16:30〜18:30)をオフィスアワーとする。居室はA-1476、部屋がわからなければ14階受付を訪ねること。 不在の場合もあるので、事前に連絡することを推奨する。 学生連絡用のアドレスは[ct10634@ns.kogakuin.ac.jp]
- <学生へのメッセージ>
- 授業で扱ったプログラムを自分で考えてどんどん変更・改造してみましょう。与えられたサンプルが動くのは当たり前で、それだけで自分の力にはなりません。
このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2015 Kogakuin University. All Rights Reserved. |
|