生成AI時代にプログラミング能力は不要?:株式会社プログラミング総合研究所 代表・飯坂正樹×東京大学 吉田塁

生成AI時代にプログラミング能力は不要?:株式会社プログラミング総合研究所 代表・飯坂正樹×東京大学 吉田塁
生成AIの時代が到来し、多くの人々がその恩恵を受けるようになりました。とりわけプログラミングは生成AIが本領を発揮しやすい分野と言われており、プロのエンジニアはもちろん、プログラミングの知識がない人ですらも、目的に沿ったコードを生成できるようになりました。

ただし、東京大学の吉田塁准教授は「信用し切るのは危険」と警鐘を鳴らします。生成AIは頼りになる一方で、誤った情報を出力するリスクも内包しているためです。

AIと共存し、その力を最大限に活用するために、今の子ども達はどのようなスキルを身につけるべきなのでしょうか?そして、着実に学習を進めるためには、どのような教育上の工夫が望ましいのでしょうか。

この記事では、株式会社プログラミング総合研究所の飯坂正樹氏と、教育工学の専門家である吉田塁先生が、生成AI時代に求められるプログラミング能力について対談します。



(本対談の様子は動画でもご覧いただけます)
 

「自分で書くのは4割程度」エンジニアの強い味方となった生成AI

飯坂: プログラミング総合研究所の飯坂です。「プログラミング能力検定」の開発・運用を手がけています。本日は、東京大学准教授の吉田塁先生にお話を伺います。

吉田: ご紹介ありがとうございます。東京大学で教育工学の研究を手掛けております、吉田です。今日はよろしくお願いします。

飯坂: さっそくですが、吉田先生のご専門である「教育工学」とは、どのような研究分野なのでしょうか?

吉田: 教育工学は、教育の質を高めるための技術や方法論を探求する学問です。具体的には、授業で使えるツールの開発や評価、さらには最近注目されている生成AIの教育活用に関する研究などが含まれます。教育とテクノロジーの融合が、未来の学びをどう変えるかに挑んでいます。

飯坂: まさに教育 × ICT × 生成AIの先駆者ですね。吉田先生にぜひ伺いたいのですが、生成AI時代が到来した今、「プログラミング能力」のあり方はどのように変わると思いますか?

吉田:生成AIは、プログラミングとの相性が抜群です。例えば、「こういうプログラムを作ってください」と指示すれば、驚くほど正確にコードを生成するところまで進化しています。この現状を考えると、人間が細かいコードを書く機会は減るかもしれません。

しかし、生成AIには重大なリスクもあります。それが「ハルシネーション(幻覚)」です。つまり、生成AIは時として誤った情報を出力することがあるのです。これを防ぐためには、やはり人間がコードをチェックし、最終的な責任を持つ必要があります。

たとえ生成AIが進化しても、それを適切に監督し、精査するためのプログラミングスキルは依然として不可欠なのです。


飯坂: まず生成AIにアウトプットさせ、それを人間が修正するという流れは、文章の執筆などでも一般化してきていますね。プログラミングにおいても、その流れがより顕著に進むのでしょうか?

吉田: すでにそういう流れは進んでいます。たとえばGitHub Copilotのような、コード作成を補助してくれるツールはかなり普及しています。生成AI以前にもこうしたツールはありましたが、あくまで予測変換に近い性能でした。それが生成AIの登場により、想定される分岐を自動で提案してくれるなど、より強力にアシストしてくれるようになったのです。

この進化は目覚ましく、知人のエンジニアから聞いた話では、すでに自分で書くコードの割合は4割もないのではないか、とのことでした。

飯坂:生成AIは私たちの生産性をそんなにも高めてくれているのですね。現場で働く人たちにとって、心強い存在といえます。

プログラミング言語の学習にも◎。ただし限界を認識して

飯坂: 生成AIの活用法は他にもいろいろとありますね。たとえば私は、プログラミング言語間の“翻訳”を高く評価しています。「Pythonで書かれたものをJavaScriptに変換する」といった作業も、かなりの精度で実行してくれます。

吉田: その通りです。“翻訳”に強い生成AIの登場により、プログラミング言語の学習自体も効率化されました。私自身も、Pythonの書き方を学ぶ際に、生成AIの力を借りたことがあります。

飯坂: 興味深いですね。どのように活用されたのでしょうか?

吉田: これまでのプログラミング学習は、書籍やWeb上のドキュメントを読んで文法を覚え、恐る恐るコードを書いていくという流れが一般的でした。生成AIが登場したことで、実行したい内容をAIにたずねながら、「このような書き方をすれば良いのか」とインタラクティブに学んでいけるようになりました。

飯坂:新たな学び方が生まれたのですね。

吉田: そうです。ただし、何度か強調したように、生成AIの出力も完璧ではありません。私の場合、JavaScriptやJava、C、C♯などの知識があったため、「実行したいこと」をある程度正確に伝えられましたし、Pythonの細かな文法を知らなくても「生成AIが作成したコードが意図に沿っていなさそうだ」と見抜けました。

もしまったくプログラミングの知識がなければ、正確に意図を伝えることが難しく、出力内容を鵜呑みにしていたかもしれません。これでは「学習に活かせた」とは言えないでしょう。やはり、どの言語でもよいので基礎的な知識を身につけておくことは欠かせないのです。


飯坂: コードの正誤を判断できないのは大きな問題ですね。特に、一見しただけでは正しいコードのように見える事例はかなり深刻だと聞きます。つまり、普通に実行しただけではエラーが出ないけれども、実は致命的なバグが隠れている、という事例です。こうした場合はどのように対処すれば良いのでしょうか?

吉田: おっしゃる通り、そうした事例は非常に危険です。特に、条件分岐などが複雑な、高度なコードを生成した場合に起こりやすいですね。システムの信頼性を大きく揺るがす問題です。これを防ぐには、徹底的なテストケースの作成と、抜け漏れのチェックが不可欠です。それに加えて、最終的には人間の目視でのチェックも重要です。

飯坂:「人間がチェックし、責任を持つ」という原則に立ち返るわけですね。

吉田: その通りです。生成AIは非常に強力なツールですが、現時点ではまだ完全ではありません。しかし、適切に使いこなせば、これ以上ない強力なパートナーとなります。細かなコード生成をAIに任せることで、私たちは「どんなシステムを作りたいのか」という大局的な設計に集中できます。これにより、人間の創造性がさらに高まり、新たな可能性を切り拓いていけるでしょう。

段階ごとにチェックする「形成的評価」が子ども達の学びを支える

飯坂: ここまで、生成AIがいくら便利でも、それをチェックするための知識が不可欠だというお話を伺ってきました。ここで学校教育に目を移しますと、2018年から小学校でプログラミング教育が必修化され、2025年からは大学入試に「情報」が加わるなど、プログラミングが必須の知識とみなされる流れがあります。これについてはどう思われますか?

吉田: これまで、プログラミングはどうしても「一部の好きな子が学ぶもの」というイメージがありました。しかし、必修化によってすべての子ども達に門戸が開かれたのは、非常に良いことだと感じます。これにより、未来の可能性が広がるだけでなく、全体的なデジタルリテラシーの向上にもつながるでしょう。

飯坂: 同意します。しかし、プログラミング総合研究所として子ども達の学習に寄り添っていますと、「すべての子どもがスムーズに学習を進められるわけではない」という現場の声も耳にします。


吉田: 確かに、必修化するということは、必ずしも内発的な動機を持っているわけではない子ども達にも学んでもらうことを意味します。子ども達のモチベーションを高めるためには、何らかの工夫が必要です。

飯坂: 具体的にはどのような工夫が考えられますか?

吉田: 考えられる方法の一つが、評価を工夫することです。少々込み入った話になりますが、評価には、最終的な評価だけを伝える「総括的評価」と、各段階での理解度をチェックする「形成的評価」があります。1回のテストで合否を決める大学入試や期末試験のようなものは「総括的評価」、小テストや日頃のフィードバックなど、学習者の理解度を細かく測るものは「形成的評価」にあたります。

2つの評価は、どちらが優れているというものではありません。しかし、あくまでも一般論をお伝えするならば、プログラミングの学習においては「形成的評価」を重視すべきだと考えます。


飯坂: たとえば「If文を学んでみよう」のように、スモールステップで習熟度を測る評価が効果的、ということでしょうか?

吉田: おっしゃる通りです。形成的評価のメリットは、学習のプロセス自体を支援できることです。間違っていたところを認識し、改善に活かすことで、学習者が着実にステップアップできるわけです。

飯坂: それを聞いて安心しました。というのも、我々が実施する「プログラミング能力検定」は、合否判定がある点で総括的評価の一種と言えますが、同時に各学習項目を細かくアセスメントできる、いわゆる形成的評価の側面が強いためです。

プロ検では、例えば「順次実行は完璧だが、変数は苦手」のように学習のステップを細かく区切り、それぞれの習熟度を測れます。これにより、学習者は自分の弱点と強みを把握し、プログラミングの学習を効率的に進めることができます。


吉田: なるほど。お話を伺う限り、プロ検は総括的評価と形成的評価の両方を備えているようですね。プログラミング能力の育成において、非常に理にかなった設計だと思います。

飯坂: ありがとうございます。先生もおっしゃったように、私たちはプログラミングを「すべての子ども達のためのもの」にしたいと考え、この検定試験を開発・運用しています。そもそもプログラミング教育は、プログラマーになるためだけのものではなく、論理的思考やITリテラシーを育むことが目的ですから。

吉田: おっしゃる通りです。生成AI時代において、プログラミングスキルを高めることの価値はますます高まっていますが、プログラミング教育の意義はそれだけにとどまりません。プログラミングの基礎を学ぶことで、システムがどのように動いているのかという俯瞰的な視点を得たり、エンジニアとのコミュニケーションが円滑になったり、自分の視野が広がったりと、多くのメリットがあります。どのような職業に就いても、必ず役立つ知識です。

飯坂: 広い意味でのプログラミングの知識は、デジタル時代を生き抜く子ども達にとって、重要な道しるべとなります。私たちも、そうした子ども達の成長を全力で支援するため、さらに有益な検定試験の開発・運用に努めていきます。


今から対策しませんか?新・大学入試
お近くの教室を探す
コエテコ経由で体験申し込みされた方全員にAmazonギフトカードプレゼント中!
体験レッスン+口コミ投稿された方全員に
Amazonギフトカードプレゼント中!

あわせて読みたいガイド

ガイドを読めばプログラミング教育がスッキリわかる!
プログラミングまるわかりガイドを読む

RECOMMEND

この記事を読んだ方へおすすめ