公開日:2019/12/9

「社会とつながる」プログラミング教育

―山梨県―
北杜市立泉小学校

情報活用能力育成の一環として、2020年度から全ての小学校において必修となる「プログラミング教育」。子供たちがこれからの時代に必要とされる資質・能力を身につけ伸ばしていくために、どのような学習活動が求められるのだろうか。

北杜市立泉小学校
北杜市立泉小学校


北杜市立泉小学校

〒409-1502 山梨県北杜市大泉町谷戸2870

1975(昭和50)年、大泉村立泉小学校として開校。富士山や南アルプスを望む風光明媚な高原地帯に位置する。2017(平成29)年にコミュニティスクール制度を導入。

どうする?
小学校プログラミング教育

 2020年度から全ての小学校においてプログラミング教育が必修化される。小学校におけるプログラミング教育のねらいは、大まかに①「プログラミング的思考」を育むこと、②プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと、③各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすること、これらの3つとされている。

 プログラミング教育は、教科の学びとして取り入れる場合には学習指導要領に単元が例示されているほか、教育課程内外の多様な場面で実施されることが考えられる。文部科学省は「小学校プログラミング教育の手引」の中で、その学習活動を図1のように分類している。しかし、実際にどのように取り入れるかは各学校の裁量に任せられており、それゆえに学校現場では戸惑いが多いのも実情だ。

 北杜市立泉小学校の三井一希先生は4年ほど前から授業の中に「プログラミング教育」を積極的に取り入れ、実践を続けてきたという。その学習活動の内容や、実践の成果についてお話を伺った。

図1 小学校段階のプログラミングに関する学習活動の分類
図1 小学校段階のプログラミングに関する学習活動の分類
(文部科学省「小学校プログラミング教育の手引」等を元に作成)

日常の動作をコンピュータに置き換えてみる

6年担任 三井 一希 先生
6年担任 三井 一希 先生

 三井先生はプログラミング学習を初めて経験する子供たちに対して、人間の日常的な動作をコンピュータがするとしたらどういう処理が必要か、というアルゴリズムの視点を与えると同時に、「これだけのことを無意識にできる人間ってすごいよね」と伝えている。給食の配膳や掃除など、学校生活の中にはアルゴリズムを見つけやすい行動がたくさん潜んでいる。それら身近な行動のアルゴリズムをフローチャートで表し、いくつか黒板に書いて提示することで、子供たちにも無理なく理解ができる。一度理解すると、子供たちは自分たちの日常的な行動をおもしろがってフローチャートに書き表すようになるという。「二度寝のフローチャートを書いた子もいましたよ。おもしろいですよね」(三井先生)

 これがいわゆる「アンプラグド・プログラミング」、コンピュータを使わずにプログラミングの概念や基本を学ぶ方法だ。その先にあるのが、コンピュータの画面上でプログラムのパーツとなるブロックを視覚的に並べる「ビジュアル・プログラミング」や、現実の空間にある物体をプログラミングによって操る「フィジカル・プログラミング」である。

図2 プログラミング学習の手法
図2 プログラミング学習の手法

 三井先生は、これらの手法の違いについて次のように話す。「『アンプラグド』は黒板にフローチャートを書くだけなので、どの教科の授業でもすぐに取り入れやすく、様々な教科・場面で繰り返し触れることでプログラミング的思考が身についていくと思います。でも、『アンプラグド』が『ビジュアル』や『フィジカル』と異なるのは、フィードバックのおもしろさがないことです。コンピュータに『3』と入力したら画面上のキャラクターが3歩進む、というシンプルなことでもいいので、自分の入力に対して何かが返ってくるとか、自分の意図した通りに何かを動かすといった体験をしてほしいですね。プログラミングはおもしろいもの、というイメージをもつことが大切だと思います。ビジュアル・プログラミングには低学年でも扱える簡単なものもあるので、アンプラグドと行ったり来たりしながらやっていくのがいいのではないでしょうか」

プログラミング教育をふまえたカリキュラムの重要性

 三井先生が担任する6年1組の子供たちは、4月に「アンプラグド」で初めてプログラミングの考え方に触れたばかりであったが、取材に訪れた7月後半にはフィジカル・プログラミングに挑戦していた(授業レポート参照)。

 この短期間で、帰りの会や特別活動の時間を活用してフィジカル・プログラミングの土台となる知識の習得や練習を行ってきたという三井先生。プログラミング教育の必修化にあたっては、低学年のうちから系統立てて指導できるカリキュラム編成も重要だと考えている。「6年生でも、初めて使う機器であれば電源の入れ方から教えなければなりません。例えば図工の授業で絵を描くにしても、低学年で筆の洗い方や色の混ぜ方を習っているから、高学年では絵の具を使った様々な表現ができる。機能や使い方を知っているからこそアイデアが生まれるんですよね。プログラミングも同じで、低学年のうちに基本をおさえておくことができれば、高学年では使い方の説明や練習にそれほど時間をかけずに授業の内容に入れます。とはいえ、どの学年でも教科の時間をプログラミングの基礎練習にあてることは難しく、その時間をどこで確保するかは重要な課題だと思っています」

フィジカル・プログラミングの力

コンピュータ・プログラミングには試行錯誤がつきもの
コンピュータ・プログラミングには試行錯誤がつきもの

 フィジカル・プログラミングの土台づくりは、ドリル形式で行ったという。センサーやボタン、LEDライトなどが搭載されたIoTブロックを使って、与えられた課題、例えば「人が通ったらLEDライトが点灯する」を実行できるプログラムを考えるというものだ。機器の機能や使い方がわかり、フィジカル・プログラミングの土台ができれば、様々な活動にプログラミングを取り入れることが可能になる。「機能や使い方を覚えさせる段階では、アイデアを収束させるような、正解がある程度しぼられる課題を提示しますが、それを経ることでアイデアを発散するタイプの課題にも取り組めるようになります」と三井先生。

 例えば総合的な学習の時間での学校のバリアフリー化を考える課題では、耳の不自由な人のためにチャイムを光で表したり、階段の近くにセンサーを置いて目の不自由な人に音で知らせたりするアイデアが出た。福祉に関する子供たちへのアンケートでは、「自分にもできることがあるか」の質問に対して、フィジカル・プログラミングを経験する前よりも後の方が「ある」が増えたことがわかっている。「体の不自由な方に対して力になりたいと思っている子はもともと多いと思うのですが、具体的に何ができるかと考えたときに、実際に何かの仕組みを作った経験があるとないとでは全く違いますね。フィジカル・プログラミングが、社会と関わる態度の変化にもつながることを、実践を通して実感しています」(三井先生)

授業レポート
自分たちの町のIoT化を考える
~IoTブロックを使って~

 この日、フィジカル・プログラミングを用いて総合的な学習の時間に行われていたのは「大泉IoT化計画」と題された学習だ。国語の授業で自分の町の魅力を紹介する学習をしたところ、子供たちからは「大人になってもこの町で暮らしたい」という声が多く聞かれ、そこから「未来の大泉町を想像してみよう」「町の生活がもっと便利になる方法を考えてみよう」というこの学習に結びついた。

 使用するIoTブロックは、センサーやボタン、LEDライトなどのブロックを身近な物と組み合わせて様々なアイデアを形にできるツールだ。「ボタンを押すと音声が流れる」「センサーが人を感知するとライトが点灯する」などの条件や処理をアプリ上でつなぎ合わせることでプログラムをつくり、実際に意図した通りに動くかどうかをその場で試すことができる。

まずはカードを並べてプログラムをシミュレーション
まずはカードを並べてプログラムをシミュレーション

 実際の授業では、あらかじめ話し合って決めたテーマに沿って、実現するためのプログラムについて話し合う。テーマは「防犯対策」「町の観光案内」「地震を知らせる仕組み」など、グループによって様々だ。まずは「○○したら」「△△する」など文字と絵で描かれたカードを並べて、どのようなプログラムにすれば意図する仕組みを実現できるかシミュレーションする。

 次に実際にアプリを使ってプログラムを作り、動作を確認する。当然、カードの通りにうまくいくケースばかりではない。例えば、人が通ったときに音と通知が出る仕組みを作ったつもりが、実際に動かしてみたら音が鳴り終わらないと通知が出ないなど、プログラムを実行してみないとわからない「失敗」も多い。原因は、センサーの感度の調整やロジックそのものなど様々だ。「なぜうまくいかなかったのか考えて少しずつ理想に近づくことができるグループもあれば、うまくいかないからここまででいいかと妥協してしまうグループもありますね。プログラミングはまさに試行錯誤。子供たちには、最初からうまくいかないのは当たり前なんだよと伝えるようにしています。プログラミングを通して、失敗にくじけずに次どうするかを考えられるようになってほしいですね」(三井先生)

人感センサーブロックに手をかざして動作を確かめる
人感センサーブロックに手をかざして動作を確かめる

 ポスターセッション形式で互いのグループのアイデアを共有する場面では、自分たちの考えたテーマと仕組みについて説明し合い、実際の動作を確認する。仕組みが意図した通りに動作するかどうか実際に試す場面では、どのグループでもドキドキしながら見守る子供たちの姿があった。

 「町の観光案内」をテーマにしたグループでは、「天気によっておすすめする場所を変える」というアイデアを形にした。天気の判断には照度センサーを使う。明るければ屋外の観光名所、暗ければおすすめの食事処の案内が音声で流れるというプログラムだ。音声は自分たちで原稿を読み上げて録音したもの。各施設の電話番号を添えるなどの工夫も見られた。

 「身近で、かつ社会とつながりのある課題。こういう具体性も、プログラミングをする上では重要だと思います。自分たちのアイデアで社会をよくすることができるという意識をもって取り組むことができますから。それに、もし同じ課題にプログラミングの要素なしで取り組んだとしても、理想論だけで終わってしまうのかなと思います。アイデアを物理的に形にすることは、仕組みの中でどう実現させるかということ。『あったらいいな、できたらいいな』から一歩踏み込んで考えることができるのはプログラミング学習ならではといえるのではないでしょうか」と話す三井先生。 

 「本物の課題」に取り組む子供たちの目には、ワクワクの中にも真剣さが感じられた。

優れたアイデアはクラスで共有する
優れたアイデアはクラスで共有する

この記事に関連する記事