「プログラミング教育について語る会 」で話した内容をまとめておきます。
「AI時代のプログラミング教育」としたのだけど、内容的には「コンピューティング能力を伸ばそうぜ、その道具としてプログラミングしよう」みたいな話になりました。
https://nextbeat.connpass.com/event/346052/
資料はこちら
まず前提として、AIのコーディング能力が7ヵ月で倍になっているというのがあります。なので、今現在の能力で話をしてもあまり意味がなく、ゆくゆくはかなりのレベルでAIがコードを書くという想定をしておいたほうがいいです。
元ネタのツイートはこれ
https://x.com/METR_Evals/status/1902384481111322929
論文はここ
[2503.14499] Measuring AI Ability to Complete Long Tasks
岡野原さんのツイートはこれ
https://x.com/hillbig/status/1902854727089656016
そして、そもそもプログラムを作る必要がないんじゃないかというのもあります。
- ノーコード・ローコード
- AIが直接処理
ノーコード・ローコードで内製が進んで中小ベンダーの倒産が進んだという話。
これには、人件費高騰もあるのだけど、内製加速でプログラム専門の会社が不要になったという話でもある。
ソフトウエア業倒産、過去10年で最多 背景に内製化の進展と人件費高騰 | 日経クロステック(xTECH)
ツールによってプログラミングが不要になることの他に、AIが直接処理をしてくれるということもあります。
そもそもとして、AIが便利なのは、これが自然言語によるコンピューティングだからです。やりたいことをだいたいやってくれて、プログラミングが不要です。
ChatGPTが出てすぐくらいに書いてました。
ChatGPTは真にプログラミング知識なしでのコンピュータ操作を実現している - きしだのHatena
ただ、頻度が高かったり、速度を求めたり、精度を求めたりするとプログラムが必要になりますが、一度やってもらってる要件を把握してもらってるので、ちゃんとコードを出す確率が高いです。
あと、裏側でコードを生成、実行して、プログラムが生成されたことを意識しないということもあります。
そのあたりを書いたのが、このブログで、処理をAIがやってくれるならシステムがそもそも不要になりますね。冒頭の、AIにできることが7ヵ月で倍になる話を踏まえると、ここで言いたかったことが伝わりやすい気がします。
AIが進化すると、そもそも業務システムが不要になりそう - きしだのHatena
で、GCログの事例。読み方を教えてもらおうと思ったら、グラフまで書いてくれてびっくりしました。そしてこの時点で用が済んでしまった。
このグラフは裏でPythonスクリプトが生成されて動いていますね。
コード書いてプログラムも作ってくれた。
で、そうなると、プログラミングの能力は必要なくて、でもコンピューティングの技術というのは必要です。
目的は、プログラムを書いたり書かせたり、AIにやらせるにかかわらず、コンピュータを利用することです。
いままでは、その手段が自分でプログラムを書くか、だれかが書いたプログラムを使うかしかなかったわけです。だれかが書いたプログラムがみつからないようなことを実現したければプログラムを書くしかなかったのが、AIにお願いすれば処理してくれるし、コードも書いてくれるようになりました。
そうすると、コンピュータに何ができるか、何をやらせるかということが大事になります。
で、コンピュータに何ができるかという話は、計算機科学がやっぱり大事。
その中でも、状態遷移をちゃんと把握するということが大事だと思います。
単なる回路とプロセッサをわけるのは、状態遷移の管理ができるかどうかです。ここでは「プログラム」じゃなくて「コンピュータ」ってしたほうがよかったかも。
そして、状態遷移のトレーニングをするのに、プログラムの勉強はとてもいい。
もちろん、あたりまえに論理は やっておこう。
知識を得ればいいのではなく、技能の習得が必要なので、トレーニングが大事です。
そしてデータ構造。データをどう正規化するかが大事です。
ここではRDBの正規化に限らず、データの重複をなくせるよう構成を定義すること全般をさしてます。
そういった作業は、おそらくAIには不得意です。というか、AIに処理させるために、扱いたいデータをちゃんと言葉で表現する必要があります。
そして、その表現のためには、構造体やリスト、マップといったデータ構造は知っておいたほうがいいし、RDBの正規化は勉強しておいたほうがいいです。
そして、そういったことを勉強するのに、やっぱプログラム書くのがトレーニングになる。
あと、そもそもコンピュータに何をやらせるか表現できる必要がありますね。
そういった技術を要件定義といいます。ここは結構ちゃんとやってない人が多い気がします。
なので、ちゃんと要件定義の技術を勉強しておくと、需要の増加と勉強してる人の少なさから、強みにできるんじゃないでしょうか。
あと、要件通りのモノができたかどうかを確認する受入テストの技術も大事ですね。
つまり、開発のV字モデルの、上の層が大事になるということです。ここでは基本設計のところにも半分かぶせています。基本設計に該当することはAIもある程度やってくれると思うので。
あと、原理的にAIに不得意なことというのはあるので、人間がやるか指示する必要があります。
トランスフォーマーという構造や、テキストから学習していくという仕組みから、どうしても苦手な部分というところは残るはず。緩和はされても、相対的に苦手ってなると思います。トランスフォーマー以外の仕組みとなると、実用化は少しかかりそう。
そういった部分は人間がやるか、エージェントではなく自分で指示を出すということになるかと。
ソースに明示されていないことの理解は苦手なので、イベントやリクエストをまたがった状態遷移は苦手になると思います。ソースに書かれていないイベント発生順なども把握が難しいですね。
あと、すでに定義されたデータ構造の処理はできても、要件からデータ構造を定義するということも苦手なはず。要件とデータ構造の結び付けがテキスト化されていないので。
典型実装を知っているので、ヒントをあたえてあげればできると思いますが、逆にいえばヒントをなんらかの形で与える必要があると思います。
そこでは、なるべく宣言的な記述で書けるほうが有利だと思います。型の定義があるほうが有利とも思います。 型は、自分で書くには習熟が必要だけど、読むのは楽です。AIが書いたコードの正しさを確認して意図を把握する上では、型というのは助けになりそう。
ということで、プログラミングの学習としては、AIに書かせることを前提に、プログラミングを通して必要な技能を得るというスタンスがいいのかなと思います。細かいことはAIにやらせよう。
あと、その学習時にAIを使ってブーストするというのも大事ですね。 わからないことを聞く他に、サンプルコードを作らせて説明させて、そして同じコードを自力で書いてみるとか。確認問題を作ってもらうのもいいです。
また、AIとの協調作業に慣れておく必要もあります。
AIに何ができて何ができないか、どういうクセがあるかつかんでおくのは大事です。
自分がAIに対してどういうふるまいをするか知っておくのも結構大事。人間相手とちょっと違う対応をしがち。
そして、そのAIは、日々性能向上していくので、その時点で何ができて何ができないか、どういうクセがあるかを確認する必要があります。半年前とは変わってるので。
それと、AIエージェントにまかせてコードを書かせるよりは、人間の指示で書かせるほうが確度の高いコードができます。
これは、AIエージェントのシステムプロンプトに、AIエージェントとしてのふるまいを定義するための定義が10000文字くらいあって、それで実際のタスクの指令がちょっとぼやけるんじゃないかと思ってます。性能あがれば緩和していくとは思うけど。
コストや時間の問題もあるので、エージェントにまかせる部分、自分で指示してコードを書かせる部分、自分でコードを書く部分という使い分けが大事になりそうです。
で、そうした場合には使い分けの塩梅をつかんでおく必要もあります。
そして最後に、そんな世界が来るのはほぼ確実なので、AI慣れしておく必要があります。
OpenAI日本法人の話で、ユーザーのほとんどが大学生だという話がありました。
4/5が35歳以下とのことです。35歳以上は人口の70%を占めてるのに、20%しかユーザーにいないということは、利用率はかなり少ないということになります。
https://www.itmedia.co.jp/aiplus/articles/2503/18/news166.html
学生生活実態調査でも、学生の半数がChatGPTなどを使ってるという調査があります。2023年の30%から1年で伸びてますね。今後も利用しないという人が半減してます。
https://www.univcoop.or.jp/press/life/report.html
そんな感じなので、まだ日常的にAI使ってない人は、まずはAIを日常にしていきましょう。 もう、ハルシネーションがあって使えないという時期は終わりました。
できれば課金をして使うのがいいです。高性能モデルを使うということは、無料版を使う人の数か月先を行っていることになります。
個人的にはPerplexityがおすすめです。無料でもDeep Research使えるし。
※ 4/18追記 GeminiのReep ResearchがGemini 2.5 Proベースになってすごくよくなっているので、Deep Researchは両方に投げて両方読むのがおすすめ。課金はPerpelexityでGemini 2.5 ProもGPT 4.1も使えるので手軽にちょっと賢いモデルを使う用途だとおすすめ。あとはo3やDeep Researchのようなすごく賢い機能がどこまで必要かで考えるのがよさそうです。