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%を占める ● 大学生が大半