changeset 52:780eab85e724

Update slides. Add links, add lectures
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Wed, 21 Jan 2015 20:26:55 +0900
parents 6972867ea8f4
children 65391f6321a8
files slide/slide.html slide/slide.md
diffstat 2 files changed, 149 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/slide/slide.html	Wed Jan 21 17:26:23 2015 +0900
+++ b/slide/slide.html	Wed Jan 21 20:26:55 2015 +0900
@@ -36,7 +36,7 @@
 			<!-- === begin markdown block ===
 
       generated by markdown 1.1.1 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13]
-                on 2015-01-21 17:26:16 +0900 with Markdown engine kramdown (1.4.2)
+                on 2015-01-21 20:24:29 +0900 with Markdown engine kramdown (1.4.2)
                   using options {}
   -->
 
@@ -46,6 +46,7 @@
   <li>大学ではどんなことをやっているか(講義, イベント, 研究)</li>
   <li>講義などでつまづくポイント</li>
   <li>つまづきの解決策</li>
+  <li>どのような講義をするべきか?</li>
 </ul>
 
 
@@ -56,13 +57,26 @@
 <div class="slide" id="3"><div>
 		<section>
 			<header>
-				<h1 id="section">講義で紹介する形式手法</h1>
+				<h1 id="section">講義で使用している形式手法</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
 <ul>
-  <li>model checking 的なアプローチ</li>
-  <li>証明的なアプローチ</li>
+  <li>仕様記述
+    <ul>
+      <li>UML</li>
+    </ul>
+  </li>
+  <li>model checking 的なアプローチ
+    <ul>
+      <li>Java Path Finder</li>
+    </ul>
+  </li>
+  <li>証明的なアプローチ
+    <ul>
+      <li>Haskell, Agda</li>
+    </ul>
+  </li>
 </ul>
 
 
@@ -73,12 +87,30 @@
 <div class="slide" id="4"><div>
 		<section>
 			<header>
+				<h1 id="section-1">仕様記述</h1>
+			</header>
+			<!-- _S9SLIDE_ -->
+
+<ul>
+  <li>モデリングと設計 の講義</li>
+  <li>iOS Application を作成する</li>
+  <li>ユースケース図やクラス図を使って仕様を考える</li>
+</ul>
+
+
+
+		</section>
+</div></div>
+
+<div class="slide" id="5"><div>
+		<section>
+			<header>
 				<h1 id="model-checking-">model checking 的なアプローチ</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
 <ul>
-  <li>Operationg System の講義</li>
+  <li><a href="http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/os/index.html">Operationg System</a> の講義</li>
   <li>Process/Thread Scheduling を考えた時に</li>
   <li>Dead Lock を起こすような Scheduling を実際に書いて実行させる</li>
   <li>Java Path Finder で Thread の実行順序を網羅的に実行する</li>
@@ -89,15 +121,15 @@
 		</section>
 </div></div>
 
-<div class="slide" id="5"><div>
+<div class="slide" id="6"><div>
 		<section>
 			<header>
-				<h1 id="section-1">証明的なアプローチ</h1>
+				<h1 id="section-2">証明的なアプローチ</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
 <ul>
-  <li>ソフトウェア工学 の講義</li>
+  <li><a href="http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/software/index.html">ソフトウェア工学</a> の講義</li>
   <li>集合, 論理, 関数, 自然演繹による証明</li>
   <li>型システム, Curry-Howard Isomorphism を通して Haskell, Agda で証明</li>
   <li>Haskell : 自然演繹と lambda calculus</li>
@@ -110,7 +142,7 @@
 		</section>
 </div></div>
 
-<div class="slide" id="6"><div>
+<div class="slide" id="7"><div>
 		<section>
 			<header>
 				<h1 id="agda-">Agda による証明を解説した例</h1>
@@ -119,29 +151,9 @@
 
 <ul>
   <li>Open Source Conference</li>
-  <li>ソフトウェア工学で学んだ Agda の使い方を発表</li>
+  <li>ソフトウェア工学で学んだ Agda を <a href="http://ie.u-ryukyu.ac.jp/~e115763/slides/events/osc2014/slide.html">Agda 入門</a>として発表</li>
   <li>Agda で SystemT の Nat の加法の交換法則を解説</li>
-  <li>ほとんどが定義の解説に時間を取られてしまう</li>
-</ul>
-
-
-
-		</section>
-</div></div>
-
-<div class="slide" id="7"><div>
-		<section>
-			<header>
-				<h1 id="section-2">圏によるプログラムの形式化</h1>
-			</header>
-			<!-- _S9SLIDE_ -->
-
-<ul>
-  <li>プログラムの変更を Monad で表す</li>
-  <li>プログラムの変更時に変更前のプログラムも残したまま変更する</li>
-  <li>全てのバージョンのプログラムを同時に実行できる</li>
-  <li>デバッグやテストと組み合せることでバグ</li>
-  <li>実行系と検証系を同時に走らせることもできる</li>
+  <li>定義の解説にほとんどの時間を取られてしまう</li>
 </ul>
 
 
@@ -152,15 +164,16 @@
 <div class="slide" id="8"><div>
 		<section>
 			<header>
-				<h1 id="section-3">学習コスト</h1>
+				<h1 id="section-3">圏によるプログラムの形式化</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
 <ul>
-  <li>論理, 自然演繹 -&gt; Haskell -&gt; Agda</li>
-  <li>それぞれのステップに壁がある</li>
-  <li>自然演繹では解けるけれど lambda term で書き直す</li>
-  <li>Haskell では定義できるけれど Agda で証明できない</li>
+  <li>プログラムの変更を Monad で表す</li>
+  <li>プログラムの変更時に変更前のプログラムも残したまま変更する</li>
+  <li>全てのバージョンのプログラムを同時に実行できる</li>
+  <li>デバッグやテストと組み合せることでバグを見付けたい</li>
+  <li>実行系と検証系を同時に走らせることもできる</li>
 </ul>
 
 
@@ -171,7 +184,27 @@
 <div class="slide" id="9"><div>
 		<section>
 			<header>
-				<h1 id="section-4">つまづくポイント</h1>
+				<h1 id="section-4">学習コスト</h1>
+			</header>
+			<!-- _S9SLIDE_ -->
+
+<ul>
+  <li>論理, 自然演繹 -&gt; Haskell -&gt; Agda</li>
+  <li>それぞれのステップに壁がある</li>
+  <li>論理とプログラム間で変換できないなど</li>
+  <li>自然演繹では解けるけれど lambda term で書き直す</li>
+  <li>Haskell では定義できるけれど Agda で証明できない</li>
+</ul>
+
+
+
+		</section>
+</div></div>
+
+<div class="slide" id="10"><div>
+		<section>
+			<header>
+				<h1 id="section-5">つまづくポイント</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
@@ -191,10 +224,10 @@
 		</section>
 </div></div>
 
-<div class="slide" id="10"><div>
+<div class="slide" id="11"><div>
 		<section>
 			<header>
-				<h1 id="section-5">つまづきをどう解決するか</h1>
+				<h1 id="section-6">つまづきをどう解決するか</h1>
 			</header>
 			<!-- _S9SLIDE_ -->
 
@@ -203,12 +236,59 @@
   <li>論理とプログラムの対応を見えるようにする
     <ul>
       <li>Agda は対話的に項を書き換えることができる</li>
-      <li>どこでつまづいても情報が手に入るようにしたい</li>
+      <li>どこでつまづいても情報が手に入るようにしたい
+        <ul>
+          <li>論理側でも、プログラム側でも、どのステップでも</li>
+        </ul>
+      </li>
       <li>対話的に情報を引き出す手段そのものを学ぶ</li>
     </ul>
   </li>
 </ul>
 
+
+
+		</section>
+</div></div>
+
+<div class="slide" id="12"><div>
+		<section>
+			<header>
+				<h1 id="section-7">他に講義に取りいれるもの?</h1>
+			</header>
+			<!-- _S9SLIDE_ -->
+
+<ul>
+  <li>仕様記述</li>
+  <li>他の証明支援系
+    <ul>
+      <li>Coq, …</li>
+    </ul>
+  </li>
+  <li>他の理論
+    <ul>
+      <li>Hoare Logic, Computational Tree Logic, …</li>
+    </ul>
+  </li>
+  <li>どのようなカリキュラムが良いか?</li>
+</ul>
+
+
+
+		</section>
+</div></div>
+
+<div class="slide" id="13"><div>
+		<section>
+			<header>
+				<h1 id="delta-">Delta の詳細</h1>
+			</header>
+			<!-- _S9SLIDE_ -->
+
+<ul>
+  <li>TODO…</li>
+</ul>
+
 <style>
 .slide.cover H2 {
     margin-top:72px;
--- a/slide/slide.md	Wed Jan 21 17:26:23 2015 +0900
+++ b/slide/slide.md	Wed Jan 21 20:26:55 2015 +0900
@@ -7,19 +7,29 @@
 * 大学ではどんなことをやっているか(講義, イベント, 研究)
 * 講義などでつまづくポイント
 * つまづきの解決策
+* どのような講義をするべきか?
 
-# 講義で紹介する形式手法
+# 講義で使用している形式手法
+* 仕様記述
+    * UML
 * model checking 的なアプローチ
+    * Java Path Finder
 * 証明的なアプローチ
+    * Haskell, Agda
+
+# 仕様記述
+* モデリングと設計 の講義
+* iOS Application を作成する
+* ユースケース図やクラス図を使って仕様を考える
 
 # model checking 的なアプローチ
-* Operationg System の講義
+* [Operationg System](http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/os/index.html) の講義
 * Process/Thread Scheduling を考えた時に
 * Dead Lock を起こすような Scheduling を実際に書いて実行させる
 * Java Path Finder で Thread の実行順序を網羅的に実行する
 
 # 証明的なアプローチ
-* ソフトウェア工学 の講義
+* [ソフトウェア工学](http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/software/index.html) の講義
 * 集合, 論理, 関数, 自然演繹による証明
 * 型システム, Curry-Howard Isomorphism を通して Haskell, Agda で証明
 * Haskell : 自然演繹と lambda calculus
@@ -28,20 +38,21 @@
 
 # Agda による証明を解説した例
 * Open Source Conference
-* ソフトウェア工学で学んだ Agda の使い方を発表
+* ソフトウェア工学で学んだ Agda を [Agda 入門](http://ie.u-ryukyu.ac.jp/~e115763/slides/events/osc2014/slide.html)として発表
 * Agda で SystemT の Nat の加法の交換法則を解説
-* ほとんどが定義の解説に時間を取られてしまう
+* 定義の解説にほとんどの時間を取られてしまう
 
 # 圏によるプログラムの形式化
 * プログラムの変更を Monad で表す
 * プログラムの変更時に変更前のプログラムも残したまま変更する
 * 全てのバージョンのプログラムを同時に実行できる
-* デバッグやテストと組み合せることでバグ
+* デバッグやテストと組み合せることでバグを見付けたい
 * 実行系と検証系を同時に走らせることもできる
 
 # 学習コスト
 * 論理, 自然演繹 -> Haskell -> Agda
 * それぞれのステップに壁がある
+* 論理とプログラム間で変換できないなど
 * 自然演繹では解けるけれど lambda term で書き直す
 * Haskell では定義できるけれど Agda で証明できない
 
@@ -57,8 +68,20 @@
 * 論理とプログラムの対応を見えるようにする
     * Agda は対話的に項を書き換えることができる
     * どこでつまづいても情報が手に入るようにしたい
+        * 論理側でも、プログラム側でも、どのステップでも
     * 対話的に情報を引き出す手段そのものを学ぶ
 
+# 他に講義に取りいれるもの?
+* 仕様記述
+* 他の証明支援系
+    * Coq, ...
+* 他の理論
+    * Hoare Logic, Computational Tree Logic, ...
+* どのようなカリキュラムが良いか?
+
+# Delta の詳細
+* TODO...
+
 <style>
 .slide.cover H2 {
     margin-top:72px;