2018.05.23
  • twitter
  • facebook
  • はてなブックマーク
  • 印刷

問題解決の力を育むプログラミング教育(vol.2) プログラミング的思考の意義、指導のコツ ―筑波大学附属小学校・辻 健 教諭― 後編

小学校6年理科「電気の利用」でプログラミング教育を行った筑波大附属小学校の辻健教諭。理科の学びにプログラミングが融合した、見事な授業だった。どのように単元を計画したのか、授業ではどんな点を工夫したのか。そして、プログラミングを通してどんな力を児童達に育みたいのか。今、現場教師が知りたい疑問に答えていただいた。

問題解決の力を育むプログラミング教育 ~プログラミング的思考の意義、指導のコツ ―筑波大学附属小学校・辻 健 教諭― 後編

授業者に聞く

理科とプログラミング教育は、WIN-WINの関係になれる!

単元にプログラミング教育を盛り込むコツ

筑波大学附属小学校 教諭 辻 健 氏

筑波大学附属小学校 教諭 辻 健 氏

――各教科に、プログラミング教育をどう取り入れればいいのか。今、多くの先生方が悩んでいます。辻先生は、今回の単元をどのように作ったのですか?

辻 健(敬称略 以下、辻)プログラミング教育について語る前に、まず理科の単元の作り方について話しましょう。理科の単元は、「現実の生活から入って、生活に返す」のが基本です。「現実の生活」の中で見出した問題を解決するために、「理科」で学び、その学びを「生活」に活かすのです。 この基本を外れてしまうと、理科で学んだことが、教室や実験室から出なくなってしまいます。「こんなこと勉強して、何の役に立つの?」と、児童は学ぶ意義を見失ってしまいます。 プログラミング教育も、理科で行う以上、「生活から入って、生活に返す」べきだと私は思います。今回の単元「電気の利用」も、学びの出発点は、総合的な学習の時間(以下、総合)の「理想の家づくり」という活動です。理想の家を考える中で問題や疑問が出てきたら、理科で学び、その学びを活かして問題を解決するという流れになっています。

――「家づくり」と「電気」と「プログラミング」。この3者をどのようにつなげたのですか?

まず家づくりには電気が欠かせませんから、電気の学習にはスムーズに入れました。そして理科で電気について学ぶうちに、「せっかく発電した電気を無駄なく効率的に使うにはどうすればいいか?」という問題が出てきました。その時、ある児童がこう発言したのです。 「人間は必ずミスをする。例えば、電灯を消し忘れて電気を無駄にしてしまう。でも世の中には、人間のミスを補ってくれる電化製品がたくさんある。例えば、駅のトイレは人間を感知して自動で水洗してくれる」 この発言で、生活の中には電気を無駄なく効率的に使うのを助けてくれるプログラムがあふれていると、児童達は気づき、「自分達でもそういうプログラムを作ってみたい!」と意欲を持つようになったのです。

――新学習指導要領でも、6年生理科の「電気の利用」の単元でプログラミング教育を行おうと例示されていますが、とても自然な流れですね。

「プログラミング教育をやらなくては」と焦って、無理矢理授業に組み込んでも、うまくいかないと思います。「プログラミングして楽しかった」で終わってしまい、理科の学びにつながりません。 プログラミングは目的ではなく、手段です。生活上の問題があり、その問題を解決するためにプログラミングを行うのだと、児童にしっかり認識させます。その上で取り組むことが大事だと思います。今回も、「電気を無駄なく効率的に使う家づくり」のためのプログラムを組むのだと、児童達には徹底しました。

プログラミング教育の授業を行うコツ

「MESH」の小さなブロック形状の電子タグ

「MESH」の小さなブロック形状の電子タグ

――次に、プログラミング教育の授業を行うコツについて教えてください。まず教材選びですが、今世の中には、スクラッチなど様々なプログラミング教材が出てきています。その中から、「MESH」を選んだ理由は?

「電気を無駄なく効率的に使う」という目的をプログラミングで解決するには、様々なセンサーを制御できるMESHが最適だと考えたからです。 おっしゃる通り、新しいプログラミング教材がどんどん出てきていますが、「この教材を使って、どんなプログラミング教育を行おうか」と、「教材ありき」で授業を作るのは良くありません。「このビーカーとアルコールランプを使って、どんな授業を行おうか」と、考えるようなものです。まずは授業の目標ありきで、その目標に最適な教材を選択する。プログラミング教育に限らず、理科では大事なことです。

――児童はすぐMESHに慣れましたか?

はい、1時間ほどで慣れました。私もMESHを初めて使った時、アイコンをドラッグ&ドロップして線で結ぶだけでいいので、直感的にプログラミングできる点がとても良いと感心しました。プログラミングの学習や習得に時間がかからないので、本来のねらいである問題解決に多くの時間を割けました。これは大きなメリットですね。

――慣れさせるために、どんな学習活動を行いましたか?

前々時に、MESHを使って電気を無駄なく効率的に使えるLEDをプログラミングする方法を練習しました。すべてのセンサーを与えて、自由にプログラミングさせてみた所、児童達は、「こんなこともできる! あんなこともできる!」と次々と発見し、使いこなし始めました。 同時に、問題も発生しました。プログラミングの面白さに児童達はすっかり夢中になり、「電気を無駄なく効率的に使うために、プログラミングを活用する」という当初の目的から逸れ始めたのです。中には、LEDをリズミカルに点滅させて面白がるなど、全く関係のないプログラミングに興じる児童も出てきました。

――これだけ目標設定を徹底していても、プログラミングの面白さに我を忘れてしまうのですね。

そうならないように、教師が最初からコントロールする手もあるとは思うのです。例えば、児童に渡すセンサーを限定したり、プログラムを例示して「同じものを作りましょう」と指導したり。 でもそうしてしまうと、児童は教師の意図を忖度しようとし始めます。「このセンサーしか与えてくれなかったってことは、先生は僕達にこういうプログラムを組んでほしいんだろう」と、教師の意図を読み取るのが目的になってしまう。さらには「先生がまだ隠し持っているセンサーを出させるには、どんな発言をすればいいか」と考え、教師を動かそうとしてきます。例えば、「動きを感知するセンサーがあったら、もっと良いプログラムを組めるのになぁ」と発言して、その類のセンサーを出させようとしてきます。教師をプログラミングしようとし始めるのですよ(笑)。

――それはそれですごいことですね(笑)。

ええ(笑)。でもこれでは、本来の目的から外れてしまいます。 だから私は、練習段階からすべての機器を与え、自由に扱わせてみました。自由に使って試行錯誤してこそ、プログラミングで何ができるかがわかり、電気を無駄なく効率的に使う解決策を具体的に考えられるからです。この、自由に試行錯誤させて発想を膨らませることを、私は「拡散」と呼んでいます。 しかし、そのままでは先に言った通り、当初の目的から外れてしまいます。だから教師が指導して、問題解決に向けて軌道修正する必要があります。これを「収束」と呼んでいます。本単元でも、拡散させてから収束させるのに苦労しました。

――どのように収束させたのですか?

「皆、様々なプログラムを組みましたね。では、ホワイトボードにあるプログラムの中から、今回の問題解決に役立ちそうなものを、赤ペンで囲んでください」と指示しました。すると児童は、「このプログラムは面白いけど、電気の有効利用には不要だな」と気づき、問題解決へと舵を切り直しました。 まずは拡散させてから収束させる。プログラミング教育では、これが大事だと感じました。

――1人1台のPCを使って個別の学習活動としてプログラミングを行う事例もよく見かけますが、辻先生が今回グループでプログラミングさせた理由は?

少し乱暴な言い方ですが、1人でプログラミングするなら、家庭や塾でもできますよね。学校でプログラミング教育を行うからには、皆で力を合わせてより良いプログラムを組み、より良い問題解決の方法を発見するといった、協働的な学習にすべきだと、私は思います。 そのためには、「皆と一緒に取り組んだからこそ、より良いプログラムができた」と、児童が実感できる授業にしなければなりません。「1人でプログラミングした方が良かった」と児童に思われたら負けです。そこで、最初に個別でアイデアを考え、次にホワイトボード上でグループ討論し、プログラムを皆で組み検証し、最後は他班のプログラムも参考にして改善するという授業の流れにしました。

――前編でも触れましたが、協働的な学習になるように数々の工夫が凝らされていました。班内で議論してプログラムを改善するだけでなく、他班のプログラムからも学び取っていました。

MESHは文章を書く・読むような感覚で、プログラムを書けるし、読めます。他の人が作ったプログラムも、見ればすぐ理解できるので、何を意図したプログラムなのか、自分の考えたプログラムとどこが違うのか、比較しやすい。だから学び合いが活性化しました。 そして、「意図は同じでも、様々なプログラミングの仕方があるんだ」と気づくこともできました。「プログラミングに正解はない、自分なりに考えて工夫するのがプログラミングなのだ」と児童は理解し、どの班も個性豊かなプログラムを組めたと思います。

プログラミング教育で育みたい力

――根本的なことをお尋ねしますが、プログラミング教育でどんな力を育もうと考えていますか?

新学習指導要領では、プログラミング体験を通して「論理的思考力」を育もうと書かれています。では、「論理的思考力」とは何か。「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」には、こう書いてあります。 「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力が必要になる」文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」より)
難しく聞こえますが、こういう論理的思考力を、理科では昔から育んできました。実験を行う時には、調べたい意図に合わせて条件の組み合わせを考え、実験を行い、さらに詳しく結果を出すには条件の組み合わせをどう変えればいいかを考え、再実験を繰り返します。この時、論理的思考力が働いているのです。 もう少し具体的に話しましょうか。例えば、「ゴムで動く車を、ねらった場所に止める」実験を行うとします。この場合、「ねらった場所に止める」という目的がまずあり、その目的を達成するためにゴムの本数やゴムを引く長さなどの条件を色々変えて実験します。それぞれ走る距離を計測したら、その結果によりゴムの本数や引く長さを調整、つまり制御することによって、目的に近づけていきます。 このように、「目的・計測・制御」のサイクルで論理的思考力を育むのが、もともと理科教育のねらいの一つなのです。だから「プログラミング教育で論理的思考力を育む」と言っても、身構える必要はありません。 今日の授業でも、「プログラムを組んでみたら、なんとか動いた」で終わるのではなく、どのような動作をさせたいか目的を持ち、そのためのプログラムを組み、意図した通りに動くか計測し、思うように動かなければ何が問題なのかを分析・修正する(制御)を繰り返し、論理的思考力を育みたいと考えました。

――プログラムが意図した通りに動くかを検証し改善していく児童達の姿に感心しました。こういう手順でプログラムを改善しようと辻先生が教えたのですか?

いえ、それが教えていないのです。今までの授業で、「目的・計測・制御」を経験し、論理的思考力を育んできたから、教えなくてもできたのだと思います。 私も今回の授業を通して、発見したことがあります。プログラミングには、普通の実験よりも「目的・計測・制御」を行いやすい利点があったのです。

――と、いいますと?

普通の実験なら、実験器具を準備し、結果を測定し、実験方法を見直して再実験するのに、とても時間と手間がかかります。でも今日見ていただいたように、プログラミングならすぐ行えますから、「目的・計測・制御」を繰り返し経験し、論理的思考力を鍛えやすいのです。 ここに、プログラミング教育を理科で行う意義があると思います。プログラミング教育を理科に取り入れることで、理科のねらいの一つである「目的・計測・制御」のサイクルで論理的思考力を育成しやすくなる。また、プログラミング教育にとっても、理科で身につけた「目的・計測・制御」のサイクルを用いて論理的思考力が発揮されるので、プログラミングへの理解も深まる。理科教育とプログラミング教育、両者にとってWIN-WINの関係を築けると実感しました。

――最後に、読者の先生方へアドバイスをお願いします。

今回初めてプログラミング教育に取り組んでみて、わかったことがあります。それは、児童の上達速度は大人の想像よりも遥かに速いことです。 今回の授業で、児童は私の予想を超えて、[AND]を使いこなしました(※前編参照) 。当初私は、 「[AND]は難易度が高いし、[AND]を使わなくても同じ動作をさせることはできるのだから、無理に使わなくてもいいよ」 と、児童達に伝えていました。実は私自身、[AND]の特徴をよく理解できていなかったのです(苦笑)。ところが児童達は、 「先生、[AND]を使えばもっと便利になるよ。同じじゃない」 と、私の理解を上回り、より良いプログラムを作りました。 児童に先を行かれるのは教師としてなかなか認めがたいものですが、現実として受け止め、児童の創意工夫を許容しましょう。ただし、放任するのではなく、先程も言ったように、本来の目的から外れないよう軌道修正し、収束させるのを忘れずに。 なにより、まず単元の目標は何かを明確にし、プログラミング教育を問題解決のためと位置づけて、単元計画を作ることが大事です。その問題解決に適したプログラミング教材を選択し、授業を作っていきましょう。

記者の目

プログラミング教育について辻先生に質問すると、「理科の授業の基本はこうですから~」「理科で育みたい力はこうですから~」と、必ず理科のことに触れながら、答えが返ってきた。プログラミング教育をやらなければと焦るあまり、単元計画に無理矢理プログラミングを入れようとするケースも耳にするが、やはり教科の中で行う以上、プログラミング教育の目的も内容も教科のねらいに沿ったものであるべきだと、改めて気づかされた。どんなプログラミング教育を行うべきか迷ったなら、教科の基本に立ち返って考えればいいのだ。

取材・文:長井 寛/写真:言美 歩

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

ご意見・ご要望、お待ちしています!

この記事に対する皆様のご意見、ご要望をお寄せください。今後の記事制作の参考にさせていただきます。(なお個別・個人的なご質問・ご相談等に関してはお受けいたしかねます。)

pagetop