2017年度 プログラミング第二   Programming II

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
数理・計算科学系
担当教員名
青谷 知幸  増原 英彦  脇田 建 
授業形態
講義 / 演習     
メディア利用科目
曜日・時限(講義室)
火3-4(W834,演習室)  金3-6(W834,演習室)  
クラス
-
科目コード
MCS.T303
単位数
3
開講年度
2017年度
開講クォーター
1Q
シラバス更新日
2017年4月9日
講義資料更新日
2017年4月23日
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

実世界の問題を計算機によって解決する場合、その問題を計算機の内部で扱うことができるように適切な表現を与える、即ち問題のモデル化を行う必要がある。その表現はまた、データのサイズ、アルゴリズム、表現の簡潔さ、再利用性などを規定する重要な要因でもある。このような問題のモデル化を行うにあたっては、典型的なモデル化の例を学び、そのために必要となるプログラミング言語の諸概念、基本的なプログラミング技法を習得する必要があります。具体的にはオブジェクト指向プログラミング言語のクラス階層とメソッドの設計と抽象化技法が学習項目となる。
(1回の授業あたり,講義2時限,演習1時限を行う)

到達目標

与えられた問題記述から、データモデリングを行い、オブジェクト指向プログラミング言語によるクラス階層とメソッドの設計手法を習得する。また、フレームワークやデザインパターンのような抽象化手法を理解し、実際のクラス設計を再利用可能なものにする。これによって情報システムに関する基本的な性質を、ソフトウェア構築の側面から体得することを目標とする。

キーワード

モデル化、抽象化、再利用性、オブジェクト指向、クラス階層、メソッド

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

授業は各週の3回を(1)講義の回、(2)個人演習の回、(3)グループ演習の回として以下を行う。
(1)講義: そのラウンドの内容を説明 (講義室)
(2)個人演習: 受講者が内容を理解するための基本的な問題を解く (主に演習室)
(3)グループ演習: 小人数のグループに分かれ、理解を確認するための問題を解く (演習室または講義室)

授業計画・課題

  授業計画 課題
第1回 原始的なデータ形式、クラス、クラスの参照、オブジェクトの包含 クラス図の描き方、メソッドの定義方法、テストクラス/テスト式の書き方、開発環境の使い方
第2回 ユニオン、自己参照、相互参照、クラス階層 ユニオンを使ったクラス図、クラス定義、データ例
第3回 基本型による計算、メソッド呼出 メソッドの呼び出し式
第4回 クラスのメソッド、包含オブジェクトのメソッド メソッド定義
第5回 ユニオンのメソッド、型とクラスとメソッド呼出 ユニオンのメソッド定義、型とクラスの違い
第6回 ユニオンのメソッド(その2)、相互参照とメソッド 相互参照のあるクラスのメソッドの定義
第7回 メソッドの設計、類似したクラス、クラス階層のメソッド メソッドの設計方法
第8回 状態カプセル化、自己保存、外延的等価性 等価性メソッドの定義
第9回 循環データ、循環データのメソッド 循環のあるデータのクラスとメソッドの設計
第10回 状態と変化、代入による状態変化 フィールド代入の使用
第11回 状態付クラスの設計、命令的メソッド、等価性その2 状態のあるクラスとそのメソッドの設計
第12回 類似するクラスの型、類似するクラス階層の型、汎用クラス設計 汎用性のあるクラスの設計
第13回 フレームワーク、インタフェース設計、拡張可能フレームワーク フレームワーク概念とその設計
第14回 走査のパターン、抽象走査メソッド設計 走査の考え方、設計方法
第15回 副作用付走査、Visitor式拡張可能フレームワーク 走査のライブラリ化の方法

教科書

``How to Design Classes --- Data: Structure and Organization'', by Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi, and Viera K. Proulx, 2012. (Draft)

参考書、講義資料等

講義資料はOCWにて公開する。

成績評価の基準及び方法

グループ演習および期末試験において、実際の問題に対してクラス階層とメソッドの設計が行えることを評価する。同時に、それに必要となる概念の理解度も評価する。

関連する科目

  • MCS.T224 : プログラミング第一

履修の条件(知識・技能・履修済科目等)

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

連絡先(メール、電話番号)    ※”[at]”を”@”(半角)に変換してください。

p2-2017[at]prg.is.titech.ac. (この後ろに「日本」のドメイン名を追加せよ)

オフィスアワー

指定しない

このページのトップへ