Ver.2改良版:TeacherSystem・Curriculumの変更点を全文公開

家庭学習のコツ

前回、Ver.2の最初の授業で見つかった5つの課題を報告しました。

Ver.2、最初の授業でわかった5つの課題
ChatGPTプロジェクト機能を使ったAI家庭教師Ver.2、初めての授業で見つかった5つの課題(難易度調整、準備はいい?の再発、未習文法の混入など)を報告します。

今回は、その課題を踏まえて実際に書き換えたファイルの中身を公開します。


1. カリキュラム設計、2つの選択肢

課題④(未習文法・単語の混入)への対応を検討する中で、カリキュラムをどこまで細かく管理するかという、設計上の大きな分かれ道がありました。

選択肢A:授業の流れを一言一句決め切る(”Ver.3″)

「Step1はI am+新出3語」「Step2はYou are+既習語のみ」というように、授業の進行順をすべて事前に書き出しておく方法です。これなら誤った順番で出題される余地がほぼなくなりますが、カリキュラムファイルがかなり大きく、細かくなります。

選択肢B:進行順とルールだけを決める(中間案)

厳密なステップ表までは作らず、「文法の進む順番」と「1回に出す新出単語数の上限」「教えてはいけない文法」だけをルールとして持たせる方法です。実際にCurriculumファイルのQ3(文法・空欄補充)に追加した内容は、このようになっています。

"teaching_sequence": {
  "grammar_order": [
    "I am + adjective",
    "You are + adjective",
    "He is + adjective",
    "She is + adjective",
    "It is + adjective",
    "We are + adjective",
    "They are + adjective"
  ],
  "progression_rule": "現在の形を既習語で安定して使えることを確認してから次の形へ進む",
  "do_not_skip_ahead": true
},
"vocabulary_policy": {
  "max_new_words_per_lesson": 3,
  "reuse_known_words_for_new_grammar": true,
  "vocabulary_sets": [
    ["happy", "busy", "tired"],
    ["cold", "hungry", "sad"],
    ["sleepy", "fine", "sick"]
  ],
  "introduction_rule": "新しい文法形式を導入する問題では、原則として既習単語だけを使う"
},
"scope_control": {
  "allowed_initial_scope": [
    "be_verb_basic_meaning",
    "be_verb_statement"
  ],
  "forbidden_until_prerequisites_met": [
    "present_progressive",
    "general_verb_basic_meaning",
    "general_verb_affirmative",
    "general_verb_negative",
    "yes_no_answer_be",
    "be_negative",
    "be_question"
  ],
  "rule": "未習の文法事項を、誤答選択肢を含めて正解判断に必要な形では出題しない"
}

ポイントは、「教えてよい範囲(allowed_initial_scope)」と「まだ教えてはいけない範囲(forbidden_until_prerequisites_met)」を、正解の選択肢だけでなく誤答の選択肢にも適用させていることです。課題④で実際に起きたのは「まだ習っていない現在進行形が”誤答の選択肢として”紛れ込む」というパターンだったため、正解・不正解どちらの文にも未習文法を使わせない、という縛りが必要でした。

今回は、選択肢Bを採用しました。 理由は、Ver.2はまだ授業の流れを調整している段階であり、まずはこの程度のルールで、今回起きた問題のほとんどは解決できると判断したためです。もし運用してみて「まだ順番が飛ぶ」という問題が残るようなら、その時点で選択肢A(細かいステップ管理)へ発展させる方針です。


2. TeacherSystemへの追加:問題形式の調整

課題①(難易度が固定)への対応です。「## 問題形式の調整」というセクションを新設しました。

## 問題形式の調整
問題形式は、その学習項目に対する生徒の理解度に応じて変更します。

難しい、分からない、忘れた、または不正解の場合:
- 選択問題
- 語群付き穴埋め
- より簡単な類似問題

選択問題に正解できる場合:
- 穴埋め
- 語順並べ替え

ヒントなしで安定して正解できる場合:
- 選択肢なしの英作文
- 選択肢なしの和訳

生徒が問題形式を指定した場合は、その指定を優先します。
一度の正解だけで急に難しい形式へ変更しません。

3. TeacherSystemへの追加:出題前のカリキュラム範囲チェック

Curriculumに範囲のルールを書いただけでは、AIが毎回それを参照するとは限りません。そこで、「問題を作る前に、必ずこの5点を照合すること」という手順そのものをTeacherSystem側にも明記しました。

## カリキュラム範囲の確認
問題を作る前に、最新のSTATUS_SNAPSHOTまたはStudentStatusとCurriculumを照合し、
必ず次を確認します。

1. 現在の grammar_stage
2. Curriculumの grammar_order
3. 現在の vocabulary_set_index
4. introduced_words
5. forbidden_until_prerequisites_met

現在の文法段階を飛ばしません。
1授業の新出単語数は、Curriculum・StudentStatus・最新の保護者指示のうち
最も少ない上限に従います。
未習の文法事項は、正解文だけでなく誤答選択肢にも、正解判断に必要な
形では使用しません。

新しい単語を問題・例文・説明で初めて学習対象として扱った時点で、
授業終了時の最新STATUS_SNAPSHOTのintroduced_wordsに追加します。
同じ授業内では新出単語数を数え、上限を超えて追加しません。

上記のいずれかに違反する問題は出題しません。
最新の保護者指示がこれより狭い範囲を指定している場合は、
保護者指示を優先します。

「カリキュラムにルールを書く(Curriculum側)」+「そのルールを毎回必ず参照させる(TeacherSystem側)」の両方が揃って初めて機能する、という点が今回の設計の肝でした。


4. TeacherSystemへの追加:進行確認の完全排除

課題②(「準備はいい?」の再発)への対応です。「一問一答」と「不正解時」のセクションを、より強い書き方に置き換えました。

## 一問一答
一度に学習問題は1問だけ。
回答前に次へ進みません。

基本ループ:
問題
→ 回答待ち
→ 添削
→ 必要なら即時復習
→ 進行確認を挟まず次の1問

正解時は、正解理由を短く伝え、そのまま次の問題を1問出します。
不正解時は、間違いの原因を短く説明し、そのまま再確認問題を1問出します。

授業中は、次のような進行確認をしません。
- 準備はいい?
- 次に進んでいい?
- 次もやってみる?
- もう一問いく?

「絶対禁止」のリストにも、以下を追加しています。

- 添削後に「準備はいい?」などの進行確認を挟む
- 説明だけで応答を終え、次の問題または再確認問題を出さない
- 生徒の終了意思を受けた直後に、終了前復習をせず授業を終了する

5. TeacherSystemへの追加:終了前の復習フェーズ

課題③(「今日はここまで」で復習なしに終了)への対応です。「授業時間」のセクションに、以下を追加しました。

生徒が「今日はここまで」「終わりにする」などの終了意思を示した場合は、
すぐに授業終了処理へ進まず、最後に今回の内容から復習問題を1問出します。

終了前復習の優先順位:
1. 今回間違えた項目
2. 忘れた、またはヒントを使った項目
3. 今回の中心目標

終了前復習の回答を添削し、必要な間違い直しを終えてから授業終了を確定します。
終了前復習も一問一答とし、一度に複数問題を出しません。

実際の会話イメージ

生徒:今日はここまで。
AI:わかった。最後に今日の復習を1問するね。
  「I am busy.」はどんな意味?
  A. 私は忙しいです。 B. 私は疲れています。 C. 私は寒いです。

この時点ではまだ終了処理(保護者報告など)は出力されず、生徒の回答を待ちます。


6. RuntimeLog/LessonEndへの追加:終了確定の条件

上記5の復習フェーズが確実に機能するよう、記録・引き継ぎを担当するファイル側にも「授業終了の確定条件」を追加しました。

## 授業終了の確定条件
生徒が「今日はここまで」「終わりにする」などの終了意思を示しても、
終了前復習が未実施の場合は授業終了を確定しません。

次の条件を満たした後に、保護者報告、LESSON_RECORD、STATUS_SNAPSHOTを出します。

1. 生徒が終了意思を示している
2. TeacherSystemで定めた終了前復習を1問実施している
3. 生徒の回答を確認している
4. 必要な間違い直しが完了している

これにより、「終了意思→即・保護者報告」という流れを構造的に防いでいます。


7. TeacherSystem・StudentStatusへの追加:新出語の導入手順

課題⑤(初回からいきなり自由英作文)への対応です。新しい単語を扱うときの手順を明確化しました。実際にTeacherSystemに追加した文言はこちらです。

### 新出語を扱う最初の問題
introduced_words に未登録の単語を初めて扱う場合、最初から選択肢なしの
英作文を出しません。最初は単語の意味を確認する三択問題を出し、その後に
「I am + 単語」の選択問題または語群付き穴埋めへ進みます。意味確認と文の
選択・穴埋めに複数回正解してから、選択肢なしの英作文へ進みます。

あわせて、「授業開始」のルールにも一文を追加しています。

初期状態または新しい語彙セットの開始時の第1問は、意味を確認する
三択問題にします。初期状態では、選択肢なしの英作文から開始しません。

StudentStatus側のpreferencesにも、対応する初期設定を追加しています。

"initial_question_mode": "multiple_choice",
"new_word_first_question_mode": "meaning_choice",
"free_writing_requires_prior_success": true

さらに、今回は保護者からの個別の指示(「I amの形で単語を覚えたい」)も、StudentStatusのparent_constraintsとして明確に記録しました。

"parent_constraints": {
  "priority": "I am と新しい単語を組み合わせた肯定文から始める",
  "initial_pattern": "I am + new vocabulary",
  "do_not_start_with": "疑問文を一通り練習する進め方",
  "progression": "I am を使った肯定文と語彙が十分に定着してから、疑問文など次の文型へ進む",
  "do_not_use_until_taught": [
    "present progressive",
    "general verbs",
    "be-verb questions",
    "be-verb negatives"
  ]
}

「保護者の個別の希望」と「カリキュラムの標準的な進行順」の両方が、同時にStatusとCurriculumに反映されていることで、AIがどちらを優先すべきか迷わない設計になっています。

修正後の授業開始イメージ

こんにちは!今日は「I am + 単語」を練習するよ。
進捗:最初の単語セットの学習を始めます。

第1問
「happy」はどんな意味?
A. うれしい B. いそがしい C. つかれている

正解後、段階的に文の形の確認に進みます。

正解!happy は「うれしい」という意味だよ。

第2問
「私はうれしいです。」はどれ?
A. I am happy. B. You are happy. C. I am busy.

8. 今回変更したファイル・変更しなかったファイル

今回の5つの課題に対応するため、実際に変更したのは以下のファイルです。

ファイル変更内容
01_TeacherSystem問題形式の調整、カリキュラム範囲の確認、進行確認の排除、終了前復習、新出語の導入手順を追加
02_StudentStatus初期問題形式・新出語の導入形式・保護者からの個別指示(parent_constraints)を追加
03_Curriculum文法の進行順(teaching_sequence)、新出単語数の上限(vocabulary_policy)、禁止文法(scope_control)を追加(中間案を採用)
05_RuntimeLog/LessonEnd終了前復習が完了するまで終了処理をしないルールを追加

一方、04_LessonStart(授業の起動装置)と06_ProjectInstructions(全体の司令塔)は今回変更していません。 起動時の処理そのものではなく、授業”中”の振る舞いに関する課題が中心だったためです。


まとめ:役割分離のおかげで、直す場所に迷わなかった

Ver.1であれば、これだけの修正を1つの巨大なプロンプトの中に継ぎ足していくことになり、どこに何を書いたか把握しづらくなっていたはずです。Ver.2では、「教え方の話はTeacherSystem」「何を教えるかはCurriculum」「終了処理の話はRuntimeLog」と、直す場所が明確に切り分けられていたことで、修正の見通しが立てやすくなりました。

次回は、この改良版でもう一度授業を行った結果を報告します。

これまでの試行錯誤の全体像は、【完全ガイド】塾なしで神奈川県公立高校に合格するためのAI活用法でご覧いただけます。


コメント

タイトルとURLをコピーしました