プログラミング学習にAIを活用しよう
プログラミングを学んでいると、自分の書いたコードがなぜ動かないのか分からず、手が止まる瞬間が何度もあります。エラーメッセージを読んでも意味が分からず、検索しても回答がバラバラで疲れてしまう。そんなとき、AIに聞くと自分のレベルに合わせて説明してくれるので、学習のペースを保ちやすくなります。
ただし、聞き方によって結果は大きく変わります。AIに「動くコード」をもらうだけだと、その場は進んでも、次に似たところで同じように止まります。この記事では、AIに答えのコードを書かせるのではなく、「なぜそうなるのか」を説明してもらう使い方に絞って、コピーして使える依頼文と、返ってきた説明の確かめ方をまとめます。対象は、プログラミングを学び始めた中高生から大人までです。
学習全般の考え方は勉強にAIをどう使う?正しい活用法、学校の課題で使うときの注意はレポート・課題でAIを使うときのルールとマナーも参考にしてください。
AIには「答え」ではなく「説明」を頼む
同じエラーでも、頼み方は2通りあります。
ひとつは「直したコードをください」。もうひとつは「なぜこのエラーが出るのか説明してください」。前者は、貼り付ければ動くかもしれませんが、自分の頭には何も残りません。後者は、返ってきた説明を読んで自分で直せたとき、その原因と直し方が経験として残ります。
たとえば、Pythonで平均を求める関数を書いて、空のリストを渡したら ZeroDivisionError が出たとします。答えのコードをもらうと「if文を足せば直る」で終わります。説明をもらうと「合計を要素数で割っているが、空のリストでは要素数が0になり、0で割ることになるから」という理由が分かります。理由が分かれば、別の場面で別の割り算を書くときにも、自分で気づけるようになります。
プログラミングの力は、エラーに出会い、原因の仮説を立て、直して確かめる往復の中で育ちます。AIは、この往復の「原因の仮説」の部分で、横についてくれる家庭教師のように使うのが向いています。往復そのものを肩代わりさせると、練習の機会を自分で手放すことになります。
説明を頼むと得られるもの
- エラーの意味が、日本語で分かる
- どの行のどの部分が問題なのか、場所が分かる
- なぜそうなるのかという仕組みが、具体例つきで分かる
- 次に同じエラーが出たとき、自分で見当がつく
どれも「コードそのもの」ではなく「考え方」です。この記事では、その考え方を引き出すための頼み方を中心に紹介します。
エラーを説明してもらう依頼文
エラーの相談で一番大切なのは、AIに渡す材料と、AIに守ってほしい条件を両方書くことです。材料は3つ、「何をしたいか」「何が起きているか」「何を試したか」。条件は、直したコードより先に原因の説明を出すこと、そしてヒントを段階的に出してもらうことです。
次の文面は、そのままコピーして、角かっこの部分を差し替えれば使えます。
プログラミングを学び始めたところです。次のエラーの原因を理解したいです。
【したいこと】[例:リストの数字の平均を求める関数を作りたい]
【起きていること】[例:空のリストを渡すとエラーになる]
【試したこと】[例:print で中身を確認したが、原因が分からなかった]
【言語】Python
【エラー全文】
[エラーメッセージをここに貼る]
【コード】
[該当部分のコードをここに貼る]
お願い:
1. 最初は直したコードを出さず、エラーの意味と原因を、初心者に分かる言葉で説明してください。
2. そのあと、ヒントを3段階で出してください。第1段階は「どこを見ればよいか」、第2段階は「何が起きているか」、第3段階は「直し方の方向性」です。
3. 私が「次のヒント」と返すまで、次の段階には進まないでください。
4. 直したコードは、私が「答えを見せて」と言ったときだけ出してください。
この文面のポイントは3つあります。
1つ目は、エラー全文とコードの両方を貼ることです。エラーの一行目だけでは、AIも原因を絞り込めません。どの行で起きたかを示す部分も含めて、全文を貼ってください。
2つ目は、「直したコードより先に説明」と明記することです。何も書かないと、AIは親切心から、すぐ直したコードを出すことがあります。最初に条件として伝えておけば、説明から始めてもらえます。
3つ目は、ヒントを段階に分けてもらうことです。第1段階のヒントを読んだ時点で、自分で気づけることがあります。気づけたなら、そこで止めて自分で直してください。それが一番力になります。第2段階でも分からなければ、次のヒントを頼みます。それでも詰まったら、最後に答えを見ます。段階を踏んだうえで答えを見るのは、いきなり答えをもらうのとは別の経験になります。
うまくいかなかったときの戻し方
説明が難しすぎたときは、次のように返します。
今の説明が分かりませんでした。「[分からなかった言葉]」とは何か、中学生にも分かる例えで説明し直してください。
ヒントを読んでも直せなかったときは、「第1段階のヒントを読んで、私は [こう考えて、こう直しました]。でも [こうなりました]」と、自分が試したことをそのまま返します。試した内容を伝えるほど、AIは「どこでつまずいているか」を的確に判断できます。
自分のコードをレビューしてもらう
動いたコードも、AIに見てもらうと学びが増えます。ここでの目的は、「動かないコードを直す」ことではなく、「動いているコードの書き方を良くする視点」を知ることです。
レビューを頼むときも、答えを丸ごと書き換えてもらうのではなく、気づきを理由つきでもらう形にします。
次のコードを、初心者の学習用にレビューしてください。動作は確認済みです。
【言語】Python
【このコードの目的】[例:成績のリストから平均点を求める]
【コード】
[自分で書いたコードを貼る]
お願い:
1. 書き換えたコードを出す前に、気になった点を重要そうな順に3つまで挙げてください。
2. それぞれ「何が気になるのか」「なぜそう言えるのか」を説明してください。
3. 私が自分で直してみます。直したコードを貼ったら、もう一度見てください。
4. 好みの問題と、直したほうがよい問題は分けて教えてください。
「3つまで」と数を絞るのは、初心者のうちは指摘が多すぎると、どれから手をつければよいか分からなくなるからです。「好みの問題と直したほうがよい問題を分ける」ことも大切です。プログラミングには、書き方の好みが分かれる部分が多くあります。区別がないと、AIの指摘を全部「正しいこと」として受け取ってしまいます。
レビューを受けたら、AIが書き換えたコードをそのまま貼り替えるのではなく、指摘された理由を読んで、自分の手で直します。直したコードをもう一度貼って「これで改善されましたか」と聞くところまでが、1セットです。
また、複数の書き方を比べたいときは、「他にどんな書き方がありますか。それぞれの長所と短所も教えてください」と聞くと、自分のコードを別の角度から見る練習になります。ひとつの書き方しか知らないと、それが良いのか悪いのかも判断できないからです。
学習になる頼み方・ならない頼み方
ここまでの内容を、表にまとめます。迷ったときは、「この頼み方で、自分は何を考えるだろう」と自問してみてください。
| 場面 | 学習になる頼み方 | 学習にならない頼み方 |
|---|---|---|
| エラーが出た | エラー全文とコードを貼り、原因の説明を先に頼む | 「直して」とだけ頼んで、直ったコードを貼り替える |
| 意味が分からない | 「1行ずつ何をしているか説明して」と頼み、自分の言葉で言い直す | 説明を読まずに、動けばよしとして先に進む |
| 行き詰まった | ヒントを段階的に出してもらい、毎回自分で考える | 最初から答えのコードを求める |
| 動いたあと | 改善点を理由つきで挙げてもらい、自分で直す | 「もっと良くして」と丸ごと書き換えさせる |
| 書き方に迷う | 複数の書き方と、それぞれの長所・短所を聞く | 「一番いいのはどれ」とだけ聞いて鵜呑みにする |
| 宿題・課題 | 分からない概念を説明してもらい、自分で書く | 問題文を貼って、提出するコードを作らせる |
最後の行は特に注意が必要です。AIの利用ルールは、学校や課題、職場によって異なります。丸ごと作らせたコードをそのまま提出すると、ルール違反になる場合があります。ルールが分からないときは、提出前に先生や担当者に確認してください。AIを参考にしたときは、そのことを明記するのが基本です。
なお、この記事の依頼文は、ChatGPT、Claude、Geminiなど、文章で質問できるAIであれば同じように使えます。使える範囲や機能は変わることがあるので、使う前に各公式サイトで確認してください。
学習になる頼み方に共通しているのは、AIの返事を受け取ったあとに、自分が考える時間が残ることです。逆に、学習にならない頼み方は、返事を貼り付けた時点で作業が終わってしまいます。
AIの説明を確かめる方法
AIの説明は、分かりやすくて自信ありげに書かれていても、間違っていることがあります。存在しない関数名を挙げたり、バージョンの違いを無視したり、原因を取り違えたりします。そのため、説明を受け取ったら、必ず自分で確かめる習慣をつけてください。確かめる作業自体が、学習になります。
実際に動かして確かめる
一番確実なのは、実際にコードを動かすことです。AIが「原因はここです」と言ったなら、次の順で試します。
- AIの説明どおりに直す前に、問題の箇所に print などで値を表示して、AIの言う状態になっているか見る
- 説明どおりに直して、エラーが消えるか確認する
- 直したあと、別の入力でも動くか、いくつか試す
たとえば、「空のリストだと要素数が0になる」という説明なら、print(len(numbers)) で本当に0と表示されるか見てみます。説明と実際の動きが合っていれば、納得して次に進めます。合っていなければ、AIの説明が間違っているか、自分が別の問題を抱えているということです。そのまま「表示された結果」をAIに貼って、聞き直してください。
公式ドキュメントで確かめる
AIが挙げた関数や書き方は、その言語の公式ドキュメントで確かめます。PythonならPython公式のドキュメント、JavaScriptやWebの書き方ならそれぞれの公式の解説が、一次情報にあたります。見るところは次の3点です。
- AIが使った関数やメソッドが、本当に存在するか
- 引数の順番や、返ってくる値が、説明と合っているか
- 自分が使っているバージョンで使えるか
公式ドキュメントは、最初は読みにくく感じるかもしれません。それでも、関数名で検索して、その関数の説明と使用例だけを読むところから始めれば十分です。AIに「この関数の公式ドキュメントで確認すべき点を教えて」と頼んで、読む場所の見当をつけてもらう使い方もあります。
AIが書いたコードを自分のプロジェクトに取り込むときの、より詳しい確認の観点はAIが書いたコードを取り込む前に確かめることにまとめています。
自分の言葉で言い直す
もうひとつの確かめ方は、説明を自分の言葉で言い直すことです。「つまり、〇〇だから△△になるんですね」と、AIに返してみてください。言い直せなければ、まだ分かっていません。言い直した内容が合っているか、AIに確認してもらうこともできます。この返し方は、友達に説明して理解を確かめるのと似ています。
学習の進め方と、作って公開する段階
ここまでの使い方を、学習の進み具合ごとに整理します。
| 段階 | AIの使い方 | 自分でやること |
|---|---|---|
| はじめの頃 | エラー文とコードを貼り、原因の説明を頼む | 説明を読んで、自分の手で直す |
| 慣れてきた頃 | 動いたコードのレビューや、別の書き方の比較を頼む | 指摘の理由を読み、取り入れるかを自分で決める |
| 自分で作る頃 | 設計の相談や、読みにくい部分の説明を頼む | AIの提案を疑い、動かして確かめる |
どの段階でも共通するのは、最後の判断を自分でするということです。AIの提案は、あくまで「意見のひとつ」として扱います。
AIコーディング支援のサービスは種類が多く、使い方のタイプで向き不向きがあります。選ぶときの考え方はAIのコーディング支援の選び方|使い方のタイプで決めるで整理しているので、学習用に何か導入したくなったときに読んでみてください。
ある程度書けるようになったら、簡単なツールをひとつ作って公開してみるのも良い練習です。自分のコードが実際に動く形で世に出る経験は、教科書の演習だけでは得られません。公開・運用まわりをAIがサポートしてくれるサービスを使うと、その最初のハードルを下げられます。
公開する場合も、ここまでと同じ姿勢が大切です。AIが用意してくれた部分も、何をしているのか自分の言葉で説明できる状態にしておくと、あとから手直しするときに困りません。
まとめ
AIはプログラミング学習の心強い相棒ですが、代わりに考えてくれるわけではありません。軸は、答えのコードをもらうのではなく、説明してもらうことです。
- エラーが出たら、エラー全文とコードを貼り、直したコードより先に原因の説明を頼む
- ヒントは段階的に出してもらい、毎回、自分で考えてから次に進む
- 動いたコードは、改善点を理由つきで挙げてもらい、自分で直す
- 返ってきた説明は、実際に動かす、公式ドキュメントを読む、自分の言葉で言い直すの3つで確かめる
次に書いているコードでエラーが出たら、まず上の依頼文をコピーして、角かっこの部分を差し替えて送ってみてください。その一往復を積み重ねることが、プログラミング力を伸ばす近道になります。プログラミングを学ぶ先の進路や仕事については、AI時代の進路と仕事はどうなる?で考え方を紹介しています。
プログラミング以外の学習場面でのAI活用も気になる人は、学生・教育現場のAI活用ガイド|学年・場面別の入口に、学年・場面別の記事をまとめています。
参考リンク
- https://claude.ai/
- https://openai.com/chatgpt/
- https://gemini.google.com/