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

2026年10月1日

広告

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

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


はじめに

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

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

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

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

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


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

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

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

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

AI が書いたコードでも 自分のプロジェクトに入れた瞬間からは「自分のコード」 です。
そのとき、いまの自分で答えられる範囲 を広げていくのが学習です。まだ3つに全部答えられなくても、責任を持てる方向に動いているか を見てください。


現場ではどう確かめられるか:コードレビュー

ここでいう「責任」は、実際の開発現場では コードレビュー という形で確かめられます。流れはおおよそ次のとおりです。

  1. コードを書く(AIに聞いたコードでも、書籍やサンプルを参考にしたコードでも同じ)
  2. 自分で動かして確認し、不具合を直す(セルフデバッグ)
  3. レビューで、先輩やチームのメンバーなど第三者に、自分のコードを説明する
  4. 質問に答えられ、内容にも問題がなければ承認される。答えられなければ承認されず、理解し直して再レビューになる

レビューで問われるのは「どこから持ってきたコードか」ではありません。「このコードを書いた人として説明できるか」 です。「AIがこう書いたので」は答えになりません。

最近は、AIがレビューを手伝う現場もあります。それでも、質問に答えるのはコードを出した本人です。

上の表の「説明・意図・修正」は、そのままレビューで聞かれる質問です。

授業の外でも同じです。たとえば、AIに任せて作った成果物を納品したものの、仕様を十分に理解しておらず、不具合を指摘されると「AIで作ったので間違いないはずです」と答えてしまう。このような対応をすると、仕事の場では信頼を失い、契約が打ち切られることもあります。

AIを使ったかどうかではなく、納品したものを自分で説明し、直せるかが問われます。

動画配信サイトに寄せられたコメントの要約。ゲーム制作の外注で、仕様を十分に理解しないままAIで作った成果物が納品された。不具合を指摘すると「AIで作ったので間違いない」と返ってきた。その結果、契約は打ち切られた。投稿者名は伏せており、事実関係は確認できていない。
AIで作った成果物を納品したあとの2つの流れ。不具合を指摘されて「AIで作ったので間違いないはず」と答えると信頼を失い、契約終了もある。自分のコードとして説明し原因を探して修正すれば、信頼を保てる。

※ 呼び方は職場によって違い、設計段階のレビューとまとめて行う現場もあります。
※ この節は、受講生からの意見をきっかけに追記しました。


具体例:WinForms で「どこに何を書くか」が説明できるか

授業でよく使う ボタンのクリック を例にします。

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = "こんにちは";
}

責任を持てる状態 の人は、少なくとも次を説明できます。

  • button1_Click は いつ 呼ばれるか(ボタンが押されたとき。デザイナーでボタンの Click イベントに登録されているため)
  • label1.Text = ... は 何をしているか(ラベルの表示文字を変えている)
  • なぜこの処理が このメソッドの中 にあるか(イベントに反応する処理だから)

逆に、AI に全文書かせて貼り付けただけのとき、よくあるのは次です。

  • 動いたので提出したが、どの行が何のためか言えない
  • エラーが出ると ファイルのどこを直せばよいか分からない

これは 自分のコードとして説明・修正する準備が、まだできていない 状態です。悪いことではありませんが、成長のボトルネック になります。


具体例:Program.cs の Run と「処理の置き場所」

WinForms では、アプリの入り口付近に次のようなコードがあります(教材によって表記は多少違います)。

Application.Run(new Form1());

ここで大切なのは、「画面の操作に応じた処理」は、基本はフォーム側のイベントに書く という構造です。

  • Run は アプリを起動し、ウィンドウのメッセージを待ち受ける のが役目です(教材によっては メッセージループ と説明されることがあります。詳細より、「起動の入り口」と覚えておけば足ります)
  • ボタンを押したときの処理は、通常 Form1 のイベント に書く

責任を持てる とは、この 役割の分け方を説明できる ことでもあります。
「とりあえず動けばどこに書いてもいい」ではなく、置き場所の理由 を言えるかどうかが分かれ目です。


for と foreach、i と 配列[i] は説明の試金石

AI の出力をそのまま使うと、一見すっきりしたコードが出ることがあります。
しかし授業や面接で問われやすいのは、次のような 基本語彙 です。

用語説明できれば強い(例)
for回数が決まっている/インデックスが必要なときに使う
foreachコレクションの要素を順に扱うときに使う
iループ変数。後の自己診断の例では、0 から始めて配列の添字として使う
配列[i]i が指す位置の要素にアクセスしている(先頭は 0)

ここが曖昧なままだと、AI に頼った痕跡だけが残る ことがあります。すでに基礎課題は終えている読者には、足りないところだけ戻るための地図 として、クラス気づき学習シリーズ や 変数から段階的に学習 を使うとよいです。第1回で書いた 「検証できる」 に直結します。


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

授業では Googleフォーム(AI活用・実装力 自己診断) で回答してください。第1部の「自己チェック」と、第2部の「コード読解」の2部構成です。

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

第1部:自己チェック(採点なし)

いまの自分に一番近いものを「いつも/よく/ときどき/ほとんどない」から選びます。AIに関する5〜7は「AIはほとんど使っていない」も選べます。点数はつかないので、正直に答えてください。

  1. 自分が書いたコードの処理を、1行ずつ他人に説明できる
  2. エラーが出たとき、原因の行や処理を自分で考えてから調べる
  3. 配列・ループ・条件分岐を組み合わせた処理を、自分で考えて書ける
  4. サンプルやAIのコードを使うとき、丸写しせずに自分で組み立て直す
  5. AIに出してもらったコードは、動いたあとに中身を理解するまで読む
  6. 説明できないコードを、そのまま使ってしまう
  7. エラーが出ると、自分で考える前にAIや答えを見てしまう
  8. 何から書けばいいか分からず、手が止まってしまう

1〜5は「いつも」「よく」が多いほど、6〜8は「ときどき」「ほとんどない」が多いほど、AIを武器にできる状態に近いと考えてください。

第2部:コード読解(6問・自動採点)

自己申告だけでは分からない「本当に説明できるか」を、短いコードで確かめます。送信するとすぐに点数が表示され、問題ごとの解説も読めます。

問1〜問5は、次のコードについての問題です。

int[] scores = { 70, 85, 90, 60 };
int total = 0;
for (int i = 0; i < scores.Length; i++)
{
    total += scores[i];
}
Console.WriteLine(total);
  1. 表示される値は?
  2. ループの中の i は何を表す?
  3. i < scores.Length を i <= scores.Length に変えると?
  4. 同じ合計を foreach で書いたとき、正しいのは?
  5. 60点以上の人数を数えたい。for の中に書くのは?
  6. WinForms の button1_Click が呼ばれるのはいつ?

選択肢はフォームで確認してください。まずは答えを見ずに、自分で説明できるか試してみましょう。

点数の目安(6点満点)

第2部の点数目安
6点この問題の範囲では、コードを「説明できる」土台ができています。理解を保ったまま、AIでスピードを上げていきましょう。
4〜5点あと一歩です。間違えた問題のコードを、1行ずつ声に出して説明してみましょう。
0〜3点配列とループに戻って復習しましょう。AIに聞くときも「なぜこうなるか」まで確かめるのがおすすめです。

※ 点数はあくまで目安です。点数そのものより、間違えた問題の解説を読み、そのコードを自分の言葉で説明し直すことが大切です。


この診断の意味

「できている/できていない」を決めるものではありません。
いま自分がどの位置にいるかを知るため のものです。6問で確かめられるのは、配列・ループとイベントに関する基礎読解の一部です。

第1部で「説明できる」と答えたのに第2部で間違えた、というように第1部と第2部の結果がずれていたら、そこが次に練習するポイントです。第1部の6〜8で「いつも」「よく」が多かった人は、一人で抱え込まずに講師に相談してください。次に何を練習するか、一緒に決めましょう。

一番大事なこと

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

行動指針(シンプル版)

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

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

※ これは基礎を練習する場面の指針です。制作でAIにコードを書かせる使い方は、第4回で扱います。

最後に

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


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

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

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

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

でまず確認できます。

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

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


重要ポイント

  • 責任を持てる = 説明・意図・修正の筋道が言えること(このシリーズでの定義)。まずは「説明」から でよい
  • 現場では コードレビュー で説明を求められ、説明できないコードは承認されない
  • WinForms では イベントに書く処理 と Run の役割 を説明できるかが分かれ目になりやすい
  • for / foreach / 添字は、AI 出力の検証 に直結する基礎語彙である
  • 自己診断(フォーム)は いまの自分の位置を知る ためのもの。自己チェックとコード読解の結果のずれが、次に練習するポイントになる

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

訪問数 118 回, 今日の訪問数 1回

広告

AI,C#,生成AI

Posted by hidepon