AI時代のプログラミング教育 / programming education in ai era
by
Naoki Kishida
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
これからのプログラミング教育 2025-03-21 第二回プログラミング教育について語る会 LINEヤフー きしだ なおき
Slide 2
Slide 2 text
2025/03/21 2 自己紹介 ● きしだ なおき ● LINEヤフー ● X(twitter): @kis ● blog: きしだのHatena ● (nowokay.hatenablog.com) ● 「プロになるJava」というJavaの本を書いてます
Slide 3
Slide 3 text
3 AIのコーディング能力があがっている ● AIのムーアの法則 ● 50%の確率で成功するコード量は7ヵ月で2倍 by METR ● 「人が1ヶ月かかるようなタスクを50%の成功率でこなせるよ うになるのは2029年後半から2031年初頭」(岡野原さん)
Slide 4
Slide 4 text
そもそもプログラムが必要なくなる ● ノーコード・ローコード ● AIが直接処理
Slide 5
Slide 5 text
ノーコード・ローコードで中小ITベンダーが倒産 ● 2024年のソフトウェア業倒産件数 ● 東京商工リサーチ 223件 ● うち、受託開発209件 ● 帝国データバンク 189件 ● うち、受託開発160件 ● ノーコード・ローコードにより内製が加速 ● アウトソーシングが減り中小の案件減少
Slide 6
Slide 6 text
AIが直接処理 ● AIの本質は自然言語によるコンピューティング ● やりたいことを単発であればだいたいやってくれる ● プログラミングは不要 ● 必要ならプログラム化してくれる ● 高頻度、高速度、高精度が必要な場合 ● 一度やってもらったことなら確実性が高い ● アドホックに自動でプログラム化も行う ● グラフなどはPythonを生成 ● プログラムが生成されたことを意識しない
Slide 7
Slide 7 text
事例:GCログ可視化 ● JavaのGCのログからポーズ時間が知りたかった ● ちなみにNetBeansを動かすときのG1GC。 ZGCだと1ms以下になった。
Slide 8
Slide 8 text
事例:GCログ可視化 ● ログの読み方を教えてもらおうとファイル投げたら頼んでないの に可視化してくれた ● グラフ化は裏でpython
Slide 9
Slide 9 text
事例:GCログ可視化 ● プログラムも作ってくれた
Slide 10
Slide 10 text
必要なのはコンピューティングの技術 ● プログラムを書く、書いてもらう、AIにやらせるにかかわらず、 コンピュータを利用することが目的 ● コンピュータに何ができるか ● コンピュータに何をやらせるか ● 今まではプログラミングが唯一のコンピューティング手段だった
Slide 11
Slide 11 text
コンピュータに何ができるか ● 計算機科学 ● アルゴリズムと計算量 ● データ構造
Slide 12
Slide 12 text
AIが不得意なことは人間がやるか指示する ● 現状ではソースに明示的に書かれてないことは不得意 ● イベントやリクエストをまたがる状態遷移 ● イベント発生順を考慮できない ● オブジェクトの寿命を意識できない ● データ構造の決定 ● AIにはなるべく宣言的に書かせる ● 手続きには状態遷移が内在される ● プログラムカウンタ
Slide 13
Slide 13 text
状態遷移の理解は重要 ● 状態遷移を考慮せずにAIに指示を積み上げていくと破綻しがち ● プログラムの本質は状態遷移 ● 静的論理だけなら電子回路でできる ● 状態遷移があるからプログラムになる ● 状態遷移を理解するためにプログラミングが便利
Slide 14
Slide 14 text
データ構造は大切 ● データをどう保持するか ● データの正規化(RDBMSの文脈に限らず) ● 正規化できたらAIは選びやすくなる ● データ構造を理解するためにプログラミングが便利 ● 型についての理解が必要 ● AIに確実に動作させる
Slide 15
Slide 15 text
コンピュータに何をやらせるか ● 要件定義と受入テストが重要 ● ソフトウェア工学が大切 ● 要件定義を勉強しよう ● 要求は自分で確定する必要がある ● テストの能力も大切 ● 要求を満たすかの確認は自分でやる必要 ここが重要
Slide 16
Slide 16 text
AIに書かせるためのプログラミング学習 ● プログラミングを通して状態遷移やデータ構造を知る ● AIを使って学習をブーストする ● AIにサンプルコードを作らせる ● 解説させる ● 自分で実装できるか試す ● AIに確認問題を作らせる ● 「JavaのStreamの理解度を確認する4択問題を作って。解答は出さないで」 ● 「プロになるJava」には仕込んでいきたい
Slide 17
Slide 17 text
AIとの協調が必要 ● AIに何ができるか把握しておく ● その時点でできることがどんどん変わる ● AIエージェントに自動で書かせるより、人間の指示で書かせる ほうがより複雑で確度の高いコードができる ● エージェントにまかせる部分、自分で指示する部分、自分でコードを 書く部分という使い分けが大切 ● 塩梅を知る必要がある
Slide 18
Slide 18 text
AIを使ってない人はもっと使おう ● AIを日常に ● できれば課金して高性能モデルを体験しておく ● 数か月先の性能の先取り ● 35歳以下が4/5 ● 36歳以上が1/5しかいない ● 人口的には70%を占める ● 大学生が大半