【学習】AIのコードに責任を持てるとはどういうことか(AI時代のプログラミング学習 第2回)
【AI時代のプログラミング学習 第2回】
第1回|第2回(今ここ)|第3回|第4回|第5回|第6回|第7回|目次へ
はじめに
この回の想定は、C# の基礎、WinForms、初めての自作課題 までを終えたあとです。
後半の 「AI活用・実装力 自己診断(基礎終了後)」 の「基礎」とは、コンソールや WinForms の学習に加え、最初の自作までを含む 意味で使っています。
第1回では、AI は 「理解している人の道具」 であること、そして 検証・説明・デバッグ ができるかどうかで結果が分かれる、という話をしました。
今回はそのうちの 「責任」 を、授業や課題で使える言葉に落とし込みます。
責任を持てる とは、難しい哲学の話ではありません。
自分が提出したコードについて、意味と意図を説明できること です。
「責任を持てる」とは何か(このシリーズでの定義)
このシリーズでは、次の3つがそろっているとき 「AI のコードに責任を持てる」 と言います。
| 観点 | 自分への問い(YES なら前進) |
|---|---|
| 説明 | この行は何をしているか、言葉で言えるか |
| 意図 | なぜこの書き方なのか、別案との違いを言えるか |
| 修正 | エラーや不具合が出たとき、どこを疑うか決められるか |
3つすべてが一度に言える必要はありません。まず「説明」だけでも前進 です。「意図」や別案の比較は、自作を重ねるうえで少しずつでかまいません。
AI が書いたコードでも 自分のプロジェクトに入れた瞬間からは「自分のコード」 です。
そのとき、いまの自分で答えられる範囲 を広げていくのが学習です。まだ3つに全部答えられなくても、責任を持てる方向に動いているか を見てください。
現場ではどう確かめられるか:コードレビュー
ここでいう「責任」は、実際の開発現場では コードレビュー という形で確かめられます。流れはおおよそ次のとおりです。
- コードを書く(AIに聞いたコードでも、書籍やサンプルを参考にしたコードでも同じ)
- 自分で動かして確認し、不具合を直す(セルフデバッグ)
- レビューで、先輩やチームのメンバーなど第三者に、自分のコードを説明する
- 質問に答えられ、内容にも問題がなければ承認される。答えられなければ承認されず、理解し直して再レビューになる
レビューで問われるのは「どこから持ってきたコードか」ではありません。「このコードを書いた人として説明できるか」 です。「AIがこう書いたので」は答えになりません。
最近は、AIがレビューを手伝う現場もあります。それでも、質問に答えるのはコードを出した本人です。
上の表の「説明・意図・修正」は、そのままレビューで聞かれる質問です。
授業の外でも同じです。たとえば、AIに任せて作った成果物を納品したものの、仕様を十分に理解しておらず、不具合を指摘されると「AIで作ったので間違いないはずです」と答えてしまう。このような対応をすると、仕事の場では信頼を失い、契約が打ち切られることもあります。
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行ずつ他人に説明できる
- エラーが出たとき、原因の行や処理を自分で考えてから調べる
- 配列・ループ・条件分岐を組み合わせた処理を、自分で考えて書ける
- サンプルやAIのコードを使うとき、丸写しせずに自分で組み立て直す
- AIに出してもらったコードは、動いたあとに中身を理解するまで読む
- 説明できないコードを、そのまま使ってしまう
- エラーが出ると、自分で考える前にAIや答えを見てしまう
- 何から書けばいいか分からず、手が止まってしまう
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);
- 表示される値は?
- ループの中の
iは何を表す? i < scores.Lengthをi <= scores.Lengthに変えると?- 同じ合計を
foreachで書いたとき、正しいのは? - 60点以上の人数を数えたい。
forの中に書くのは? - 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 出力の検証 に直結する基礎語彙である- 自己診断(フォーム)は いまの自分の位置を知る ためのもの。自己チェックとコード読解の結果のずれが、次に練習するポイントになる
発展:シリーズとコードの土台
- シリーズの目次・前後の回は AI時代のプログラミング学習シリーズ(固定ページ) を参照
- 実行の流れ・読み方は 変数から段階的に学習 を参照
Listやforeachの土台は クラス気づき学習シリーズ が近道です









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