ChatGPTを使ったプログラミング教育のパラダイムシ
フト：100日連続アプリ作成の達成
中央大学 経済学部 伊藤 篤（株）ゼンリンデータコム 大塚 あみ
2024.9.3
NWS研究会1

本発表の構成●

初学者向けのプログラミング教育の提案●

対話型AIを利用した探索型学習の実際と評価

2

概要
（背景）
・プログラミングスキルは様々な職業で求められつつある・文系の学生にも必要
しかし、一般には、・プログラミング学習は困難

そこで…
・新アプローチ：ChatGPTを活用し、プログラミングを自学自習・写経的コーディングから、文書化中心のアプローチへの転換
3

学習者とAIの関係

4

中心になる存在

ChatGPTの役割

システム要件定義

人間

要件定義補佐システム方式設計

人間

設計補佐

ソフトウェア設計

人間

設計補佐

プラグラミング

ChatGPT

コードの作成ソフトウェアテスト

人間

テストコードの作成

システム結合人間

エラーからのコード修正

システムテスト

人間

テストケースの作成
エラーからのコード修正5

100日チャレンジ6

100日チャレンジ● ChatGPTを活用し、Pythonでゲームや簡単なツールを毎日作成● 10月28日〜2月4日の100日間、毎日ゲームやツールを作成し、SNSに投稿した。

● 目的：ChatGPTとの対話から、仕様記述に基づくプログラミングスタイルを構築すること。
ASCII様に取材して頂いた記事
https://ascii.jp/elem/000/004/185/4185964/7作成した作品8

学習者について（前提条件）
学習者の企画以前の能力
・Pythonを100時間程度使っていた。
・ChatGPTをプログラミング以外の領域で800時間使っていた。

企画を始める上での動機
・1月に学会発表(NWS研究会）が決まっていた。
・6月の学会の継続研究を進める上で、プログラミング能力が必要だと感じていた。（結果的にこれ自体が継続研究となった。）→ Pythonのスキルが上がれば、「何か」が変わるかもしれない、という希望が学習者の中であった。
→学習過程自体を企画にして周りに見てもらおうと思い、SNSで企画を始めた。
9

企画の要点• 学習者は、あくまで自身の学習目的で始めている。
• 学習履歴が豊富に残っていることから、指導教員の勧めで、途中から研究目的を加えている。
• この企画をDay20に知った指導教員は、学習者の企画の観察を始めた。
• 学習者は、ChatGPTを用いて自発的に毎日ゲームやツールを開発することで、プログラミングの能力が次第に上がっていった。
• 企画を進めるにつれ、自然とソフトウェア工学の理論を用いて設計を行い、ソフトウェアの開発を進めるようになった。

10

企画の結果（学習者のスキル面）● 学習者がChatGPTに与える指示が明確になった● 学習者は、ゲーム構築に使うコンポーネントの整理や機能の更新を日々繰り返すことにより、より複雑なゲームを短時間に構築可能となった

見た目の他に、・背景が動く・反転演出などの演出も作られている。
Day100Day1

11ChatGPTを使ったプログラム作成手順例
学習者

ChatGPT

指導教員

Step1

学習リソースでソフ
トウェアに関する技術を学ぶ

学習者の質疑応答の対応、学習リ
ソースの紹介学習者の質疑応答の対応、学習リ
ソースの紹介学習リソース：授業、セミナー、書籍、論文など

Step2作成するゲーム・
ツールの概要の決定

基本的なプログラムを作成する（学習者はこれで完成図を予想できる）

・適切な質問を投げかける
・発表機会の検討

α版を作ることで、学習者は成果物の全体像を予想することができる。

設計書の作成・部分的に自動生成を行い効率化
・学習者の質問に答える

適切な質問を投げかける

要件定義→外部設計→内部設計と、詳細な定義を作り込む。

プログラミング

・部分的に自動生成を行い効率化
・学習者の質問に答える

適切な質問を投げかける

Step3

Step4

プログラミングは大部分を自動化できるが、コードを理解し修正する必要がある。
12

ChatGPTを使ったプログラム作成における失敗からの学び●プログラムが大きくなると、既存の手法ではさらなる改良が困難になる。これを通じて、プログラムを機能ごとに分割したり、文書化する必要性を学ぶことができる。

●

ChatGPTは利用者の考えを読み取って動くようなものではなく、明確な指示が必要。しかし、何を指示するべきかが分からなくなる可能性がある。そのため、自分が何をしたいのかを明確に書面に残す必要がある（要件定義、基本設計などの必要性がわかる）。

●

プログラムを読む労力は大きく、改良のたびにすべてのプログラムを読むのは非効率。動
作概要、入力値、出力値で理解ができるようになる必要がある（プログラム定義書の必要性がわかる）。

13

従来の教育方法 vs. ChatGPTによる学習● 従来の教育方法：
教師主導型、指示や問題に従って学習● ChatGPTによる学習：
自己管理的学習、自身のペースやニーズに合わせた学習ができるようになる→学習者が主導して学習し、指導教員は学習機会を与えることに専念する。
14

本企画における学習者・指導教員の役割
学習者

指導教員

備考

企画の進捗についての共有。
ソースコード、ChatGPTの履歴、企画の計画、私的なメモ・文書

論文執筆にあたり必要なデータの共有の要請

学習者と指導教員は、平日の昼にミーティングを行い、文書や資料についてはクラウド上で常に共有していた。

学習者の思考を促すため、適切な質問を投げかける。
学習者に求められた、もしくは必要だと判断した文献・ツールの提供。

• 指導教員は論文執筆のため必要なデータの作成のための指導は積極的に行った。
• 一方で、ソフトウェアの作成自体に対してはできる限り干渉せずに自分でやってもらうように意識していた。

••

ソフトウェアの作成（設計〜コーディングまでのソフトウェア開発におけるすべての工程。）
ChatGPTと協力した、コーディン
グ、情報収集、文書作成等

論文の執筆

•
•

論文指導

学習者は、ChatGPTと協力して論文を作成する上で、自力で解決できない部分については指導教員に指導を仰いだ。
15

未来のビジョン● ゲーム開発がプログラミング初心者にも手軽になる● 要件定義中心の学習により自身のアイデアを形にする方法を学ぶ● 学生が要件定義を提出し、ChatGPTに基づいたプログラム作成が可能に● 学生が自らのゲームを開発し、公開する機会が増える
16

未来のビジョン (続き)● ChatGPTベースの教材により上流工程の問題解決リソー
スが増加● 学生の深い理解とプログラム品質の向上が期待できる● 個人や少数のグループでもゲーム開発が可能になる● ゲーム業界が学生の創造力とプログラミング能力を育む場になる
17

結論
学習者

指導教員

●

●

●

ChatGPTによる情報収集の効率化、成果物作成の支援により、学習の流れを高速化できる。
論文や専門知識等をChatGPTを用いて独自で解釈し、利用する経験ができる。

●

学習者に対し、成果を出すための機会を作ることに集中できる。
学習者に適切な質問を投げかけることで、不足する部分の知識を自ら得させることができる。

→ 学習者はより効率的に学習を進めることができる。
18

ご清聴ありがとうございました。

19

引用，参考文献等"Self-Directed Learning: A Guide for Learners and Teachers" by Malcolm Knowles
和書：学習者と教育者のための自己主導型学習ガイドとともに創る学習のすすめ 明石書店
"Make It Stick: The Science of Successful Learning" by Peter C. Brown, Henry L. Roediger III, and Mark A. McDaniel 和書：使える脳の鍛え方 成功する学習の科学 NTT出版

Learned Helplessness: A Theory for the Age of Personal Control by Christopher Peterson20