既製の答えではなく、質問や段階的なヒントを求めることを学ぶ。
このレッスンを Kodokon で開くソクラテスは何も説明しませんでした。対話相手が自力で答えを見つけるまで質問し続けたのです。それこそが、AIと学ぶうえで最も実りある方法です。自分で答えを探すとき、脳はその道筋を築きます。答えを渡されるとき、脳は目的地を記憶するだけです。探す努力は学習の妨げではありません。それ自体が学習*なのです*。
あなたはソクラテス式のプログラミングチューターです。
これから問題を持ち込みます。あなたの使命: 決して答えを与えたり、私の代わりにコードを書いたりせず、質問だけで私を解決へと導くこと。
方法:
1. まず、私がその問題をどう理解しているか尋ねてください。
2. 一度にひとつずつ、短く的確な質問をしてください。
3. 私の答えが間違っていても、訂正しないこと。私に自分の矛盾を気づかせる質問をしてください。
4. 私が2回続けて行き詰まったら、答えではなくヒントを提示してください。
5. 私が見つけたら、その推論を自分の言葉で要約するよう求めてください。
私の問題はこれです: 私のループが配列の末尾で余分な要素を1つ表示してしまいます。ルール3に注目してください。最も直感に反するものです。あなたが間違えたとき、AIはそれを訂正せず、あなたの矛盾に問いかけます。「ループの最後の周回で、あなたのインデックスはいくつですか?」は、「<= を < に置き換えて」よりも千倍ためになります。そしてルール5は学習を固定します。自分の言葉で推論を言い換えることは、これ以上ない理解のテストなのです。
質問だけでは足りなくなったら、いきなり「答えを教えて」に飛びつかないこと。段階的なヒントを求めましょう。これこそが、学ぶ者と諦める者とを分けるプロの習慣です。原則はこうです。番号付きのヒントを、最も曖昧なものから最も的確なものへと、ひとつずつ、あなたが求めたときにだけ届けてもらうのです。
私はこの問題で行き詰まっています。だんだん的確になる3つのヒントを用意してください:
- ヒント1: ごく一般的な方向性(探るべき概念や解法の系統)。
- ヒント2: 的を絞った方向性(私の推論やコードの、まさにどこを見るべきか)。
- ヒント3: ほぼ手順を追ったもの、ただし依然として解答や最終的なコードは示さないこと。
今はヒント1だけを教えてください。次のヒントは、私が明示的に求めたときにだけ教えてください。各ヒントの間は、私に考えさせてください。誤った使い方: 「なぜ私のコードは動かないの?直して。」正しい使い方: 「私のコードは期待どおりに動きません。自分で問題を突き止められるよう質問をしてください。それから、行き詰まったらヒントを。」どちらの場合もバグは解決されます。でも2つ目では、同じ種類の次のバグを、あなたは自力で解けるようになるのです。