プログラミング・同演習 / Programming Exercises
授業の概要 / Course Description
みなさんが「アプリ」という言葉を耳にした時に,たとえば Office, ウェブブラウザなどを連想するかもしれません。携帯のiアプリや, iPhone や Android などのスマートフォンで動作するアプリをイメージした人もいるかもしれません。このようなアプリを GUI アプリケーションと言います。この授業では,GUIアプリケーションのようなソフトウェアの実践的な開発方法(オブジェクト指向開発)を学びます。
また情報メディア工学実験IIで習得した画像処理プログラムを元に GUI アプリケーションを開発する演習も行います。
とくに次のような人は全力でこの授業の修得に励んでください。
- 将来,ソフトウェア開発や画像処理の仕事に携わりたい人
- 大学院に進学してソフトウェア工学や画像処理を学びたい人
【到達目標 (Course Objectives)】
- 画像処理を含むGUIアプリケーションをオブジェクト指向,Model-View-Controller,デザインパターンに基づいて開発できる。
- 類題として与えられたGUIアプリケーションをオブジェクト指向,Model-View-Controller,デザインパターンに基づいて開発できる。
教科書 / Textbooks
授業中に必要な資料を配布します。詳しくは第1回オリエンテーションでアナウンスします。
参考書(図書館蔵書には○) / References (Available in the library: ○)
○ 牛尾 剛「オブジェクト脳のつくり方」翔泳社 ISBN: 978-4798104188
○ 平沢 章「オブジェクト指向でなぜつくるのか」(第2版) 日経BP社 ISBN: 978-4822284657
○ E.ガンマ他著「デザインパターン」ソフトバンククリエイティブ,ISBN: 978-4797311129
○ M.ファウラー著「リファクタリング」オーム社 ISBN: 978-4274050190 (新装版): 図書館蔵書は旧版
他にも必要に応じて授業中に提示します。
授業計画・内容 / Class schedules and Contents
授業改善のため変更する可能性があります。オリエンテーションでのアナウンスに注意してください。なお,下記の箇条書きの番号は授業の回と1対1対応していません。また項目1つあたりの作業所要時間も揃っていません。実際には学生の進捗に合わせて調整します。
- オリエンテーション
- 画像処理〜ステージI: 画像処理の復習
- 画像処理〜ステージI: 移植
- ポリモーフィズム
- デザインパターンとそのポイント
- 画像処理〜ステージII: クラス設計
- 画像処理〜ステージII: 再構成
- 画像処理〜ふりかえり
- 画像処理〜補題
- 類題〜画面設計
- 類題〜アーキテクチャ設計
- 類題〜詳細設計
- 類題〜プログラミング
- 類題〜ふりかえり
- 全体のふりかえり
成績評価の方法 / Assessment Method
- 演習課題 (Exercise): 80%
- 積極的な授業への参加 (Class Participation): 20%
履修上の注意 / Remarks
- 前提として情報メディア工学実験IIとソフトウェア設計・同演習の内容を習得している必要があります。これらの科目の単位を取得していない状態で本科目を履修する場合には補習を受ける必要があるので,授業開始時までに教育担当者に相談してください。
- 過年度生でオブジェクト指向プログラミング演習として履修する場合は,オリエンテーション時に教育担当者に申告してください。
- 演習室が空いている時間を積極的に活用して予習・復習に努めてください。
担当者からのメッセージ / Message from the Instructor
プログラミングを上達させる最も良い方法は,自分が書いたコードを他人に添削してもらうコードレビューです。そのため本科目ではコードレビューを中心とした個別指導を重視しています。
キーワード / Keywords
ソフトウェア・モデリング,UML,ソフトウェア工学,ソフトウェア開発,オブジェクト指向開発,リファクタリング,コードレビュー,デザインパターン,画像処理,線形代数
software modeling, UML, software engineering, software development, object-oriented software development, refactoring, code review, design patterns, image processing, linear algebra