2024年度 学院等開講科目 情報理工学院 数理・計算科学系
プログラミング第二
- 開講元
- 数理・計算科学系
- 担当教員
- 増原 英彦 / 佐藤 哲也 / 田邉 裕大
- 授業形態
- 講義/演習 (対面型)
- メディア利用科目
- -
- 曜日・時限
(講義室) - 月7-8 (W8E-308(W834)) / 木5-8 (W8E-308(W834))
- クラス
- -
- 科目コード
- MCS.T303
- 単位数
- 210
- 開講時期
- 2024年度
- 開講クォーター
- 1Q
- シラバス更新日
- 2025年3月14日
- 使用言語
- 日本語
シラバス
授業の目的(ねらい)、概要
実世界の問題を計算機によって解決する場合、その問題を計算機の内部で扱うことができるように適切な表現を与える、即ち問題のモデル化を行う必要がある。その表現はまた、データのサイズ、アルゴリズム、表現の簡潔さ、再利用性などを規定する重要な要因でもある。このような問題のモデル化を行うにあたっては、典型的なモデル化の例を学び、そのために必要となるプログラミング言語の諸概念、基本的なプログラミング技法を習得する必要がある。具体的にはオブジェクト指向プログラミング言語のクラス階層とメソッドの設計と抽象化技法が学習項目となる。
到達目標
与えられた問題記述から、データモデリングを行い、オブジェクト指向プログラミング言語によるクラス階層とメソッドの設計手法を習得する。また、フレームワークやデザインパターンのような抽象化手法を理解し、実際のクラス設計を再利用可能なものにする。これによって情報システムに関する基本的な性質を、ソフトウェア構築の側面から体得することを目標とする。
キーワード
モデル化、抽象化、再利用性、オブジェクト指向、クラス階層、メソッド
学生が身につける力
- 専門力
- 教養力
- コミュニケーション力
- 展開力 (探究力又は設定力)
- 展開力 (実践力又は解決力)
授業の進め方
授業は(1)講義(ビデオ)、(2)個人演習(50分)、(3)グループ演習(100分)を1ラウンドとし、14ラウンド前後を行う。
(1)講義: そのラウンドの内容を説明 (ビデオ講義による自習・木曜日の5・6限は自習時間とする)
(2)個人演習: 受講者が内容を理解するための基本的な問題を解く (演習室の計算機環境または受講者所有の機器で行う)
(3)グループ演習: 受講者を数グループに分け、さらに各グループで受講者が教師役/生徒役に分かれ、教師役が問題を解きながら授業の要点を解説し、生徒役は質疑を行う形式で進める (月曜日木曜日の7・8限に演習室で行う)
授業計画・課題
授業計画 | 課題 | |
---|---|---|
第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)
参考書、講義資料等
講義資料はオンラインで配布する。
成績評価の方法及び基準
個人演習、グループ演習および期末試験において、実際の問題に対してクラス階層とメソッドの設計が行えることを評価する。同時に、それに必要となる概念の理解度も評価する。
関連する科目
- MCS.T224 : プログラミング第一
履修の条件・注意事項
最低限のプログラミングが行えること。プログラミング第一を履修していることが望ましい。
オフィスアワー
指定しない
その他
2024年度は木曜日の5・6時限を自習時間に充てて、月曜日と木曜日の7・8時限にグループ演習を行う。
初回だけ実施場所が異なる場合があり、その場合はT2SCHOLAにて通知する。
個人演習は演習室の計算環境を使うことを想定している。受講者個人の計算機環境を使う場合はJava言語の開発環境をインストールする必要がある。