Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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%を占める ● 大学生が大半