実例紹介!小学校のプログラミング教育で行われている授業内容とは?
小学校のプログラミング教育では、どのような授業が行われているのでしょうか? 「プログラミング」という教科があるわけでもないため、なかなかその実態は見えづらいですよね。
そこで、進研ゼミ小学講座 有料オプション「プログラミング講座」の監修者で、岐阜聖徳学園大学・教育学部准教授の髙木正之先生に、実際の授業の実例をお伺いしました。
前回の記事「今さら聞けない小学校のプログラミング教育!プログラミング的思考とはどんなもの? 何年生のいつからどう学ぶ?」も併せてご覧ください。
小学校のプログラミング教育の現状は?
2020年度から必修化された小学校のプログラミング教育。授業の中では、プラグドプログラミング/アンプラグドプログラミングの2種類が扱われています。それぞれ内容は次のとおりです。
● プラグドプログラミング:PC利用。Scratch(ビジュアルプログラミング言語)などを使って、実際にプログラミングを行う。
● アンプラグドプログラミング:PCを使わず、プログラミング的思考を活用した問題解決を学ぶ。
PCやタブレットを使わないプログラミング教育があるということに驚かれるかたもいらっしゃるかもしれません。しかし、問題解決の手順を学ぶことは、プログラミングでいう「アルゴリズム」を学ぶということ。PCを使わなくても、教科学習の中でプログラミング的思考を学ぶことはできるのです。
小学校のプログラミング教育において、具体的にいつ何を学ぶかについては、学習指導要領でも定められているわけではありません。
前回の記事「今さら聞けない小学校のプログラミング教育! プログラミング的思考とはどんなもの?何年生のいつからどう学ぶ?」でもご紹介したとおり、指導例が示されているのみで、必須で取り組む項目の指定はないため、各教育委員会や学校ごとに工夫がされているというのが実態です。
ICT支援員がいる小学校では、教員だけでなくICT支援員による指導も行われています。
なお、学習指導要領で挙げられている指導例は、小5・算数の正多角形の学習でプログラミングを用いた作図を行うことや、小6・理科の電気の単元で通電を制御するプログラミングなどです。
これら以外にも、工夫をこらしたプラグドプログラミング、アンプラグドプログラミングの授業を行っている学校もあるので、それぞれの内容を紹介します。
PCやタブレットを使った授業事例:信号機のプログラミング
まずは、PCやタブレットを活用したプラグドプログラミングの授業事例として、歩行者用信号機を作る授業をご紹介します。
ゴールは、誰もが知っている歩行者用信号機の動作をプログラミングで実現すること。歩行者用信号機は、赤が点灯して何秒かたつと青が点灯、青が点灯して何秒かたつと点滅、また赤が点灯のくり返しですね。シンプルに思える動作でも、いざプログラミングをするとなかなか思うようにはいかないのです。
・赤と青が両方点灯してしまう
・青が点滅しない
・実際の信号の動きとタイムラグがある
うまくいかない度に原因を考え、プログラムを手直しし、再チャレンジをくり返しゴールに近付けていきます。これらのトライアル・アンド・エラーを通して、体感的に2つの学びが生まれます。
トライアル・アンド・エラーの重要性
子どもたちは、思いどおりに動かない失敗を通して、原因や解決策を考え実行する、いわば「仮説検証」をくり返します。
たとえば「赤と青が両方点灯してしまう」という失敗であれば、「赤を消す」指示の入れ忘れだと原因を特定。プログラムに反映します。
「青が点滅しない」という失敗であれば、原因は「点滅させる」という命令がないことと特定。「つく」「消す」の指示を連続させることで点滅を表現しようと解決策を工夫します。しかし、「つく」「消す」の連続が速すぎて点滅に見えず失敗。「消す」のあとに、0.1秒待つ指示を入れて完成……といった具合に、失敗を起点に仮説検証を重ね、ゴールに近付いていくわけです。
これは、実際のプログラミングの現場で行われているデバッグと同じです。子どもたちも実際に自分たちで手を動かし、頭をフル回転させるからこそ、その重要性を実感できます。子どもたちの集中力はすごいもので、教師が口出しせず見守るだけでも改善していきますよ。
問いを立てる力
悪戦苦闘の末、歩行者用信号機のプログラミングを完成させた子どもたちからは、自発的に新たな課題設定が生まれます。「押しボタン式の信号はどう作ればいい?」「夜だけ押しボタン式のものはどうだろう?」といった具合です。与えられたゴールを解決するだけではなく、ゴールから自分たちで考え始めるわけです。
これは「問いを立てる力」といわれる、これからの社会に必須のスキルです。
ある大手メーカーの開発のかたとお話しした際にも「いずれプログラミングそのものはAIにもできるようになる。でも、問いを立てることは人間にしかできない」との指摘がありました。
確かに、ChatGPTをはじめとする生成AIがさらに発展すれば、AIがプログラミングを行うことが一般化してくるかもしれません。
しかし、どれだけAIのプログラミング力が高かったとしても、解くべき課題・目標がないと、意味をなさないでしょう。
何を目的としてどんな課題を解決するプログラムを作成するかといった目標設定は、人間にしかできません。
だから、子どもたちには自らプログラミングを行うことを通じて、たくさんの仮説を立て、課題設定を行い、試行錯誤することが大切です。
そのプロセスを通じてこそ、「問いを立てる力」を磨いていくためです。プログラミング教育を通して「問いを立てる力」を身に付けられれば、AIを脅威に感じるのではなく、主体的に使いこなせるようになるでしょう。
PCやタブレットを使わない授業事例:説明文の要旨をまとめる
続いて、PCやタブレットを使わないアンプラグドプログラミングの授業事例をご紹介します。小学校6年生の国語の授業で、説明文の要旨を300字にまとめるという授業です。「国語でプログラミング?」と驚かれるかもしれませんが、次の手順でアルゴリズム(問題解決の手順)を学んでいきます。
・説明文を読んで、300字の要旨をまとめる。
・上手に要旨をまとめられた人にインタビューを実施。書くまでの手順を要素分解し、上手に書けた人の共通項を探す。
・見いだした共通項を要旨を作成するためのアルゴリズムとしてクラスで共有。
要旨を上手にまとめられる人は、ただなんとなくまとめるのでなく、テーマやキーワードを確認したり、文章構造をとらえ主張をおさえたりするなど、パターン化された思考があります。上手な人の思考プロセスをおこえることは、要旨作成のためのアルゴリズムを理解するということです。要旨をまとめるときのアルゴリズムへの気付きを通じて、子どもたちは次のことを学びます。
どんなことにも手順・パターンがあること
「要旨を書く」といった一見すると、センスが物を言うように思えることにも、手順やパターンはあります。
一定の手順を導き出す方法を手に入れることで、子どもたちの勉強が変わっていきます。
「よく考えよう」「努力しよう」というあいまいで、根性論に陥りがちなものではなく、「やり方を見つける」姿勢に変わるのです。問題解決のための思考、つまりプログラミング的思考が武器となるのです。
たとえば「逆上がりができるようになろう」といったゴールにも「一生懸命練習しよう」ではなく、「まずは、逆上がりの手順をまとめよう」といったアプローチに変わっていきます。
学校の授業そのものの在り方も変わっていくかもしれませんね。
他の人の試行錯誤から学び、最適解を見つけ出すこと
また、他人の思考や試行錯誤を学び、うまく取り入れて最適解を見つけ出すことも学んでいきます。
要旨の書き方も、上手に書けた人の例をもとに共通項を見つけ、1つのアルゴリズムを導き出しています。
問題解決のために学び合いを実践し、単なる正解ではなく最適解という集合知を導き出したといえるでしょう。
「他の人の思考からも学ぶ」というのは、今回ご紹介したアンプラグドプログラミングだけでなく、プラグドプログラミングの場でも取り入れられています。
チーム制でプログラミングする際などは、他のチームのよいアイデアから学ぶことはもちろん、ツッコミも生まれていますよ。非常に活発な学び合いが行われています。
まとめ & 実践 TIPS
PCを活用するプラグドプログラミングの授業であれ、PCを活用しないアンプラグドプログラミングの授業であれ、プログラミング的思考を磨く多くの工夫がされていることがわかりました。
問題解決の手順を導き出すことや、仮説検証を行うこと、他者との学び合いから最適解を導き出すことで、どんな課題に直面しても対応できる力が身に付きそうですね。
プログラミングの試行錯誤を通じて、これからの社会で必須となる「問いを立てる力」が磨かれることにハッとしたかたもいらっしゃるかもしれません。
ともすると、孤独なイメージがあるプログラミングも他者との学び合いが生まれ、チームワークが活発化しているのもうれしい驚きに感じられたのではないでしょうか。
第1回:今さら聞けない小学校のプログラミング教育!プログラミング的思考とはどんなもの?何年生のいつからどう学ぶ?