――大学4年の春。授業でChatGPTを知った私は、宿題をサボるためにその活用法を編み出した。プログラミングにも使えることを知り、出来心で「#100日チャレンジ」に取り組み始めた。毎日1本、新しいアプリ(作品)を作り、X(旧ツイッター)に投稿するというものだ。暇つぶしで始めたそれは、過酷な挑戦であると同時に、日常的な興味と学び、そして飛躍をもたらした――。Z世代の著者によるAI駆動型プログラミング学習探究記『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』の著者である大塚あみ氏を指導した中央大学教授の伊藤篤氏が、「100日チャレンジ」をいかに支援したかを解説する。
書籍『#100日チャレンジ 毎日連続100本アプリを作ったら人生が変わった』の著者である大塚あみ氏は、大学在学中に私(本稿の筆者)の講義を受けていた。ゼミ生ではないものの、講義の延長でプログラミングに関してあれこれ相談に乗ることとなった。その意味では、私は大塚氏の、一般的な意味での指導教官ではない。しかし、『#100日チャレンジ』にも記されているように、私が大塚氏の学会発表を指導し、加えて、大塚氏が「100日チャレンジ」の企画に取り組み始めてからは週3回ほど相談に乗っていたことから、「大塚氏の指導教官」と認識されているようで、いかに指導してきたのかを書いてほしい、という依頼を受けた。いわば、「生成AIに育てられた第1世代」(大塚氏はソーシャルメディアのプロフィルでこう自称している※1)をいかに育てたかを明かしてほしい、ということであろう。
学会の場などにおいても、同じようなことを聞かれることが増えてきた。具体的には、以下のような質問をよくいただく。
・どのように指導をするとうまくいくのか?
・なぜ大塚氏を指導しよう(論文を書かせよう)と思ったのか?
・評価された論文を著者が書けた理由は?
率直にいうと、これらの問いに(特に論文発表の質疑応答の場などで)ひとことで答えるのはむずかしい。そこで本稿では、私が見た範囲内であるが、大塚氏がどのように「100日チャレンジ」に取り組んでいたかを記そうと思う。個人的な印象に負うところが大きいのはご容赦いただいたうえで、「何かを成し遂げる人」を支援したり見守ったりするときの一助になれば幸いである。
「柔軟な発想」に興味を惹(ひ)かれた
大塚さん(ここからは大学在籍時の呼び名にさせていただく)との出会いは、2023年5月23日であった。非常勤講師をお願いしている佐々木陽先生に用事があり、その教室を訪ねたときのことである。佐々木先生から、「面白いプログラムを書く学生がいますよ」と紹介されたのが大塚さんであった。佐々木先生が声を掛けると、黒い服を着た大塚さんは、ちょっと面倒くさそうな感じで、上目遣いに返事をした。私が大塚さんに抱いた第一印象は、モジリアーニの「Woman with Blue Eyes」である。
佐々木先生から「大塚さんはChatGPTとGoogle Colaboratory※2(以下Colab)を使って、Pythonでオセロ風ゲームを作ったんですよ」と紹介された。その画面を見せてもらうと、Colab上にオセロの盤面が表示されている。Colabでは、ゲーム実行用の別ウィンドウを起動して画面を描くことができないので、どうしたのかなと思い聞いてみた。すると、Pythonでグラフなどを描くためのライブラリMatplotlibを使っているという。授業中にこんなやり方でゲーム画面を作成している学生には出会ったことがなかったので、私はとても驚いたのを覚えている。
書籍『#100日チャレンジ』には、最初は黒丸(●)、白丸(〇)の文字を縦横に並べて描いていたのを、つまりテキストとしてオセロの盤面を描いていたのを、授業でMatplotlibを習ったときにオセロの盤面をそれで描くことを思いついた、と書いてある。Matplotlibのサンプルプログラムに散布図を描くものがあるので、そこからの連想かもしれないが、普通はなかなか思いつかない。たとえChatGPTに聞いたとしても、そのような回答は(よほど上手にプロンプトを指定しないかぎり)得られないだろう。

私はこのとき、大塚さんの「柔軟な発想」に驚かされた。「オセロの盤面を描きたい」という欲求に対し、プログラミングへの先入観がないためか、自由な発想で実現方法を探っている。そのとき私は、「ChatGPTを使ってゲームを作った」という大塚さんの行動だけでなく、使えそうなものを柔軟に取り組む姿勢に大いなる興味を感じたのである。そこで私は、その場で大塚さんに、翌週の学会(電子情報通信学会ネットワークソフトウエア研究会)での発表を依頼した。
「本質を捉える力」に感銘を受けた
いきなり発表をお願いするのも勇気のいることではあったが、この学会で事前に提出する資料はパワーポイントの文書でもよく、オセロ風ゲームという題材はあるので大丈夫だろうと思っていた。結果として大塚さんは、その期待を上回る成果を出してくれた。
翌日、大塚さんから、パワーポイント文書の下書きが送られてきた。そこでは「ChatGPTでオセロ風ゲームをつくる」という話はすでに脇役になっていて、「ChatGPTによりコーディングが自動化されることで、(アプリケーションの)仕様作成がより重要になる」ことに焦点が当てられていた。少しおおげさに表現すれば、「生成AI導入によるソフトウエア開発のパラダイムシフト」を初めての学会発表で指摘してきたのである。
私はこのとき、大塚さんの嗅覚の鋭さというか「本質を捉える力」に強い感銘を受けた。仕様記述の研究は、私が学生の頃からのソフトウエア工学の重要な課題であるが、なかなか進展がなく、まだ十分に認知・活用されている技術や関連情報も少ない。ChatGPTのサポートがあったにしても、仕様記述という論点に、わずかな時間で到達するのは容易ではないはずだ。ここに、大塚さんのセンスのよさを感じたのである。
大塚さんのセンスのよさを感じた人は私だけではなかったようだ。大塚さんが初めて学会発表した研究会の委員長から、その続きを招待講演として話してほしいと依頼されたことも、証左のひとつだろうと私は捉えている。
チャレンジを支えた「興味を持ってやってみる姿勢」
書籍『#100日チャレンジ』にも記されているように、その企画が始まってから、私は大塚さんと頻繁に昼食をとることとなった。そこでの会話などに基づいて私が感じた大塚さんの特徴は、「興味を持ってやってみる姿勢」である。
大塚さんはまっすぐ歩かない。もちろん、意識すればまっすぐ歩けないわけではない。ただ、大学の廊下を歩いていても、右に左に蛇行していることが多い。なぜなら、考えながら歩く、あるいは、興味を持ったものにまっすぐ近づいていくからだ。大塚さんは、いろいろ考えつつ時に立ち止まりながら歩いていたり、歩いているときに出合わせたモノやコトに次々に興味を惹かれてそこに向かっていったりする。そのため、他人からは、蛇行しているように見える。このように、身の回りのさまざまなものに興味を惹かれ、それらを逐一調べながら前に歩んでいけるのは特技であると私は思う。
『#100日チャレンジ』に記されているように、私と大塚さんは、昼食をとりながら、ゲーム開発での並列処理や非同期処理、キーボードやセンサーといった各種デバイスとの通信におけるコールバックの使い方、ソフトウエアの階層構造、開発モデルの差異、といった話をした。大塚さんは、こうした会話で得られた知識をすぐに生かして「100日チャレンジ」の作品(毎日発表するアプリケーション)に取り入れながら、理解を深めていった。
このように、興味を持った物事を次から次へと試していきながら身につけていく姿勢は、「100日チャレンジ」を継続して達成できた大きな理由であると、私は考えている。
指導教官の私がしたこと
私が身近に見てきた大塚さんの3つの特徴――「柔軟な発想」「本質を捉える力」「興味を持ってやってみる姿勢」――を述べた。これらを備えた大塚さんに私はどのように向き合ったのか。自画自賛になってしまう恐れをかえりみず、思うところを以下に記す。
「柔軟な発想」と「本質を捉える力」に対しては、大塚さんに学会発表を促すことで、それらの能力を言語化して、ほかの人に伝える場を提供できたのではないだろうか。そして、その機会を継続的に与えることで(大塚さんは2023年度後期だけで3回学会で発表した)、能力を磨くことができたと考えている。

「興味を持ってやってみる姿勢」に対して私が貢献できたものがあるとすれば、学習状況に合ったテーマを大塚さんに示すようにしたことだ。大塚さんは、「100日チャレンジ」の時点では、コンピューターサイエンス(計算機科学)を体系的に学んではいなかった。そのため、大塚さんのプログラミングに対する知識の向上と興味の拡大に応じて、適切なテーマを示すことは、私の重要な役割だと心掛けていたものである。
あらためて整理してみると、大塚さんにはユニークともいえる能力が備わっていたとも捉えられる。そのため、大塚さんに対する私の接し方が、ほかの学生にも役立つとはかぎらない。それを踏まえたうえで一般化させていただくとすれば、次のようになる。
学生は誰でもその特徴といえる能力を備えている。指導者が適宜向き合うことにより、学生は自らの能力に目覚め、伸ばしていける。
ただし、これには前提条件があるようにも思う。『#100日チャレンジ』には、私の言葉として、以下のように記されている。
「私がサポートできるのは、何かをやり始めた人に対してだけだ。何も考えない人には適切な手助けができない」(『#100日チャレンジ』、203ページ)
そう、自分で何かを始めないかぎり、周囲はそれを手助けできない。このことは、大塚さんが大いに活用しているChatGPTにも当てはまるかもしれない。やりたいことを見つけ、その実現に向けて取り組む際に生成AIをうまく使いこなすことで、自分の能力に目覚め、能力を伸ばし、やりたいことを達成できるのではないだろうか。
教育分野における生成AIの可能性
最後に、教育分野、特に大学でのプログラミング教育での生成AI活用の見通しについて述べたい。これについて私は、楽観的な見通しを持っている。大塚さんがChatGPTを使ったアプリ開発に取り組みながら、プログラミングの技術やコンピューターサイエンスの知識を身につけていくのを目の当たりにしたからだ。
大塚さんならでは、と思われるかもしれない。しかし、私は、2024年度の大学1年生向けの講義「入門ICT演習」にて、ChatGPTを使った学習を取り入れてみた。簡単なゲーム作成と、アプリが動作する仕組み、UNIXの操作方法、ファイル構造などのコンピューターサイエンスの基礎知識を講義しつつ、適宜ChatGPTを使った自習時間を設けてみた。すると、従来なら脱落する学生が少なくないのに、より多くの学生が興味を持ったまま最後まで取り組んでくれたのである。
このことから「情報」に関する教育手法が、生成AIによって今後大きく変化するとも考えている。そうだとしたら、大塚さんの『#100日チャレンジ』は、その一里塚として、記憶されることになるのかもしれない。

大塚あみ著、日経BP、1980円(税込み)
