【学習】AIのコードに責任を持てるとはどういうことか(AI時代のプログラミング学習 第2回)
【AI時代のプログラミング学習 第2回】
はじめに
この回の想定は、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 と foreach、i と 配列[i] は説明の試金石
AI の出力をそのまま使うと、一見すっきりしたコードが出ることがあります。
しかし授業や面接で問われやすいのは、次のような 基本語彙 です。
| 用語 | 説明できれば強い(例) |
|---|---|
for | 回数が決まっている/インデックスが必要なときに使う |
foreach | コレクションの要素を順に扱うときに使う |
i | ループ変数(何回目か) |
配列[i] | i 番目の要素にアクセスしている |
ここが曖昧なままだと、AI に頼った痕跡だけが残る ことがあります。すでに基礎課題は終えている読者には、足りないところだけ戻るための地図 として、クラス気づき学習シリーズ や 変数から段階的に学習 を使うとよいです。第1回で書いた 「検証できる」 に直結します。
AI活用・実装力 自己診断(基礎終了後)
授業の回答・集計は Googleフォーム(AI活用・実装力 自己診断) で行えます。
以下は フォームと同じ質問 を、紙やオフライン用に載せたものです。
(目的は評価ではなく、いまどの段階にいるかを知ること です。)
質問(すべて「はい/いいえ」)
前向きの質問(1〜6)…「はい」が望ましい
- 自分が書いたコードの処理内容を、他人に説明できますか。
- エラーが出たとき、どの行・どの処理が原因かを自分で考えられますか。
- 短い課題なら、サンプルや AI を参考にしても、丸写しではなく自分で組み立てて動かせますか。
- 配列・ループ・条件分岐を組み合わせた処理を、自分で考えて書けますか。
- AI にコードを出してもらった後、その内容を理解しようとしていますか。
- AI に丸ごと書かせるのではなく、自分で書いたコードの補助として使っていますか。
リスクの質問(7〜10)…「はい」が注意サイン(依存・先逃げに近い)
- 動いたコードでも、説明できないまま使うことがありますか。
- エラーが出ると、すぐに AI や答えを見てしまいますか。
- ほとんどのコードを AI に任せている状態ですか。
- 自分で書こうとすると、どこから手をつけていいか分からなくなることが多いですか。
紙・自己採点する場合(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 出力の検証 に直結する基礎語彙である- 自己診断(フォーム/紙)は 位置取り のためのもので、最終評価ではない(フォーム と記事の質問文は同一)
発展:シリーズとコードの土台
- シリーズの目次・前後の回は AI時代のプログラミング学習シリーズ(固定ページ) を参照
- 実行の流れ・読み方は 変数から段階的に学習 を参照
Listやforeachの土台は クラス気づき学習シリーズ が近道です




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