mcpField
C
cognitive-tutoring-architecture-designer

cognitive-tutoring-architecture-designer

github.com/garethmanning開発921149 回インストール6 日前に更新
リポジトリ

cognitive-tutoring-architecture-designer について

知識要素、ベイズ知識追跡、問題選択、段階的フィードバックを用いて、適応型チュータリングシステムの構成を設計するスキルです。Cognitive Tutorの枠組みに基づく学習システムの設計者や教育者向けです。

主な機能

  1. 01測定可能な知識要素の分解
  2. 02ベイズ知識追跡の設計
  3. 03要素間の依存関係の整理
  4. 04適応型問題選択の設計
  5. 05段階的フィードバックの設計

活用シーン

  1. 01代数学習における習熟度のモデル化
  2. 02生徒の弱点に応じた練習の計画
  3. 03よくある誤りと技能の対応付け

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/garethmanning/education-agent-skills --skill cognitive-tutoring-architecture-designer

インストール後、Claude Code で/cognitive-tutoring-architecture-designerを入力して読み込まれたか確認します。

詳細

認知チュータリングアーキテクチャの設計

このスキルの概要

チュータリングシステムの認知アーキテクチャ、すなわち知識コンポーネントモデル、知識追跡アルゴリズム、問題選択ロジック、フィードバックアーキテクチャを設計し、これらを組み合わせて適応型学習体験を実現します。このスキルは、カーネギーメロン大学のAndersonら(1995年)が開発したCognitive Tutorアーキテクチャに基づいています。このアーキテクチャは、現在も知的チュータリングにおいて最も実証的検証が進んでいるアプローチの1つです。Cognitive TutorのアプローチはACT-R理論に基づいています。これは、あらゆる分野の専門性を、個別に学習、練習、追跡できる複数の離散的な「知識コンポーネント」(プロダクションルール)に分解できるという考え方です。システムは各生徒が何を知っているかのモデル(知識追跡)を維持し、生徒がまだ習得していない知識コンポーネントを対象とする問題を選び、誤りが発生した場合は手順ごとにフィードバックを提供します。Paneら(2014年)は大規模なRAND評価を実施し、Cognitive Tutor Algebra Iが従来の指導と比べて生徒の学習成果を向上させたことを明らかにしました。AIが特に有用なのは、このアーキテクチャでは多くのコンポーネントにわたって個々の知識状態をリアルタイムで追跡する必要があるためです。この作業は計算上は容易ですが、30人の生徒を受け持つ教師が人力で行うのは不可能です。

エビデンスの基盤

Andersonら(1995年)は、人間の学習をプロダクションルール、つまりIF-THEN形式の知識コンポーネントの獲得としてモデル化する認知アーキテクチャ、ACT-R(Adaptive Control of Thought—Rational)に基づいてCognitive Tutorを開発しました。たとえば代数では、「方程式がax + b = cの形なら、最初の手順として両辺からbを引く」という知識コンポーネントが考えられます。重要な洞察は、複雑なスキルを有限個のこうしたコンポーネントに分解でき、それぞれを個別に追跡し、指導できるという点です。Cognitive Tutorは、各生徒が各知識コンポーネントを学習済みである確率を推定する生徒モデルを維持し、最も習得度の低いコンポーネントを対象とする問題を選択しました。CorbettとAnderson(1995年)は、生徒の習得度を追跡するアルゴリズムである知識追跡(KT)を開発しました。KTは隠れマルコフモデルを使用します。各知識コンポーネントは「学習済み」か「未学習」のいずれかであり、これが隠れ状態となります。生徒が知識コンポーネントを含む問題の手順に取り組むたび、システムはその手順が正解か不正解かを観測値として取得し、そのコンポーネントが学習済みである確率の推定値を更新します。モデルは4つのパラメーターで構成されます。P(L₀) — 指導を受ける前に生徒がそのコンポーネントを知っていた確率、P(T) — 機会ごとにそのコンポーネントを学習する確率、P(G) — 知識がなくても正解を推測する確率、P(S) — 知識があるにもかかわらず間違える確率です。P(Lₙ)がしきい値(通常は0.95)を超えると、そのコンポーネントは習得済みと見なされます。KoedingerとAleven(2007年)は、認知チューターにおける「支援のジレンマ」を提唱しました。即時のヒントや手順ごとのガイダンスなど、支援を与えすぎると、生徒が分野の知識ではなくチューターのインターフェースを学習してしまう可能性があります。最適な支援の程度は生徒の現在の知識状態によって異なり、苦戦している生徒にはより多くの支援が有効である一方、上級の生徒にはより少ない支援が有効であることが示されました。Ritterら(2007年)は、2,600校を超える学校でのCognitive Tutor Algebraの導入について報告し、このアプローチの拡張性を実証しました。Paneら(2014年)は、RANDの資金提供を受けてCognitive Tutor Algebra Iのランダム化比較試験を実施し、代数学の学習成果に小さいながらも有意なプラスの効果があることを明らかにしました。特に、想定されたモデルに忠実にシステムを使用した生徒で効果が見られました。

入力スキーマ

教師が次の情報を提供します:

  • スキル領域: 生徒が学ぶ必要のある内容です。例:「一次方程式を解く — 1段階(x + 5 = 12)から2段階(3x + 5 = 20)、さらに両辺に変数がある多段階の方程式(4x + 3 = 2x + 11)まで」/「化学反応式の係数をそろえる」/「生データからヒストグラムを作成し、読み取る」
  • 知識要素: 学習内容を構成する基本要素です。例:「一次方程式の場合:(1) 未知数を特定する、(2) 逆演算(加算 ↔ 減算)、(3) 逆演算(乗算 ↔ 除算)、(4) 演算の順序(乗算/除算より先に加算/減算を元に戻す)、(5) 両辺に同じ演算を適用する、(6) 同類項をまとめる、(7) 変数を片方の辺に移す」/「ヒストグラムの場合:(1) 連続データを特定する、(2) 適切な階級幅を選ぶ、(3) 各階級の度数を計算する、(4) 軸の目盛りを設定する、(5) 隙間なく棒を描く、(6) ヒストグラムから値を読み取る、(7) 分布を比較する」

任意(利用可能な場合、コンテキストエンジンによって注入されます):

  • 生徒のレベル: 学年と習熟度
  • 教科: カリキュラム上の教科
  • よくある誤り: よくある間違いとその原因
  • 習熟度のしきい値: 習得とみなす基準
  • システムコンテキスト: AI、教師主導、またはハイブリッド

プロンプト

You are an expert in cognitive tutoring architecture, with deep knowledge of Anderson et al.'s (1995) ACT-R-based Cognitive Tutor framework, Corbett & Anderson's (1995) knowledge tracing algorithm, Koedinger & Aleven's (2007) assistance dilemma research, Ritter et al.'s (2007) large-scale deployment data, and Pane et al.'s (2014) RAND evaluation. You understand that effective tutoring systems are built on a precise cognitive model — a decomposition of the target skill into knowledge components that can be individually tracked, practised, and mastered. You know that the quality of the cognitive model determines the quality of the tutoring: a poorly decomposed skill set leads to misdiagnosis, inappropriate problem selection, and ineffective feedback.

CRITICAL PRINCIPLES:
- **Decompose into TESTABLE knowledge components.** Each component must be independently observable — there must be a problem step where the component is required and where success or failure reveals whether the student has learned it. If you can't design a problem step that isolates a component, the decomposition is too coarse.
- **Knowledge components should be at the GRAIN SIZE of learning.** Too coarse (e.g., "can solve equations") and you can't diagnose specific weaknesses. Too fine (e.g., "can subtract 7 from 22") and you're tracking arithmetic, not algebra. The right grain size is the level at which students make conceptually meaningful errors.
- **Map the dependency structure.** Some components depend on others — you can't apply an operation to both sides if you don't know the inverse operation. The problem selection logic should respect these dependencies: don't present problems requiring Component 5 if the student hasn't mastered Components 1-4.
- **Link errors to components.** Each common error should be traceable to a specific knowledge component that has not been mastered. If a student subtracts from only one side, that's a failure of the "apply to both sides" component, not a general "equation" failure. The feedback should target the specific component.
- **Mastery is probabilistic, not binary.** Knowledge tracing gives a PROBABILITY of mastery, not a certainty. A student who gets 3 in a row right might still be guessing (P(G) > 0). A student who gets one wrong might have slipped (P(S) > 0). The system should require consistent performance before declaring mastery.

Your task is to design a cognitive tutoring architecture for:

**Skill domain:** {{skill_domain}}
**Knowledge components:** {{knowledge_components}}

The following optional context may or may not be provided. Use whatever is available; ignore any fields marked "not provided."

**Student level:** {{student_level}} — if not provided, design for a general secondary school context.
**Subject area:** {{subject_area}} — if not provided, infer from the domain.
**Common errors:** {{common_errors}} — if not provided, identify the most likely errors based on the knowledge components.
**Mastery threshold:** {{mastery_threshold}} — if not provided, use P(Lₙ) ≥ 0.95 (approximately 3-4 consecutive correct applications).
**System context:** {{system_context}} — if not provided, design for an AI tutoring system.

Return your output in this exact format:

## Cognitive Tutoring Architecture: [Skill Domain]

**Domain:** [What students are learning]
**Knowledge components:** [How many, at what grain size]
**Architecture basis:** [ACT-R / knowledge tracing — cite the specific principles used]

### Knowledge Component Map

[Complete map of all knowledge components, their descriptions, their dependencies, and the observable evidence of mastery for each]

| KC ID | Knowledge Component | Description | Depends On | Evidence of Mastery | Common Error |
|---|---|---|---|---|---|
| [ID] | [Name] | [What the student knows/can do] | [Prerequisites] | [What correct performance looks like] | [What incorrect performance looks like] |

### Dependency Graph

[Visual or textual representation of which components must be mastered before others can be addressed]

### Knowledge Tracing Design

[How the system tracks mastery — the algorithm, parameters, and mastery threshold]

### Problem Selection Logic

[How the system chooses the next problem — which components to target, how to combine components, and how difficulty increases]

### Feedback Architecture

[What feedback to provide for each error type — linked to specific knowledge components]

### Example Tutoring Sequence

[A realistic sequence showing how the system would tutor a student through 5-8 problems, adapting based on their responses]

**Self-check before returning output:** Verify that (a) each knowledge component is independently testable, (b) components are at the right grain size, (c) dependencies are mapped, (d) errors are linked to specific components, and (e) mastery is treated probabilistically.

出力例

シナリオ: スキル領域:「一次方程式を解く — 1段階(x + 5 = 12)から2段階(3x + 5 = 20)、さらに両辺に変数がある方程式(4x + 3 = 2x + 11)まで」/知識要素:「(1) 未知数を特定する、(2) 加算/減算の逆演算、(3) 乗算/除算の逆演算、(4) 演算を元に戻す順序、(5) 両辺に同じ演算を適用する、(6) 同類項をまとめる、(7) 変数を片方の辺に集める」/生徒のレベル:「Year 8、正式な代数学の学習の最初の学期」/教科:「数学」/よくある誤り:「片方の辺だけから引く、演算の順序を間違える(引く前に割る)、3x が 3 × x を意味することを理解していない、異なる項をまとめる(3x + 5 を 8x にする)」


認知的チュータリングアーキテクチャ:一次方程式を解く

領域: 1段階から両辺に変数があるものまでの一次方程式 知識要素: 概念的・手続き的な粒度で7つ アーキテクチャの基盤: ACT-R のプロダクションルールモデル(Anderson et al., 1995)とベイズ知識追跡(Corbett & Anderson, 1995)

知識コンポーネントマップ
KC ID知識コンポーネント説明依存先習得の証拠よくある誤り
KC1未知数を特定するx(または任意の文字)が、方程式を解くことで明らかになる未知の数を表すと認識しますなし生徒が「x の値を求める必要があります」と言える生徒が x を未知の数ではなくラベルとして扱い、代数的な手順を踏まずに見ただけで「解こう」とする
KC2加法/減法の逆演算+b の逆演算は −b であり、その逆も同様であることを理解していますKC1x + 5 = 12 が与えられたとき、生徒が「5 を引く」を正しい演算として特定する生徒が引く代わりに足す(またはその逆をする)。引く代わりに 12 に 5 を足す
KC3乗法/除法の逆演算×a の逆演算は ÷a であり、その逆も同様であることを理解しています。また、3x は 3 × x を意味することを理解していますKC13x = 15 が与えられたとき、生徒が「3 で割る」を正しい演算として特定する生徒が割る代わりに 3 を引く。または、3x = 3 × x であることを理解していない
KC4演算の順序演算を元に戻すときは、BIDMAS の順序を逆にします。つまり、乗法/除法の前に加法/減法を元に戻しますKC2, KC33x + 5 = 20 が与えられたとき、生徒が最初に 5 を引き、その後 3 で割る生徒が先に 3 で割り、(3x + 5)/3 = 20/3 とする。これは代数的には正しいものの、簡略化がかなり難しくなる。または、3x だけを 3 で割って誤りを生じさせる
KC5両辺一方の辺に行った演算は、もう一方の辺にも行う必要がありますKC2, KC3生徒が「3x + 5 − 5 = 20 − 5」と書く(両辺から引いていることを示す)生徒が左辺から 5 を引かずに「3x = 20 − 5」と書く。または、左辺から 5 を引くが右辺からは引かない
KC6同類項をまとめる同じ変数を持つ項(3x + 2x = 5x)と定数項(7 + 3 = 10)をまとめて式を簡略化でき、異なる種類の項はまとめてはいけないと理解していますKC13x + 2x + 5 = 20 が与えられたとき、生徒が正しく 5x + 5 = 20 に簡略化する生徒が異なる種類の項をまとめる(3x + 5 = 8x など)。または、まとめるべき同類項をまとめない
KC7変数項を片側に集める変数項に逆演算を適用して、変数項を一方の辺に移せますKC2, KC54x + 3 = 2x + 11 が与えられたとき、生徒が両辺から 2x を引き、2x + 3 = 11 を得る変数を引くべきところで数を引く。または、同じ辺から 4x と 2x を同時に引こうとする
依存関係グラフ
KC1 (Identify unknown)
├── KC2 (Inverse +/−)
│   ├── KC4 (Operation order) ← also requires KC3
│   └── KC5 (Both sides) ← also requires KC3
├── KC3 (Inverse ×/÷)
│   ├── KC4 (Operation order) ← also requires KC2
│   └── KC5 (Both sides) ← also requires KC2
└── KC6 (Combining like terms)

KC5 (Both sides) + KC2 → KC7 (Collecting variables)
KC4 + KC5 + KC6 → Multi-step equation competence
KC4 + KC5 + KC6 + KC7 → Variables-on-both-sides competence
知識追跡の設計

アルゴリズム: ベイズ知識追跡法(Corbett & Anderson、1995)

パラメーター(初期値。領域ごとに調整):

パラメーター値意味
P(L₀)0.10指導を受ける前に生徒がコンポーネントを知っている確率(新しい代数概念では低い値)
P(T)0.20練習の機会ごとにコンポーネントを学習する確率
P(G)0.15知識がなくても正解を推測する確率(複数の手順が必要な代数では低い値)
P(S)0.10知っているにもかかわらず間違える確率
習得のしきい値0.95コンポーネントを習得したとみなす P(Lₙ) の値

更新ルール: KC_i に関係する問題のステップに対する生徒の各回答後に、次のように更新します。

  • 正解の場合:P(Lₙ) = P(Lₙ₋₁)(1 - P(S)) / [P(Lₙ₋₁)(1 - P(S)) + (1 - P(Lₙ₋₁))P(G)] — 次に学習を適用します:P(Lₙ) = P(Lₙ) + (1 - P(Lₙ))P(T)
  • 不正解の場合:P(Lₙ) = P(Lₙ₋₁)P(S) / [P(Lₙ₋₁)P(S) + (1 - P(Lₙ₋₁))(1 - P(G))] — 次に学習を適用します:P(Lₙ) = P(Lₙ) + (1 - P(Lₙ))P(T)

平易に言うと: 生徒がステップに取り組むたびに、システムは関連する知識コンポーネントを知っているかどうかの推定を更新します。正解すると習得度の推定値が上がり、不正解だと下がります。ただし、システムは運よく当たる推測(P(G))と不注意による間違い(P(S))を考慮するため、1 回の正解だけで習得が証明されるわけではなく、1 回の誤りだけで知識がないと証明されるわけでもありません。習得のしきい値 0.95 に達するには、約 3~4 回連続で正しく適用する必要があります。

問題選択ロジック

ルール 1:依存関係を守ります。 前提となるすべての KC を習得していない場合は、KC_n を必要とする問題を提示しません。

ルール 2:未習得の要素のうち、最も弱いものを目標にします。 前提条件を満たした知識要素のうち、P(Lₙ) が最も低いものを含む問題を選びます。

ルール 3:要素を徐々に組み合わせます。 まず、必要な KC が 1~2 個だけの問題から始めます。要素を習得するにつれて、KC を同時に 3~4 個必要とする問題を導入します。これにより、認知負荷を抑えます。

ルール 4:習得済みの要素を織り交ぜます。 忘却を防ぎ、習得状態が維持されていることを確認するため、ときどき、以前に習得した KC が必要なステップを含めます。

問題の難易度の進行:

レベル必要な KC問題の例提示するタイミング
1KC1, KC2x + 5 = 12開始時
2KC1, KC33x = 15KC2 の習得後
3KC1, KC2, KC3, KC4, KC53x + 5 = 20KC2、KC3 の習得後
4KC1-KC63x + 2x + 5 = 20KC4、KC5 の習得後
5KC1-KC74x + 3 = 2x + 11KC4、KC5、KC6 の習得後
フィードバックの設計
誤りのパターン考えられる KC のつまずきフィードバック
生徒が見ただけで x を推測しようとするKC1「この方程式は、推測ではなく代数の手順で解く必要があります。目標は、片側に x だけを残すことです。どんな計算をすればよいでしょうか?」
引き算ではなく足し算をする(またはその逆)KC2「両辺に 5 を足しましたね。でも、x にはすでに 5 が足されています。5 を足すことの反対は何でしょうか?」
割り算をせず、3x から 3 を引くKC3「3x は 3 と x の掛け算だということを思い出してください。掛け算を元に戻すには、何をすればよいでしょうか?」
3x + 5 = 20 で、引き算をする前に割り算をするKC4「すぐに 3 で割ろうとしましたね。でも、+5 が邪魔になっています。まず足し算を元に戻してみましょう。式を作った順序を逆にたどります。」
片方の辺だけを計算するKC5「左辺から 5 を引きましたね。右辺はどうでしょうか? 方程式は天秤のようなものです。片側にしたことは、もう片側にもする必要があります。」
3x + 5 = 8x と書くKC6「3x と 5 を足して 8x にしましたね。でも、3x と 5 は異なる種類の項です。一方には x があり、もう一方にはありません。同じ種類の項だけをまとめられます。」
変数の移項に戸惑うKC7「4x + 3 = 2x + 11 では、両辺に x があります。解くには、まずすべての x の項を片方に集めましょう。右辺の 2x を消すにはどうすればよいでしょうか?」
指導シーケンスの例

すべての要素について P(L₀) = 0.10 の生徒が学習を始めます。

問題 1: x + 8 = 15(KC1、KC2、KC5 を確認)

  • 生徒の解答:x = 15 - 8 = 7 ✓
  • KC1:P(L) → 0.28、KC2:P(L) → 0.28、KC5:P(L) → 0.28

問題 2: x - 3 = 10(KC1、KC2、KC5 を確認 — 逆方向)

  • 生徒の解答:x = 10 + 3 = 13 ✓
  • KC1:P(L) → 0.51、KC2:P(L) → 0.51、KC5:P(L) → 0.51

問題 3: x + 12 = 5(KC1、KC2、KC5 を確認 — 負の結果)

  • 生徒の解答:x = 5 + 12 = 17 ✗(KC2 のつまずき — 引き算ではなく足し算をした)
  • システムのフィードバック:「5 に 12 を足しましたね。でも、方程式は x に 12 を足すと 5 になる、と示しています。+12 を元に戻すには、足すのではなく引く必要があります。」
  • KC2:P(L) → 0.33(低下)、KC5:更新なし(誤りは KC5 ではなく KC2 によるもの)

問題 4: x + 12 = 5(同じ問題に再挑戦)

  • 生徒の解答:x = 5 - 12 = -7 ✓
  • KC2:P(L) → 0.53

問題 5: 4x = 20(KC1、KC3 を確認 — 掛け算/割り算、新しい KC)

  • 生徒の解答:x = 20 ÷ 4 = 5 ✓
  • KC3:P(L) → 0.28

問題 6: 7x = 21(KC1、KC3 を確認)

  • 生徒の解答:x = 21 - 7 = 14 ✗(KC3 のつまずき — 割り算ではなく引き算をした)
  • システムのフィードバック:「7x は 7 と x の掛け算です。7 を掛けた状態を元に戻すには、引くのではなく割る必要があります。」
  • KC3:P(L) → 0.17

[シーケンスは続きます。KC2 と KC3 の習得度が約 0.95 に達すると、システムは KC4 と KC5 が必要な 2 段階の方程式を導入します……]


既知の制約

  1. 知識要素の分解は科学というより技芸です。 同じ領域でも、研究者によって分解の仕方は異なります。Anderson らの ACT-R フレームワークは理論的な指針を提供しますが、粒度、要素の境界、依存関係の構造に関する実践的な判断には、領域の専門知識と反復的なテストが必要です。上記の分解は原則に基づく出発点であり、検証済みの認知モデルではありません。

  2. 標準的な知識追跡では、知識状態が二値であると仮定します。 Corbett と Anderson(1995)のモデルでは、各 KC は「習得済み」か「未習得」のいずれかであると仮定しています。実際には、知識は連続的なものです。たとえば、生徒は逆演算を部分的に理解しており、簡単な状況では正しく適用できても、複雑な状況では失敗することがあります。より高度なモデル(ニューラルネットワークを用いる Deep Knowledge Tracing など)はこの問題に対処しますが、その代わりに解釈可能性が損なわれます。

  3. RAND の評価では、効果量は控えめでした。 Pane ら(2014)は、Cognitive Tutor Algebra I によって学習成果が向上したと報告しましたが、効果量は比較的小さく、導入2年目で 0.22 でした。実用上の重要性は状況によって異なります。平均的な効果が小さくても、特定の生徒グループではより大きな効果が隠れている可能性があります。導入の忠実度は主要な調整要因でした。

  4. 認知チューターは、構造が明確な領域で最も効果を発揮します。 一次方程式、化学式の係数合わせなどの手続き的な領域は、知識要素にきれいに分解できます。構造が不明確な領域(作文、歴史分析、創作課題など)では、このような分解は困難です。認知チューターのアーキテクチャは強力ですが、適用できる領域には限りがあります。

コメント