セキュアコーディング(法政大学 理工学部 応用情報工学科 2年次後期 (2011年度))


授業の到達目標

バグやセキュリティホールのない安全なソフトウェアを設計する手法として近年重要度を増しているフォーマルメソッド(形式手法・数理的技法)について学び,その基本的な考え方を習得することを目標とする.

授業の概要と方法

安全なソフトウェアの設計に数理論理学が必須のツールであることを動機付けた後,数理論理学の基本概念(構文論と意味論,命題論理,述語論理,健全性,完全性)とそのソフトウェア設計への応用(構成的論理,様相論理,ホーア論理などを用いたアプローチ)を学ぶ.さらに,フォーマルメソッドの最近の研究事例を紹介し,今後の展望を与える. 数学的な面白さと,エンジニアリングとしての重要性の,両方が感じられるような授業を目指したい.数学的証明の詳細まで深入りして解説することはしないが,最も重要な「論理的に厳密に考える姿勢」が習得できるような授業を心掛けたい.基本的には講義形式にて授業を行う.

授業計画

(進行状況にあわせて適宜修正します. 資料はなるべく授業の前日までにアップするようにしますが, 間に合わなかったらすみません. また, 資料にアクセスする際にパスワードを要求されることがあります.)

テキスト

講義資料を配布する.

授業外に行うべき学習活動(準備学習等)

事前にテキスト(配布する講義資料)に目を通し,講義終了後に復習することが望ましい.特に,講義中の小テストにおいて出題される問題の一部は,期末試験にも形を変えて出題される可能性があり,十分に復習しておきたい.また,本授業内容に興味を抱き,数理論理学とその応用についてより深く学びたいという意欲のある者は,以下に挙げる参考書「論理と計算のしくみ」(萩谷昌己・西崎真也)を並行して熟読することをすすめる.

参考書

成績評価基準

期末試験により評価する.ただし,講義中の小テストの結果も考慮する.

情報機器使用

第11回授業では,PC に定理証明支援系 Coq をインストールして使用する. 現時点での最新バージョン Coq 8.3(に CoqIDE と呼ばれるインターフェースがバンドルされたもの)のバイナリは次の URL からダウンロード可能である.

その他

必須ではないが,科目「集合と命題論理」「離散数学」を履修していることが望ましい.また,「データ構造とアルゴリズム」「ソフトウエア工学」「人工知能概論」「形式言語とオートマトン」「論理回路」「数論」「計算量の理論」等の科目と関連が深い.
塚田恭章