2016年度工学院大学 情報学部コンピュータ科学科

オブジェクト指向プログラミング演習(PBL)(Exercises in Object-oriented Programming)[2G19]

試験情報を見る] [授業を振り返ってのコメント(学内限定)

1単位
山崎 浩之 講師  [ 教員業績  JP  EN ]
最終更新日 : 2016/10/27

<学位授与の方針>
1. 基礎知識の習得
2. 専門分野知識の習得
3. 汎用的問題解決技能
4. 道徳的態度と社会性
5. 創成能力

<授業のねらい>
クラスに基づいたオブジェクト指向の考え方を学ぶ。
 Javaのオブジェクト指向に関わる主要な文法機能の意味と用途を理解する。
 Javaの基本的なクラスライブラリを利用したコーディングができるようになる。

<受講にあたっての前提条件>
1年次科目「プログラミング基礎」「C-プログラミング」を履修し、C言語の基礎を習得済みであること。
1年次科目「情報処理概論及演習」の後期内容を履修し、VBA言語の基礎を習得済みであること。
2年次科目「オブジェクト指向プログラミング(講義)」を同時に受講すること。

<具体的な到達目標>
カプセル化・継承を理解し、基本的なクラスが設計できる。
 抽象クラスとインターフェイスを理解し、クラスライブラリを適切に利用できる。
 与えられたプログラムを読み、クラス間の関係をUMLクラス図で表現できる。
 ファイルやTCP/IP通信を扱うI/Oストリームを利用するコーディングができる。
 GUIを利用するコーディングができる。
 小規模なクラスライブラリを開発できる。

<授業計画及び準備学習>
1.ガイダンス Javaとは何か & ドキュメントとパッケージ(4・12)
  授業の進め方と成績の評価方法について説明する。
  プログラミング言語の系譜におけるJavaの位置づけについて紹介する。
  「最小プログラム」等の簡単なサンプルコードを題材に、Javaコードの特徴を観察する。
  演習では、コマンドプロンプト・テキストエディタ・JDKの操作を練習する。(プリント教材配布)
  また、JDKドキュメントの利用法を練習する
準備学習:C言語の文法を復習しておく。
     指定教科書(下記)を入手し、前半(第1〜8章)に軽く目を通しておく。

2.タートルグラフィックス & オブジェクトの生成とGC(4・19)
  前回与えた「最小プログラム」に文法的な解説を与える。
  タートルグラフィックス・LOGO・オブジェクト指向について紹介する。
  JavaのVM・メモリ管理の仕組みと、newキーワードについて解説する。
  演習では、教科書第2〜3章に沿ってタートルクラスの使い方を練習する。
  また、ドキュメントの参照の仕方を練習する。
準備学習:教科書第2〜3章を予習する。特にp.14をよく読み、タートルの機能を把握する。
     自宅に自分用のPCがあれば、JDKをインストールする。

3.データ型 変数 流れ制御と配列(4・26)
  Javaのデータ型・変数・流れ制御(条件分岐・反復)について、C言語と比較しつつ簡単に紹介する。
  Javaの配列と拡張for文について、簡単に紹介する。
  演習では、教科書第4章に沿って多角形を組み合わせた図形を描く。
準備学習:教科書第4〜6章を予習する。Javaのif文・while文などはCと大体同じである。
   Cと同様の文法は、授業でいちいち説明しないので、自習で頭に入れること。
   疑問があれば、質問できるよう整理しておく。

4.クラスとオブジェクト this参照(5・3)
  Javaの配列について、詳しく解説する。多次元配列の仕組みはCと大きく異なるので注意。
  this参照と静的コンテキストについて解説する。
  演習では、教科書第5章に沿って配列を使った図形などを描く。
準備学習:教科書第5章を熟読する。

5.カプセル化と継承 メソッド & コンストラクタ(5・10)
  カプセル化の機能に焦点を当て、クラスの機能を解説する。
  アクセス修飾子publicとprivateの役割について解説する。
  メソッドのシグネチャとオーバーロードについて解説する。
  コンストラクタとアクセッサの役割について、紹介する。
  UMLクラス図におけるクラスの表現について紹介する。
  演習では、教科書第7章前半に沿ってオーバーロードのコーディングを学ぶ。
準備学習:教科書第7章を熟読する。

6.アクセッサ & 継承とオーバーライド(5・17)
  コンストラクタ・アクセッサなどの役割について解説する。
  継承の機能に焦点を当て、クラスの機能を解説する。
  メソッドのオーバーライドについて解説する。
  UMLクラス図における継承の表現について紹介する。
  演習では、教科書第7章後半に沿って継承を活用したコーディングを練習する。
準備学習:教科書第7章の練習問題を解いてみる。疑問があれば、質問できるよう整理しておく。

7.ポリモーフィズム 抽象クラスとインターフェイス(5・31)
  ポリモーフィズムの意義を解説する。
  クラスの系統分類と代入互換性・is-a関係について詳述する。
  メソッド探索によるオーバーライドの実現について紹介する。
  UMLクラス図における抽象クラスの表現について紹介する。
  演習では、教科書第8章に沿って、抽象クラスとオーバーライドを活用したコーディングを練習する。
準備学習:教科書第8章を熟読する。

8.集約と委譲 例外処理 (6・7)
  インターフェイスを利用した多重継承の解決について紹介する。
  UMLクラス図におけるインターフェイスの表現について紹介する。
  特殊な流れ制御としての例外処理について解説する。
  例外の文法機能ではクラスによる系統分類が本質的役割を果たすことが重要。
  演習では、教科書第8章に沿ってポリモーフィズムを活用したコーディングを練習する。
  また、ポリモーフィズムの理解を深めるための練習をする。(プリント教材配布)
準備学習:教科書第8章の練習問題を解く。

9.マルチスレッド & コレクション(6・14)
  複数のスレッドによる並列処理について、初歩的な機能を解説する。
  系統分類の観点からコレクションフレームワークについて紹介する。
  演習では、教科書第10章に沿ってマルチスレッドのコーディングを練習する。
準備学習:教科書第10章を熟読。余力があれば、第17章にも目を通しておく。

10.I/Oストリーム(6・21)
  ファイルと標準入出力を中心に、データの入出力処理について解説する。  演習では、教科書第15章に沿って、ファイルI/O・Scannar等のコーディングを練習する。
準備学習:教科書第15章を熟読。

11.TCP/IP通信(6・28)
  TCP/IP方式のネットワーク通信について簡単に紹介する。
  演習では、ネットワーク通信とマルチスレッドのコーディングを練習する。(プリント教材配布)
準備学習:教科書第16章を予習する。

12.JavaにおけるGUI & 最終課題(ステップ1)(7・5)
  AWTとSwingのGUIコンポーネントの仕組みを、イベント処理に焦点を当てて解説する。
  レイアウト機能については詳しく扱わないので、興味があれば自習すること。
  演習では、最終課題に向けた部品の制作を開始する。(プリント教材配布)
準備学習:教科書第11章と第13章を熟読。

13.まとめ&最終課題(ステップ2)(7・12)
  授業全体を振り返る。質問を受ける。期末試験について。
  最終課題の仕様を与え、提出について指示する。(プリント教材配布)
  演習では、最終課題の制作を進める。
準備学習:前回のプリントに沿ってできる限り作業を進めておく。
    前回までの内容を総復習。試験前に質問しておきたいことをまとめておく。

14.学習内容の振り返り(8・2)
準備学習:期末試験で出来なかった内容を復習しておく。
    最終課題を完成し、提出を済ませておく。

<成績評価方法>
講義は試験期間内に実施する筆記試験(手書きノート参照可)により評価する(50点)。
演習はレポート(プログラミングの課題の提出状況とできばえ)に出席状況を加味して評価する(50点)。
上記の和を総合評価(講義・演習に共通の評点)とし、60点以上の者に単位を認める。

<教科書>
「すべての人のためのJavaプログラミング 第2版」立木秀樹、有賀妙子著(共立出版)

<参考書>
指定参考書なし。
必要に応じて、下記の公式ドキュメント等を参照してください。
http://docs.oracle.com/javase/jp/8/

<オフィスアワー>
木曜日 16:00〜17:00 新宿校舎高層棟 A-1476室(情報処理研究室)
土曜日 16:00〜17:00 八王子校舎15号館 15-010室(準備室)
不在の場合もあるので、事前に連絡することを推奨する。
学生連絡用のアドレスは[ct10634@ns.kogakuin.ac.jp]
なお、簡単な質問は授業後の教室でも受け付ける。

<学生へのメッセージ>
授業で扱ったプログラムを自分で考えてどんどん変更・改造してみましょう。与えられたサンプルが動くのは当たり前で、それだけで自分の力にはなりません。


このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2016 Kogakuin University. All Rights Reserved.