意外と知らない"小学校プログラミング教育"(第3回)

プログラミング的思考とは?

 

小学校プログラミング教育を実施するうえで「プログラミング的思考」という言葉がキーワードの一つとしてあります。これまでの記事にも何度か登場していますが、いったいどのようなものなのでしょうか。プログラミング教育の実践例を参考に考えていきます。

プログラミング的思考とは?

プログラミング的思考は、新学習指導要領の解説の中で、次のように説明されています。
「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」

これを、コンピュータを動作させることに即して考えると、次の5つのステップが手順例になります。
 

それぞれの手順を端的に捉えると、次のようになります。

① 意図を明確にする
② 順序を考える
③ 記号化する
④ 組み合わせる
⑤ 試行錯誤する
 

プログラミング活動の手順例:コンピュータに何をさせたいか“自分の意図”が重要

この手順を、2019年4月に公開した記事(茨城県古河市立大和田小学校の授業リポート)に沿って具体的にご紹介いたします。

参考記事:電気を効率よく利用するには?プログラミング教材を使って電気の利用についての理解を深めよう!(前編後編

この学校では、タブレットPC、ワークシート、発表ボード(小型ホワイトボード)、MESH™(プログラミングスイッチ付き)というプログラミング教材が1セットずつ各グループに用意されていました。

①意図を明確にする 

「①意図を明確にする」では、写真のワークシートのように自分が何の(誰の)ためにどんなことをプログラミングで解決したいのか考えます。つまり、自分がプログラミングをする目的を明確にするということです。このプログラミングをする「意図」は、この後の手順すべてに関わってくるため、子供たち自身が納得できる内容にすることが非常に重要です。そして、子供たちがいつでも「意図」を振り返ることができるよう、ワークシートなどの紙面に明記することがポイントです。

なお、ここで身近な問題をプログラミングの目的とすることが、第1回の記事に記載したプログラミング教育のねらいの②-3(コンピュータ等を上手に活用して、身近な問題を解決しようとする態度を育むこと)につながります。

②順序を考える

「②順序を考える」では、①で検討した目的を実現するための動きを1つ1つ考え、その順序を考えます。
自分の意図を実現するために、どのような動きが必要なのかを考え、それはどのような流れなのかを考えていきます。例えば、自分の言葉でプログラミングをするというイメージでしょうか。ここでもホワイトボードや紙面に記入しながら考えることで、抜け漏れなく進みますし、後から振り返って修正をする場合もあるので、形に残しておきましょう。

③記号化する

「③記号化する」では、②までで考えてきた動きのどこからどこまでをひとくくりに記号化できるのか、どのような記号に変換すると良いのか、ということを考えます。
具体的には、活用するプログラミング教材で使用されている命令へ変換することも記号化の一つでしょう。プログラミング教材によって命令記号は多少異なりますので、使用するプログラミング教材で活用する記号を用いて活動しましょう。

なお、記号化の活動をする際には、事前にプログラミング教材に慣れるため、1時間程度プログラミング教材の使い方学習をしておくと、スムーズに進みます。

④組み合わせる

「④組み合わせる」では、③で記号化した命令を組み合わせて、①で意図した自分の考えを形にします。
コンピュータに直接、記号化した命令をプログラムしても良いかもしれませんが、子供たちが複数人で対話しながらプログラミングを行う活動を取り入れる場合には、グループワークとしてホワイトボード上にプログラムする活動も考えられます。その際は、実際のプログラムの記号が付箋やマグネットとして販売されているものもありますので、これらを活用することで、写真のように、より一層イメージしやすくなるでしょう。
③と④を合わせて1つの活動としても良いかもしれません。

⑤試行錯誤する

「⑤試行錯誤する」では、④で考えた組合せについて実際にコンピュータを使ってプログラミングして、①で意図した内容通りに動作するか検証し、試行錯誤して改善していきます。

1回のプログラミングですべて意図通りに動くことはなかなかありません。どこが原因でうまくいかなかったのか、しっかり考えさせましょう。やり直せることも、コンピュータ上でのプログラムの良い所の一つですので、何度も試行錯誤を繰り返し、自分の意図した動きの実現を目指すことが重要です。

また、ここでは②③④のそれぞれの活動で作成した成果物を振り返りながら、場合によっては間違って考えていた箇所を適宜修正しながら考えます。

なお、実際にコンピュータでプログラミングをするとき、子供の中には当初と全く異なるプログラミングをする子もいるかもしれません。もちろん試行錯誤のうえでの変更は問題ありませんが、①で考えた自分の「意図」のとおりにプログラミングできているか、振り返って考えさせることも大切です。

これらが第1回の記事に記載したプログラミング教育のねらいの①(プログラミング的思考を育むこと)にあたります。

どうやって評価する?:プログラミング能力の評価はしない 

このように実践したプログラミング活動は、どのように評価していくのでしょうか。実は、プログラミングした内容を直接評価したり、プログラミングの中身を見て評定を付けたりする訳ではありません。プログラミングを学習活動として実施した教科等において、それぞれの教科等の評価規準により評価するのが基本です。第1回で掲載した「IE-School(イースクール)事業」の成果報告書の事例として紹介した推進校の授業づくりの考え方でも、プログラミング体験を通じて「授業のねらい」を達成する、という説明になっています。

ただ、プログラミング教育で育成したい資質・能力が、子供たちに適切に育まれているかという確認のために、評価をすることは考えられます。例えば、文部科学省で2018年度に調査研究された「IE-School(イースクール)事業」の成果報告書において、イラストのようなテストを作成して取り組んだ事例が掲載されています。

この例は、小学校5年生の算数の正多角形の授業でプログラミング教育を実施したときのテスト例です。このほかにも、アンケートを作成して子供たちの変容を測定して、プログラミング教育が適切に実施できているかを評価することも考えられます。
 

実践するうえで必要な教材は?:子供たちの発達段階に応じた教材の選定が必要

上記の事例では「MESH™」というプログラミング教材を使用しましたが、各学年や子供たちの発達段階やプログラミング教育を実施する教科等から、必要なプログラミング教材を選定することも重要です。
この図は、多数存在するプログラミング教材の一部を紹介したものです。

例えば、小学校低学年段階では、いきなりコンピュータを使ったプログラミングを行わず、「アンプラグドプログラミング」(もしくはアンプラグド)と呼ばれるコンピュータを使わないプログラミング教材を活用することも考えられます。

ただし、「アンプラグドプログラミング」だけ体験させれば良いわけではありません。小学校卒業段階までには、必ずコンピュータを使ったプログラミングを体験させることが必要です。

そのため、中学年以上では、コンピュータを使ったプログラミング体験にむけて、各プログラミング教材の特長を確認し、自校で取り組みたいプログラミング教育のイメージを検討しましょう。例えば、「レゴ®WeDo2.0」や「レゴ®エデュケーションSPIKE™プライム」等では、子供たちが自分で組み立て、プログラミングしたものを動かせます。また、上記の事例で活用されていた「MESH™」は様々なセンサーを使ったプログラミングができます。これらの教材は、総合的な学習の時間や理科でのプログラミング教育と相性が良いかもしれません。

 

これらは「プログラミングスイッチ」と組み合わせて活用することもできます。「プログラミングスイッチ」は電気回路の一部として組み込むことができるため、理科の学習の延長上でプログラミング教育を行うこともできます。写真は「プログラミングスイッチ」を電気回路に組み込んだイメージです。

このように、電気回路に組み込むことで、自分が作ったプログラムを使って豆電球を点灯させたり、小さな扇風機を回したりすることができるため、プログラミングを使って解決したい課題をイメージするときに、子供たちの発想の幅が広がることが期待されます。また、実際にプログラムの結果を子供たち自身が体で実感することができるため、試行錯誤を楽しみながらプログラミングすることも期待されます。

まとめ:プログラミング的思考は、学習の基盤となる資質・能力

最後に、もう一つ重要な視点としては、「プログラミング的思考」は「情報活用能力」の一部であることです。
情報活用能力は、今回の学習指導要領で「学習の基盤となる資質・能力」として例示されています(以前に別の記事で説明しています)。つまり、プログラミング的思考も学習の基盤となる資質・能力の一部となります。

まずは、各学校においてプログラミング教育で身に付けたい資質・能力を明らかにし、小学校卒業段階までにコンピュータを用いたプログラミングを体験させましょう。
そして、プログラミング教育は、プログラミング言語を学習する訳ではなく、プログラミング的思考を身に付けること、また、コンピュータが当たり前に存在する現代において、すべての子供たちにとって、非常に重要な力であることを踏まえて、確実に育んでいきましょう。

 
 

 

構成・文・イラスト:内田洋行教育総合研究所 研究員 眞鍋悠介

 

※当記事のすべてのコンテンツ(文・画像等)の無断使用を禁じます。