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

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

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

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

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

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

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

<具体的な到達目標>
 カプセル化・継承を理解し、基本的なクラスが設計できる。
 抽象クラスとインターフェイスを理解し、クラスライブラリを適切に利用できる。
 与えられたプログラムを読み、クラス間の関係を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.多重継承とインターフェイス 集約と委譲
  クラスの多重継承の利点と欠点について解説する。
  インターフェイスを利用した多重継承の解決について紹介する。
  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.学習成果の確認(最終課題の提出)
    指定された要求仕様をみたすプログラムを作成して提出する。
    最終課題が提出されない場合は、受験放棄として処理します。

<成績評価方法及び水準>
講義は筆記試験(手書きノート参照可)により評価する(50点)。
演習はレポート(プログラミングの提出課題)に出席状況を加味して評価する(50点)。
(演習では、最終課題以外にも課題の提出を要求する場合があります。)
上記の和を総合評価(講義・演習に共通の評点)とする。

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

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

<オフィスアワー>
新宿 A-1476 火-木 16:30〜18:30
メールでの対応も可(ct10634@ns.kogakuin.ac.jp)

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


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