【学習】AIのコードに責任を持てるとはどういうことか(AI時代のプログラミング学習 第2回)
【AI時代のプログラミング学習 第2回】
はじめに
第1回では、AI は 「理解している人の道具」 であること、そして 検証・説明・デバッグ ができるかどうかで結果が分かれる、という話をしました。
今回はそのうちの 「責任」 を、授業や課題で使える言葉に落とし込みます。
責任を持てる とは、難しい哲学の話ではありません。
自分が提出したコードについて、意味と意図を説明できること です。
「責任を持てる」とは何か(このシリーズでの定義)
このシリーズでは、次の3つがそろっているとき 「AI のコードに責任を持てる」 と言います。
| 観点 | 自分への問い(YES なら前進) |
|---|---|
| 説明 | この行は何をしているか、言葉で言えるか |
| 意図 | なぜこの書き方なのか、別案との違いを言えるか |
| 修正 | エラーや不具合が出たとき、どこを疑うか決められるか |
AI が書いたコードでも 自分のプロジェクトに入れた瞬間からは「自分のコード」 です。
そのとき、上の3つに答えられなければ、責任はまだ移っていない と考えてください。
具体例:WinForms で「どこに何を書くか」が説明できるか
授業でよく使う ボタンのクリック を例にします。
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "こんにちは";
}
責任を持てる状態 の人は、少なくとも次を説明できます。
button1_Clickは いつ 呼ばれるか(ボタンが押されたとき)label1.Text = ...は 何をしているか(ラベルの表示文字を変えている)- なぜこの処理が このメソッドの中 にあるか(イベントに反応する処理だから)
逆に、AI に全文書かせて貼り付けただけのとき、よくあるのは次です。
- 動いたので提出したが、どの行が何のためか言えない
- エラーが出ると ファイルのどこを直せばよいか分からない
これは 責任がまだ移っていない 状態です。悪いことではありませんが、成長のボトルネック になります。
具体例:Program.cs の Run と「処理の置き場所」
WinForms では、アプリの入り口付近に次のようなコードがあります(教材によって表記は多少違います)。
Application.Run(new Form1());
ここで大切なのは、「画面の操作に応じた処理」は、基本はフォーム側のイベントに書く という構造です。
Runは アプリを起動してメッセージループを回す のが役目- ボタンを押したときの処理は、通常
Form1のイベント に書く
責任を持てる とは、この 役割の分け方を説明できる ことでもあります。
「とりあえず動けばどこに書いてもいい」ではなく、置き場所の理由 を言えるかどうかが分かれ目です。
for と foreach、i と 配列[i] は説明の試金石
AI の出力をそのまま使うと、一見すっきりしたコードが出ることがあります。
しかし授業や面接で問われやすいのは、次のような 基本語彙 です。
| 用語 | 説明できれば強い(例) |
|---|---|
for | 回数が決まっている/インデックスが必要なときに使う |
foreach | コレクションの要素を順に扱うときに使う |
i | ループ変数(何回目か) |
配列[i] | i 番目の要素にアクセスしている |
ここが曖昧なままだと、AI に頼った痕跡だけが残る ことがあります。
土台は クラス気づき学習シリーズ や 変数から段階的に学習 で固めると、第1回で書いた 「検証できる」 に直結します。
配布用:バイブコーディング時代の自己診断チェックリスト
授業や振り返りにそのまま使えるよう、チェック数で判定 できる形にしました。
(内容は学習者が 今どの位置にいるか を知るためのもので、良し悪しのラベル付けではありません。)
基本チェック(まずはここ)
以下にチェックをつけてください。
■ コード理解
- □ 自分が書いたコードを1行ずつ説明できる
- □
for/foreachの違いを説明できる - □
iと配列[i]の違いを説明できる - □ エラーが出たとき、意味を読もうとしている
■ 実装力
- □ 簡単な処理なら何も見ずに書ける(ループ・条件など)
- □ サンプルコードを少し変えて動かせる
- □ Run の中に処理を書く構造を守れる
- □ 自分で1から書いて動かした経験がある
■ AIの使い方
- □ AIに聞いたコードの意味を確認している
- □ コピペしたコードをそのまま使っていない
- □ 「なぜこのコードなのか」を考えている
- □ AIのコードを一部書き換えて使っている
判定
チェック数を数えてください。
| チェック数 | 判定 |
|---|---|
| 10個以上 | AIを「使える状態」 — このままAIを積極的に使ってOK。さらにスピードを上げていける段階。 |
| 6〜9個 | 成長途中(いまが一番重要) — AIはOKだが「理解」を優先。この段階で差が大きくつく。 |
| 5個以下 | 要注意(AI依存リスクあり) — AIを減らして「自分で書く」を増やす。基本構造の定着を優先する。 |
危険サイン(1つでも当てはまれば注意)
- □ 動いたコードを説明できない
- □ エラーが出ると手が止まる
- □ ほぼすべてAIに書かせている
- □ 自分で書くと極端に時間がかかる
このチェックの意味
これは「できている・できていない」を決めるものではありません。
いまどの位置にいるかを知るため のものです。
一番大事なこと
いまの段階は 「知っている → 使える」に変える時期 です。
行動指針(シンプル版)
迷ったらこれだけ守ってください。
- まず自分で書く
- 分からなければAIを使う
- 必ず理解する
最後に
AIはこれから必須の道具になります。
ただし、理解している人だけが武器にできる という点は変わりません。
結論:責任は「説明と修正の筋道」で見える
AI のコードに責任を持てるかどうかは、
短いコードでも、授業で言葉にできるか
でまず確認できます。
次の一歩は、AI に聞くときも 「自分の仮説」 を一文添えることです(例:「foreach で回したいのですが、インデックスが欲しいときはどう書きますか?」)。
仮説があると、返ってきた答えを 自分の言葉で検証 しやすくなります。
重要ポイント
- 責任を持てる = 説明・意図・修正の筋道が言えること(このシリーズでの定義)
- WinForms では イベントに書く処理 と
Runの役割 を説明できるかが分かれ目になりやすい for/foreach/ 添字は、AI 出力の検証 に直結する基礎語彙である- チェックリストは 位置取り のためのもので、最終評価ではない
発展:シリーズとコードの土台
- シリーズの目次・前後の回は AI時代のプログラミング学習シリーズ(固定ページ) を参照
- 実行の流れ・読み方は 変数から段階的に学習 を参照
Listやforeachの土台は クラス気づき学習シリーズ が近道です




ディスカッション
コメント一覧
まだ、コメントがありません