――大学4年の春。授業でChatGPTを知った私は、宿題をサボるためにその活用法を編み出した。プログラミングにも使えることを知り、出来心で「#100日チャレンジ」に取り組み始めた。毎日1本、新しいアプリ(作品)を作り、X(旧ツイッター)に投稿するというものだ。暇つぶしで始めたそれは、過酷な挑戦であると同時に、日常的な興味と学び、そして飛躍をもたらした――。Z世代の著者によるAI駆動型プログラミング学習探究記『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』(大塚あみ著)から、100日チャレンジの前日譚「ステップ0 プロローグ」編を抜粋・再編集してお届けします。その第5回。
5月14日(日)、目覚めた私は昨日の出来事を思い出していた。伊藤先生から学会での発表を提案されたが、正直なところ不安でいっぱいだ。このような経験は二度とないと思ったのと先生の手前、「ぜひ、やらせてください」と見得を切ったものの、論文を書いたこともなければ、プレゼンテーションの経験もほとんどない。そんな私に大役が務まるのだろうか。
気分を落ち着かせるために、電車に乗って渋谷へ向かうことにした。とくに目的地があるわけでもなく、ただ人混みの中を歩きながら考えを整理したかった。まずは電車の窓から流れる景色を眺めながら、何を書くべきか思案してみよう。
渋谷駅に降り立ち、スクランブル交差点を渡る。無数の人々が行き交う中、自分の小ささを感じた。プログラミングの世界では、私はまだ初心者だ。何年も勉強してきた人たちに比べれば、経験も知識も足りない。なのに論文を書くなんて。
私にあるものといえば、ChatGPTで作ったゲームのコードと、ChatGPTを使ってレポート課題をサボる技術、そして授業で少しかじったソフトウェア工学の知識だけ。コードを深く理解しているわけでもない。ChatGPTに大まかな構造を指示して作らせただけだ。
以前、JavaScript(ジャバスクリプト)を学ぼうとして市販の技術書を手に取ったが、コードをただ写すだけの作業に飽きてしまい、数時間で挫折したことを思い出す。集中力が続かない私にとって、「写経」は拷問のようだった。
雑踏をしばらく歩き続け、足が疲れてきたのでカフェに入ることにした。窓際の席に座り、コーヒーを注文する。窓の外には、建設中の高層ビルと大きなクレーンが見える。渋谷はいつも工事中だ。多くの作業員が忙しそうに動き回っている。
その光景をぼんやりと眺めていると、ふと建物の設計とソフトウェアの設計の類似点に気づいた。建物はまず建築士が詳細な設計図を描き、顧客はそれを確認して発注する。積み木で家を作るようにトライアンドエラーを繰り返すわけではない。

一方、本や授業で紹介されているプログラミング学習は、言語の文法やコードを書くことに重きを置いている。設計や上流工程については理論で学ぶことはあっても、実際に開発を経験するのは会社に入ってからの人がほとんどだ。
オセロのプログラムを作る際、私はプロンプトを考え、ChatGPTに具体的な指示を与えてプログラムを生成していた。これはまさに上流工程の設計ではないか? 知らず知らずのうちに、ソフトウェア開発の本質的な部分を経験していたのかもしれない。
「そうだ、これをテーマに論文を書いてみよう」
プログラミング教育を、従来の言語学習中心のアプローチから、設計や上流工程を重視した学習方法に変える提案だ。私の実体験に基づけば、説得力のある内容になるかもしれない。
カフェを出て、近くの100円ショップでノートとボールペンを購入した。帰りの電車内で、思いつくままにアイデアを書き留めていく。ポイントは、初心者でも上流工程から学ぶことで、効率的にプログラミングの本質を理解できることだ。
家に帰ると、早速そのアイデアをChatGPTに相談した。
するとChatGPTは論文の構成を提案してくれた。それに基づいて簡単な構成案を作成し、伊藤先生にメールで送った。
「面白い視点ですね。論文とプレゼンが完成したらまた見せてください。困ったときは佐々木先生に聞いてください」
伊藤先生の返信を見て、このテーマで大丈夫そうだと安堵した。しかし、論文の書き方もプレゼンの作り方も分からない。私は再びChatGPTに頼ることにした。
ChatGPTは論文の基本構成や注意点を丁寧に教えてくれた。イントロダクション、関連研究、提案手法、実験結果、結論といった流れだ。私はそのアドバイスを元に、まずはアウトラインを作成した。
続けて私は、ChatGPTとやり取りしながら各節に情報を切り貼りし、それらを編集することで、数日かけて草案を書き上げた。自分の体験や考えを文章にするのは思ったより難しかったが、ChatGPTに何度も相談しながら進めた。文章表現の改善点や論理の飛躍がないかなどを細かくチェックしてもらいながら。
草案が完成したところで、次はプレゼンを作成することにした。草案に基づいて大胆にスライドに切り分け、内容やデザインを簡単に整えた。
次の週の授業終了後、そのスライドを佐々木先生に見せた。佐々木先生は本業がIT会社の社長で、プレゼンも得意。様々なアドバイスをもらい、その場で修正した。その日の帰り、私は伊藤先生にプレゼン資料を提出した。
ChatGPTを活用したプログラミング学習の提案を
6月8日(木)、論文発表の当日。朝から緊張が止まらない。授業に出席しても、頭の中は発表のことでいっぱい、プレゼンの原稿をずっと見ていた。昼休みは図書館で最後の確認をしようとノートパソコンを開き、スライドを見直した。
午後になり、リモートで学会に参加するため伊藤先生の研究室へ向かった。伊藤先生と佐々木先生が見守る中、パソコンの前に座る。目の前の画面には何も映っておらず、真っ暗だった。
5分くらい待機していると、伊藤先生がいきなり、「順番が回ってきたから、プレゼンを始めて」と言った。私は何も映っていない画面に向けて、よく分からないまま発表を開始した。
「本日は、『ChatGPTを活用したプログラミング学習の提案』について発表させていただきます」
スライドを進めながら、これまでの経緯や提案内容を丁寧に説明した。しかし、真っ黒の画面に話していたので、学会に参加しているという感覚は全くなかった。大学の先生はリモート授業のとき、こういう気持ちで話しているのだろうか。そんなことを考えながら、原稿を読み上げた。
発表が終わり、質疑応答の時間になった。最初の質問者が手を挙げる。
「上級者と初心者では、プログラムの書き方が違う場合もあると思います。ChatGPTはそれに対応できるのでしょうか?」
一瞬戸惑う。私の話した内容と正対しないような気がしたが、すぐに答える。
「はい。ChatGPTにコードの省略の仕方などを指示すればできるはずです」
ほかにもいくつか質問が続いたが、何とか答えることができた。質疑応答が終わり、発表は終了した。手元のノートパソコンの画面を閉じると、一気に緊張が解けた。肩の力が抜け、深い息を吐く。
「お疲れ様」
背後から声がして振り向くと、伊藤先生と佐々木先生が微笑んでいた。
「初めてにしては上出来だ。堂々としていたよ」
「質疑応答も的確だったよ。よく頑張った」
「ありがとうございます!」
2人に褒められたことで、無事に終わったことを実感できた。
「せっかくだから、今日は3人で食事でもしようか」
伊藤先生の提案に私は頷いた。年長者からの食事の誘いはなるべく断らないようにしている。3人で近くのレストランに行き、学会のこと、ChatGPTのこと、先生方の最近の出張先のことなど、様々な事柄を話した。教授たちのエピソードを聞くにつれ、その肩書は堅苦しく感じるものの実際には気さくな人たちであることが印象的だった。
(了 続きは書籍『#100日チャレンジ』ステップ1へ)
大塚あみ著、日経BP、1980円(税込み)
