計算機科学第二   Computer Science II

文字サイズ 

担当教員
増原 英彦  青谷 知幸 
使用教室
月7-8(W834,演習室)  金5-6(W834,演習室)  
単位数
講義:2  演習:0  実験:1
講義コード
5528
シラバス更新日
2015年4月6日
講義資料更新日
2015年7月24日
アクセス指標
学期
前期  /  推奨学期:5

講義概要

クラスを用いたオブジェクト指向プログラムの設計方法をプログラミング演習を行いながら学ぶ。

講義の目的

現実のソフトウェアを作成する際に重要となる、データ構造とそれらの処理手順の設計手順を習得することを目的とする。具体的には、
1. 作成するソフトウェアに対する要求から必要となるデータの性質を整理する
2. データを表現・処理するプログラムの構造を検討する
3. データの表現・処理を行うプログラムを完成させる
ことができるようになることである。本講義ではオブジェクト指向言語Javaを用いて
・構造のあるデータの表現方法
・バリエーションがあるデータの表現方法と処理方法
・再帰的な構造があるデータの表現方法と処理方法
・継承を用いた処理の再利用方法
・フレームワークによる再利用方法とその設計方法
などを扱う。

講義計画

月曜日と金曜日の計合30の授業日を3授業日からなる9のラウンドに分け、各ラウンドの3授業日は
*講義: そのラウンドの内容を説明 (講義室)
*自習: 受講者が内容を理解するための基本的な問題を解く (主に演習室)
*グループ演習: 小人数のグループに分かれ、理解を確認するための問題を解く (演習室または講義室)
を順に行う。

* ラウンド1
** データの原始的な形式
** クラス
** クラスの参照
* ラウンド2
** クラスの和
** 和、自己参照、相互参照
** クラス階層の設計
* ラウンド3
** 式その1: 原始型の計算
** 式その2: メソッド呼出
** クラスのためのメソッド
** メソッドとオブジェクトの封じ込め
** メソッドとクラスの和その1
* ラウンド4
** 型、クラス、メソッド呼出の計算
** メソッドとクラスの和その2
** メソッド、クラス、相互参照
** メソッドの設計
* ラウンド5
** クラスの類似
** メソッドのあるクラス階層の設計
** 状態のカプセル化とself-preservation
* ラウンド6
** 外延的等価性その1
** 循環データ
** 循環データに対するメソッド
** 「世界」の状態とその変化
* ラウンド7
** 代入と「世界」の変化
** 状態のあるクラスと命令的メソッドの設計
** 等価性
* ラウンド8
** 型とクラスの類似性
** 型とクラス階層の類似性
** 汎用クラスと枠組の設計
** インタフェース設計
** 拡張可能な枠組: 構築子の抽象化
* ラウンド9
** 走査のパターン
** 抽象的走査メソッドの設計
** 作用を伴う走査
** Visitorのある拡張可能な枠組

教科書・参考書等

Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi, and Viera K. Proulx. _How to Design Classes: Data: Structure and Organization_, Draft version, June 2012.

関連科目・履修の条件等

最低限のプログラミングが行えること。計算機科学第一を履修していることが望ましい。

成績評価

以下の3つを総合して評価する
・自習問題解答状況
・演習の参加・発言状況
・期末試験

担当教員の一言

昨年度までの講義とは内容・形式が全く違います。また、本講義は履修者が演習時に積極的に発言することを前提としていますので、積極性を持って授業に参加して下さい。

連絡先(メール、電話番号)

cs2-2015@prg.is.titech.ac. (この後ろに「日本」のドメイン名を追加して下さい)

このページのトップへ