0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AI活用】自走力を育てるプログラミング学習用プロンプトの設計と実践

0
Posted at

1. はじめに

プログラミング学習でAIに質問すると、すぐに答えが返ってきて便利な反面、自分で考える機会が減ってしまうと感じていました。

そこで今回、「答えを教えないメンター型プロンプト」を作成してみました。このプロンプト自体もAIと対話しながら一緒に作り上げたもので、設計のポイントも含めてまとめています。

2. 作成したプロンプト

作成したプロンプトの全文です。会話開始時にそのまま貼り付けて使えます。

あなたはプログラミング学習者をサポートするメンター(考え方を導くコーチ)です。
私はWebアプリ開発を勉強している初心者です。

私が「これってどうするの?」と質問したとき、あなたは決して答えを直接教えてはいけません。
代わりに、問題解決のための「考え方」や「アプローチ」を身につけられるようにサポートしてください。

以下のルールに従って回答してください:
- 答えをいきなり提示しない
- ステップごとにヒントを出す形式で導く
- 質問を投げかけて、私自身に考えさせる
- 初心者にも分かるやさしい言葉で説明する
- 必要に応じて、具体例やたとえ話を使う
- HTMLタグ(例:<details>、<summary> など)や不要な装飾タグは一切使用しない

最終的なゴールは、私が自分で答えにたどり着けるようになることです。

このプロンプトをClaudeなどのAIチャットの会話開始時に貼り付けると、メンター型の対話が始まります。

3. 実際の使用例

実際にどのような違いが生まれるのか、従来の質問との比較と対話の流れを整理します。

image.png
image.png

3.1 従来との比較

同じ質問をした場合でも、プロンプトの有無で回答が大きく変わります。

従来の質問(プロンプトなし):

Q: JavaScriptで配列の重複を削除するにはどうすればいいですか?

A: Set を使えばできます。こちらのコードをご覧ください...

メンター型プロンプト使用時:

Q: JavaScriptで配列の重複を削除するにはどうすればいいですか?

A: 良い質問ですね。まず考えてみましょう。
   配列の中で「重複している」とは、どういう状態でしょうか?
   また、重複を見つけるには、何と何を比較すればいいと思いますか?

答えを直接提示せず、自分で考えるきっかけを与えてくれます。

3.2 対話の流れ

メンター型プロンプトを使うと、以下のような流れで学習が進むようです。

  1. 問題の本質を理解するための質問を受ける
  2. 自分で考えて答える
  3. その考えを深めるヒントをもらう
  4. さらに考えて実装を試す
  5. 理解できているかを確認してもらう

このプロセスを経ることで、コードが動く理由まで理解しながら学習できると感じています。

4. プロンプトの設計ポイント

このプロンプトを設計する中で、効果的だと感じたポイントを3つ整理しました。

4.1 明確な制約を設ける

最も重要なのは、決して答えを直接教えてはいけませんという制約です。

この一文があることで、AIの回答スタイルが大きく変わります。「メンターのように振る舞って」という抽象的な指示だけでは、すぐ答えを返してしまうことがあるようです。

制約は曖昧にせず、「〜してはいけない」と明確に書く方が効果的です。

4.2 具体的な行動を列挙する

「どう振る舞うか」を具体的なリストで指定することで、AIの挙動を細かくコントロールできます。

  • ステップごとにヒントを出す:段階的に理解を深める
  • 質問を投げかける:能動的に考えさせる
  • やさしい言葉で説明する:初心者でも理解しやすくする

抽象的な指示よりも、具体的な行動リストの方が意図した回答を得やすいと感じました。

4.3 最終ゴールを明示する

最終的なゴールは、私が自分で答えにたどり着けるようになることですという一文で、プロンプト全体の目的を明確にしています。

ゴールを明示することで、対話全体が一貫した方向性を持つようになります。

5. プロンプト作成で学んだこと

実際に作ってみて気づいたことを整理します。

5.1 制約の効果

「〜してはいけない」という禁止制約を設けることで、AIの回答方針を大きく変えられることが分かりました。ポジティブな指示だけでなく、ネガティブな制約も組み合わせると効果的なようです。

5.2 具体性の重要性

「やさしく教えて」といった抽象的な指示より、「ステップごとにヒントを出す」「質問を投げかける」といった具体的な行動を列挙する方が、意図した通りの回答が得られやすいと感じました。

5.3 AIとの協働でプロンプトを作る

このプロンプト自体も、AIと対話しながら作成しました。自分の意図を伝え、AIに提案してもらい、調整するという流れで完成させています。

プロンプト作成に困ったときは、AIに「こういう振る舞いをしてほしい。どう書けばいい?」と相談してみると、良い出発点が得られることがあります。

まとめ

今回、答えを教えないメンター型プロンプトを作成しました。設計で意識したポイントは以下の3点です。

  • 明確な制約(答えを教えない)がプロンプトの核になる
  • 具体的なルールの列挙でAIの挙動をコントロールできる
  • 最終ゴールの明示で対話全体に一貫性が生まれる

コードが動くだけでなく「なぜそうなるのか」を理解しながら学習できるようになったと感じています。同じように悩んでいる方の参考になれば嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?