プログラミング特論(pdf)

講義の内容

プログラミング特論
実際的なプログラミングの知識・技法などに
ついて講義する
 プログラムの可読性,再利用性,安全性などを
考慮したコーディングの技法にフォーカス
 UML,デザインパターン,テスト駆動開発の
教育開発センター
天野憲樹
プログラミングなどについても講義
 プログラムを読むための基本テクニックも教授
プログラミング特論
講義の目標

講義の予定(シラバス)
一般目標:
1.
 実際的なプログラミングの知識と技法を習得し,
ソフトウェア開発においてそれらを利活用できる.

個別目標:
2.
3.
4.
 プログラムの可読性,再利用性,安全性などを考
5.
慮してプログラムを書くことができ,かつ第三者が
書いたプログラムを読み,理解することができる.
6.
7.
プログラミング特論
第1回:導入

導入
コードの品質
防御的プログラミング
変数に関するトピック
ステートメント①
ステートメント②
コードチューニング
8. リファクタリング
9. レイアウトとスタイル
10. UML
11. デザインパターン①
12. デザインパターン②
13. テスト駆動開発
14. コードリーディング
プログラミング特論
第2回:コードの品質
実際のソフトウェア開発に必要な知識と技法
について概観し,関連トピックを取り上げる
 プログラムデザインの知識と技法
 プログラミング言語関連の知識
 アルゴリズムとデータ構造の知識
 コーディングの知識と技法

プログラムの品質を高めるための基礎知識
について学ぶ
 抽象化,モジュール化,カプセル化,情報隠蔽,
継承,などの概念について
 上記の概念を実現するためのクラスやルーチン
などの実装についての注意事項やガイドライン
 プログラムのイディオムやパターンの知識
 開発環境やツールの知識
プログラミング特論
プログラミング特論
1
第3回:防御的プログラミング

最悪の事態に備えるプログラミングの技法
第4回:変数に関するトピック

 無効な入力への防御
プログラムの基本構成要素である変数に
ついて学ぶ
 アサーション(表明)
 変数の宣言と初期化のガイドライン
 DBC:
 変数のスコープ
Design By Conrtact
 エラー処理テクニック
 例外処理
 変数の永続性
 変数のバインディングタイム
 基本的なデータ型についての注意
プログラミング特論
第5回:ステートメント①

プログラムを構成する基本的なステートメント
(文)についての注意事項を学ぶ
プログラミング特論
第6回:ステートメント②

 ステートメントの順序
プログラムの制御に関するステートメント(文)
についての注意事項を学ぶ
 制御構造に関係する問題
 条件文に関する注意

プログラムの出入り口,再帰,など
 テーブル駆動方式
 ループ文に関する注意
 制御構造に関する一般的な注意

プログラミング特論
第7回:コードチューニング

コードのパフォーマンス(実行効率)を高める
ためのチューニング(調整)について学ぶ
制御構造に関する論理式の評価,など
プログラミング特論
第8回:リファクタリング

ソフトウェアを再構成するための技術である
リファクタリングについて学ぶ
 コードチューニングとは
 リファクタリングの概要
 コードチューニングの歴史的な経緯
 リファクタリングの具体例
 コードチューニングの正しい理解
 コードチューニングのテクニック
プログラミング特論
プログラミング特論
2
第9回:レイアウトとスタイル

プログラムのレイアウトとスタイルについての
基本を学ぶ
第10回:UML

 モデル化技法
 良いレイアウトとは
 レイアウトのスタイル
モデル化
 オブジェクト指向のモデル化技法

UML: Unified Modeling Language
 レイアウトの基本テクニック
 UMLの概要
 コメントのガイドライン
 UMLの構成要素(表記法)
プログラミング特論
プログラミング特論
第11回:デザインパターン①
第12回:デザインパターン②
ソフトウェアパターン
デザインパターンの概要
 プログラムからデザインパターンを学ぶ①




 Singleton

 Template
Method
 Factory Method
 Iterator


プログラミング特論
第13回:テスト駆動開発

プログラムからデザインパターンを学ぶ②


XPなどのアジャイル・ソフトウェア開発手法に
おけるテスト駆動の概念・手法を学ぶ
Adapter
Strategy
Composite
Decorator
Observer




State
Command
Façade
Chain of
Responsibility
アンチパターン
プログラミング特論
第14回:コードリーディング

ソースコードを読むための基礎的な知識と
技術を学ぶ
 アジャイル開発の概要
 コードを読む理由と読み方
(eXtreme Programming)の概要
 テスト駆動開発の概念・手法
 コードリーディングの手法と事前準備
 XP
 eclipseによるコードリーディング
 実践例:JUnit4.1のコードを読む
プログラミング特論
プログラミング特論
3