---
title: "プログラミング教育にAIを、答えのコードをもらわず「なぜ動かないのか」を問わせる"
description: "AIにコードを書き写してもらう代わりに、エラーの原因と論理を自ら理解させる、ソフトウェア教育での活用手順です。"
lang: "ja"
date: "2026-01-10T15:00:00.000Z"
updated: "2026-06-28T02:37:00.000Z"
tags: ["プログラミング","ソフトウェア教育","デバッグ","計算論的思考"]
canonical: "https://flipsson.com/ja/blog/H0mkHp9bNzg8"
---

# プログラミング教育にAIを、答えのコードをもらわず「なぜ動かないのか」を問わせる

プログラミングの授業でAIを立ち上げると、生徒たちはほとんど例外なく「これのコードを書いて」から入力します。AIは動作するコードを即座に差し出し、生徒はそれをコピーして貼り付けます。課題は終わりますが、生徒は何も学べていません。==プログラミング教育の目標は、動作するコードではなく、動作の原理を理解する思考力です。== AIがコードを代わりに書いてしまった瞬間、その思考は起こりません。だからこそ、何を問わせるかがすべてです。

## 正解のコードではなく理解を引き出す

生徒がコードをまるごと要求しないよう、次の使用ルールを案内します。

1. **エラーの原因を問う**: 「このコードがなぜエラーになるのか説明して。直したコードは出さないで。」デバッグの思考を生かします。
2. **論理の点検**: 「私のアルゴリズムの順序が合っているか吟味して」と、コード以前の設計を見ます。
3. **概念の説明**: 「繰り返し文と条件文のうち、この状況にはどちらが適切でなぜか」と概念を尋ねます。

> コードをもらえば課題が終わり、エラーの理由が分かれば次の課題が易しくなります。

このようにすれば、生徒は==行き詰まった地点で答えではなく原因と向き合い、デバッグの力を育てます。==

## プロジェクト型授業の運営シナリオ

中学校の情報の授業で、簡単なゲームづくりのプロジェクトを例に挙げてみます。次のルールで運営します。

- **設計が先**: コードを書く前に、フローチャートや文章でアルゴリズムをまず書き起こします。AIには、この設計の抜けだけを点検してもらいます。
- **行き詰まったら質問**: エラーが出たら、コードを求める代わりに「なぜこのエラーが出るのか」だけを尋ねます。
- **説明の義務**: 完成後、自分のコードを一行ずつ友だちに説明します。説明できない行は、理解できていない行です。
- **検証**: AIが教えてくれた概念の説明は、自分で実行して事実かどうかを確かめます。AIは誤った説明をもっともらしく述べることもあります。

このやり方を取り入れた教室では、課題を仕上げる速さは遅くなりましたが、==学期末に自力でデバッグする生徒の割合がはっきりと増えました。== コードをもらう代わりに原因を問うた結果です。

プログラミング教育で本当に教えようとしているのは、特定の言語の文法ではなく、問題を細かく分けて順序立てて解決する思考の方法です。この思考は、コードを書き写している間には決して育ちません。むしろ、行き詰まり、エラーに出会い、その原因を掘り下げる過程においてのみ堅固になります。ですから教師は、==生徒が行き詰まることを失敗ではなく学習のただ中と見なす雰囲気==をつくってあげる必要があります。AIが即答を与える時代であるほど、答えではなく答えに至る道を自ら見つける経験がいっそう貴重になります。速く仕上がったコード一本よりも、ゆっくり理解しながら行き詰まりを突き抜けた経験一つが、次の学期を支えます。

## 要点の整理

プログラミング教育においてAIは、コード生成器ではなく、デバッグと概念理解を助ける案内役として使うべきです。答えのコードを封じ、エラーの原因を問い、自分のコードを説明させれば、計算論的思考力が育ちます。==コードを書き写させるのではなく、なぜ動かないのかを問わせてください。== 次のプロジェクトでは、コードのまるごと依頼を禁じるルール一つから取り入れてみることをお勧めします。
