付録 C — 授業での使い方
この付録では、第 4〜9 章を 5 回(または 3 回)の授業として進める方法を示します。第 1〜3 章を読み、2.4 節のセットアップを済ませた受講者は、第 1 回から始められます。
C.1 コース全体図
| 回 | 章 | タイトル | テーマ | 提出物 |
|---|---|---|---|---|
| 1 | 4 | CADL モデリング | SoS の構造 | my_delivery_v1.cadl(構造のみ) |
| 2 | 5 | DSL 設計 | 規範:ライフサイクルとモニター | my_delivery_v2.cadl(lifecycle + monitors 付き) |
| 3 | 6 | 可視化 | 仕様を視覚的に読み・比較する | スクリーンショット付き A/B 比較レポート |
| 4 | 7(と 8) | シミュレーション | 仕様の実行とトレース解読 | ベースライントレース + パラメータスイープ |
| 5 | 9 | 改善 | 観察結果を仕様の改善に活かす | my_delivery_v3.cadl + Before/After レポート |
授業では第 8 章(Unity)は任意です。第 8 章の演習 8.1(★★★)は第 4 回に属します。
各回 授業 90 分 + 宿題 3 時間程度。5 回を通した最終提出物は 3 ページのレポート(初期モデル / シミュレーション比較 / 振り返り)。
リポジトリの公開状況
第 1〜3 回は cadl と cadl-explorer だけで進められます(★★★ の演習 6.3 だけは、シミュレータのリポジトリで作るログを使います)。第 4〜5 回は cadl-raspimouse-simulator にある Python 参照ランタイムを使います(入手方法は 2.4 節を参照してください)。
縮小 3 回バージョン
3 回しか時間が取れない場合(短期モジュール、集中講義など)の対応表:
| 縮小版 | 統合する内容 |
|---|---|
| 第 A 回 | 第 1 回 + 第 2 回(モデリング + DSL 設計) |
| 第 B 回 | 第 3 回 + 第 4 回(可視化 + シミュレーション) |
| 第 C 回 | 第 5 回(改善) |
課題自体は同じです。発展的な (★★★) 課題を宿題に回すだけです。
各回の構成
すべての回は同じ構成で、それぞれの部分は各章の同じ場所にあります。
- 学習目標 — 終わったときに何ができるようになるか(N.1 節「学ぶこと」)
- 前提 — 前回までの提出物 + 事前読書(章の終わりの「授業の前に」)
- 概念導入(約 30 分)— 必要最小限の理論(「背景」の小節)
- 演習(約 50 分)— ★(基本)→ ★★(中級)→ ★★★(発展)(「演習」の節)
- まとめ + 宿題(約 10 分)— 次回に持参するもの(章の終わりの「まとめと宿題」)
各章の手順(もとのコース A の各 Step で、1 つ約 15 分)は、授業の前の予習として、または授業の始めに行います。
評価ルーブリック(参考)
教員はこれを採点に、学生は自己点検に使えます。
| 項目 | 配点 |
|---|---|
| 各回の ★ と ★★ 課題をすべて完了 | 40% |
提出した CADL ファイルがすべて cadl check を通る | 20% |
| 最終 3 ページレポートが理解を示している(手順をなぞるだけでない) | 30% |
| ★★★ 発展課題に最低 1 つは挑戦している | 10% |
C.2 最終提出物の総まとめ
第 5 回終了時、すべての学生は以下を持っているはずです:
| 成果物 | 出る回 | 演習 |
|---|---|---|
my_delivery_v1.cadl(構造のみ) | 1 | 4.1 |
my_delivery_v2.cadl(lifecycle + monitors 付き) | 2 | 5.1〜5.2 |
session3_comparison.md + 2 枚のスクリーンショット | 3 | 6.2 |
session4_baseline.ndjson + パラメータスイープ表 | 4 | 7.1〜7.3 |
my_delivery_v3.cadl(改善版) + 3 ページ最終レポート | 5 | 9.2、9.4 |
(任意)test_rewards.py + 報酬実行コード | 5 | 9.3 |
(任意)violation_trace_view.py Streamlit ページ | 3 | 6.3 |
5 個(任意込みで 7 個)すべてを 1 つのコース提出物リポジトリに置きます。