生成AIの台頭と疑問
小学校のプログラミング教育は2020年からはじまりました。その時は多くの人が現在のように生成AIがめざましく発達することが予想されていませんでした。本原稿を書いている2026年現在では、簡単なプログラムコードは生成AIがまたたく間に作成してくれます。さらに生成AIは、人間が何年ものあいだ気が付かなかったシステムのセキュリティーホールを指摘するまでになりました。一方で、名だたるIT企業がプログラマーをリストラするようにもなってきています。こういったニュースを見聞きしていると小学校でプログラムを学ぶ必要はあるのだろうかといった疑問が一部の教員や保護者の間で話されるようになってきています。
プログラミング教育の効用
大学でプログラミング教育に携わっている我々の雑感を述べさせていただくと、
①プロンプト思考力の土台と責任をもつこと
生成AIに優れたプログラムコードを出力させるには、人間が
プログラミング教育を早期に導入していたイギリスやエストニアおよび香港では、AI時代を見据えたカリキュラムのアップデートが進んでいます。たとえばScratchを用いた国際的な研究[1]では、小学生段階からコードの仕組み
ご存じのかたもいらっしゃるとは思いますが、最新のAIエージェントは、自ら考えて条件設定や成果物のゴール設計まで自律的に実行されます。人間の指示は最小限または無くても仕事をこなしてくれます。しかし、その成果物を採用するかどうかは人間が判断するしかありません。その仕事の成果やプログラムのコードの使用についての責任は常に人間にあるからです。つまり、今後の人間の役割は課題意識と最終責任を持つことにフォーカスされていきます。
②成果を生むための「創造性と問題解決力」が身につく
生成AIの台頭以前では、
アメリカのマサチューセッツ工科大学の研究[2]では、AIツールを併用することで、子どもたちが
③AIのブラックボックスを見抜く力
生成AIの出力は完全な回答ではなく、場合によっては平気な顔をしてウソ
さらに小学生から大学でのプログラム教育では、
生成AIの言いなりとならないために
大学1年生のプログラミングの授業では、最大公約数を求めるプログラムを作成する課題があります。ユークリッドの互除法を利用することで最大公約数を求めることができます。
ちなみに最大公約数とは整数Aと整数Bを共通する約数A>BとするとAをBでわった余りをRとすると、AとBの最大公約数はBとRの最大公約数と等しくなる」0になるまで繰り返して求めます。具体例としてA=24,B=18とすると、24÷18=1余り6です。次に18÷6=3余り0(終了)となります。したがって最大公約数は6となります。
「図1」
このプログラムは残念ながら、考慮すべきことが複数抜けています。プログラミングの授業では単に課題を達成するコードを作成することが授業の目的ではありません。将来システムを作成する人材となるように、システムとしての完成度についても同時に学びます。例えば、この例では以下の懸念点があります。
- マイナスの数を入力したときにはどうなるか?
- 実数
(小数など) を入力したときはどうなるか? - 入力が0だったらどうなるか?
逆に最大値はどこまでか?
そんな入力をしないのは当り前じゃないかと思いますが、意図しない入力に対する対策はシステムでは必須の仕様です。これが実社会では、コードの一部のミスで電車が止まったり停電になったりするのです。
多くの大学生は生成AIを利用して課題を作成して提出していますが、考慮すべきことが抜けているため、安易なプロンプトとその出力結果が正解だと信じてしまいます。とりあえずは動きますから・