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

広告

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

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


はじめに

この回の想定は、C# の基礎、WinForms、初めての自作課題 までを終えたあとです。
後半の 「AI活用・実装力 自己診断(基礎終了後)」 の「基礎」とは、コンソールや WinForms の学習に加え、最初の自作までを含む 意味で使っています。

第1回では、AI は 「理解している人の道具」 であること、そして 検証・説明・デバッグ ができるかどうかで結果が分かれる、という話をしました。

今回はそのうちの 「責任」 を、授業や課題で使える言葉に落とし込みます。

責任を持てる とは、難しい哲学の話ではありません。

自分が提出したコードについて、意味と意図を説明できること です。


「責任を持てる」とは何か(このシリーズでの定義)

このシリーズでは、次の3つがそろっているとき 「AI のコードに責任を持てる」 と言います。

観点自分への問い(YES なら前進)
説明この行は何をしているか、言葉で言えるか
意図なぜこの書き方なのか、別案との違いを言えるか
修正エラーや不具合が出たとき、どこを疑うか決められるか

3つすべてが一度に言える必要はありません。まず「説明」だけでも前進 です。「意図」や別案の比較は、自作を重ねるうえで少しずつでかまいません。

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回で書いた 「検証できる」 に直結します。


AI活用・実装力 自己診断(基礎終了後)

授業の回答・集計は Googleフォーム(AI活用・実装力 自己診断) で行えます。
以下は フォームと同じ質問 を、紙やオフライン用に載せたものです。

(目的は評価ではなく、いまどの段階にいるかを知ること です。)

質問(すべて「はい/いいえ」)

前向きの質問(1〜6)…「はい」が望ましい

  1. 自分が書いたコードの処理内容を、他人に説明できますか。
  2. エラーが出たとき、どの行・どの処理が原因かを自分で考えられますか。
  3. 短い課題なら、サンプルや AI を参考にしても、丸写しではなく自分で組み立てて動かせますか。
  4. 配列・ループ・条件分岐を組み合わせた処理を、自分で考えて書けますか。
  5. AI にコードを出してもらった後、その内容を理解しようとしていますか。
  6. AI に丸ごと書かせるのではなく、自分で書いたコードの補助として使っていますか。

リスクの質問(7〜10)…「はい」が注意サイン(依存・先逃げに近い)

  1. 動いたコードでも、説明できないまま使うことがありますか。
  2. エラーが出ると、すぐに AI や答えを見てしまいますか。
  3. ほとんどのコードを AI に任せている状態ですか。
  4. 自分で書こうとすると、どこから手をつけていいか分からなくなることが多いですか。

紙・自己採点する場合(10点満点の目安)

フォームと同じ内容を 手元で点数化 するときは、次のように数えます。

質問1点になる答え
1〜6はい
7〜10いいえ(リスクが低い=よい)

合計点(最大10点) の目安です。

合計点判定
8〜10点AIを「使える状態」 — このまま AI を積極的に使ってよい段階。スピードを上げていける余地がある。
5〜7点成長途中(いまが一番重要) — AI は使ってよいが「理解」を優先。この段階で差が大きくつく。
0〜4点要注意(AI依存リスクあり) — AI に頼る量を減らし、「自分で書く」を増やす。基本の定着を優先する。

※ 目安です。クラスや時期に合わせて講師が調整してかまいません。


この診断の意味

「できている/できていない」を最終決定するものではありません。
いまどの位置にいるかを知るため のものです。7〜10 は 当てはまりが強いほど フォローが必要、という読み方もできます。

一番大事なこと

いまの段階は 「知っている → 使える」に変える時期 です。

行動指針(シンプル版)

迷ったらこれだけ守ってください。

  • まず自分で書く 
  • 分からなければ AI を使う 
  • 必ず理解する

最後に

AI はこれから必須の道具になります。
ただし、理解している人だけが武器にできる という点は変わりません。


結論:責任は「説明と修正の筋道」で見える

自己診断で気づいた弱いところがあっても、この結論は「次の一歩」として読み返す とつながりやすいです。

AI のコードに責任を持てるかどうかは、

短いコードでも、授業で言葉にできるか

でまず確認できます。

次の一歩は、AI に聞くときも 「自分の仮説」 を一文添えることです(例:「foreach で回したいのですが、インデックスが欲しいときはどう書きますか?」)。
授業で触れた範囲の言葉に置き換えてもかまいません(例:for と List だけの課題なら、その前提で質問を組み立てる)。

仮説があると、返ってきた答えを 自分の言葉で検証 しやすくなります。


重要ポイント

  • 責任を持てる = 説明・意図・修正の筋道が言えること(このシリーズでの定義)。まずは「説明」から でよい
  • WinForms では イベントに書く処理 と Run の役割 を説明できるかが分かれ目になりやすい
  • for / foreach / 添字は、AI 出力の検証 に直結する基礎語彙である
  • 自己診断(フォーム/紙)は 位置取り のためのもので、最終評価ではない(フォーム と記事の質問文は同一)

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

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

広告

AI,C#,生成AI

Posted by hidepon