【学習】AIのコードに責任を持てるとはどういうことか(AI時代のプログラミング学習 第2回)

広告

【AI時代のプログラミング学習 第2回】

第1回|第2回(今ここ)|第3回|第4回|第5回|目次へ


はじめに

第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 と foreachi と 配列[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 出力の検証 に直結する基礎語彙である
  • チェックリストは 位置取り のためのもので、最終評価ではない

発展:シリーズとコードの土台

訪問数 4 回, 今日の訪問数 4回

広告

AI,C#,生成AI

Posted by hidepon