ビジネス全般

小学校プログラミング教育の手引(第三版)

令和2年2月
文部科学省

目次

はじめに~ なぜ小学校にプログラミング教育を導入するのか~

今日、コンピュータは人々の生活の様々な場面で活用されています。家電や自動車をはじめ身近なものの多くにもコンピュータが内蔵され、人々の生活を便利で豊かなものにしています。誰にとっても、職業生活をはじめ、学校での学習や生涯学習、家庭生活や余暇生活など、あらゆる活動において、コンピュータなどの情報機器やサービスとそれによってもたらされる情報とを適切に選択・活用して問題を解決していくことが不可欠な社会が到来しつつあります。

コンピュータをより適切、効果的に活用していくためには、その仕組みを知ることが重要です。コンピュータは人が命令を与えることによって動作します。端的に言えば、この命令が「プログラム」であり、命令を与えることが「プログラミング」です。プログラミングによって、コンピュータに自分が求める動作をさせることができるとともに、コンピュータの仕組みの一端をうかがい知ることができるので、コンピュータが「魔法の箱」ではなくなり、より主体的に活用することにつながります。

プログラミング教育は子供たちの可能性を広げることにもつながります。プログラミングの能力を開花させ、創造力を発揮して、起業する若者や特許を取得する子供も現れています。子供が秘めている可能性を発掘し、将来の社会で活躍できるきっかけとなることも期待できるのです。

このように、コンピュータを理解し上手に活用していく力を身に付けることは、あらゆる活動においてコンピュータ等を活用することが求められるこれからの社会を生きていく子供たちにとって、将来どのような職業に就くとしても、極めて重要なこととなっています。諸外国においても、初等教育の段階からプログラミング教育を導入する動きが見られます。

こうしたことから、このたびの学習指導要領改訂において、小・中・高等学校を通じてプログラミング教育を充実することとし、2020 年度から小学校においてもプログラミング教育を導入することとなりました。

【本手引のねらい】

教師の皆さんがプログラミング教育に対して抱いている不安を解消し、安心して取り組んでいただけるようにすることが本手引のねらいです。

このため、本手引では、学習指導要領や同解説で示している小学校段階におけるプログラミング教育についての基本的な考え方などを、より具体的にかつ分かりやすく(できる限り専門用語を用いずに)解説しています。

本手引を参照していただくことによって、プログラミング教育のねらいやどのような授業が期待されているのかをイメージしていただけるものと考えています。

(プログラミング教育の位置付け)

本手引はプログラミング教育を対象として解説していますが、プログラミング教育は、学習指導要領において「学習の基盤となる資質・能力」と位置付けられた「情報活用能力」の育成や情報手段(ICT)を「適切に活用した学習活動の充実」を進める中に適切に位置付けられる必要があります。このことを前提に指導例(第3章)等を参照していただきたいと考えています。

(プログラミング教育に関するカリキュラム・マネジメントと本手引で示す指導例の対象)

学校の教育活動は、各学校の教育目標の下で、児童や学校、地域の実情等に応じて、各学校において創意工夫を生かした教育課程を編成して実施されるものであり、プログラミング教育も例外ではありません。本手引を参考として、学習指導要領に例示された教科・学年・単元等に限定することなく、適切なカリキュラム・マネジメントの下で、各学校の創意工夫を生かしたプログラミング教育が展開されることが期待されます。

本手引においては、各学校における取組の参考となるよう、第3章において、学校の教育課程内におけるプログラミング教育のうち、ICT を用いて行う指導例(17 例)を紹介しています。まずはこれらを参考にプログラミング教育に取り組むことで、プログラミング教育のねらいを実感いただくとともに、徐々に他の授業での指導に取組を広げていただきたいと思います。

さらに、教育課程外の学習活動においても、プログラミングに関する多様な学習機会が、児童の興味・関心等に応じて提供されることが望まれます。

なお、本手引については、今後の教材の充実や各学校における実践の充実を踏まえて、また、官民が連携した「未来の学びコンソーシアム」の取組とも連携を図りながら、適時改訂を重ね、充実させていく予定です。平成30年3月の第一版の公表以降、本手引等を踏まえ、先行的にプログラミング教育の実践に取り組む学校や教育委員会も増えてきており、これらを通じて、手引における説明の充実や指導例の追加を行うことが望ましい点が明らかになったため、第二版への改訂を行いました(平成30 年11 月)。さらに、総合的な学習の時間において、企業と連携しながら、「プログラミングが社会でどう活用されているのか」ということに焦点をあてた授業の実践が行われており、それに関する指導例の追加を行うことが望ましいことや、プログラミング教育に必要なICT 環境・教材の整備や研修の留意事項等について説明を充実させる観点などから、第三版への改訂を行いました(令和2年2月)。

さらに、文部科学省では、本手引と併せて、「未来の学びコンソーシアム」の運営するWeb サイト「小学校を中心としたプログラミング教育ポータル」(https://miraino-manabi.jp/)を通じて、本手引に掲載している指導例の具体的な実践事例を発信したり、教師用の研修用教材の作成・公開(https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416408.htm)などの支援策も講じており、引き続き充実を図っていきますので、参照・活用ください。

これらにより、各学校における指導の充実が図られるとともに、授業で使いやすいプログラミング教材が充実し、更にそれらを活用した優れた実践事例が蓄積され普及されることが期待されます。

【プログラミング教育の円滑な実施に向けて】

2020 年度からの小学校プログラミング教育の実施に向けて、各学校や教育委員会等においては、前述の「未来の学びコンソーシアム」Web サイトの実践事例や、教師用研修教材などを活用して、研修や教材研究等の準備を計画的に進めるとともに、学校のICT 環境整備について、学校情報セキュリティの確保も含めて、しっかりと進めていくことが望まれます。

特に、教育委員会においては、各学校における取組を促し支援する体制を整え、2020 年度に向けた準備を、教育課程編成や学習指導等の側面とICT環境整備の側面との両面から計画的に進めることが必要であり、そのために必要な企業・団体や地域、教員養成系大学・学部等との連携にも積極的に取り組んでいただきたいと思います。

各学校においては、まずは、教師一人一人が、本手引を参照してプログラミング教育のねらいを確認し、授業のイメージをつかんでいただきたいと思います。

そして何より、教師が自らプログラミングを体験することが重要です。「プログラミングは難しそうだ」という印象がもたれがちですが、今日、教育用に開発されたビジュアル型プログラミング言語などの発展・普及により、児童も含めて多くの人々が容易に体験したり活用したりすることができるようになっています。

教師が自ら実際に体験することによって、プログラミングはそれほど難しいものではなく、むしろ面白いものだということが実感でき、さらに、授業でこんな使い方ができそうだというアイディアも湧いてくるものと思われます。

第1章小学校プログラミング教育導入の経緯

小学校プログラミング教育の導入は、中央教育審議会における学習指導要領の改訂に向けた議論の中で検討されました。中央教育審議会の議論では、情報化の進展により社会や人々の生活が大きく変化し、将来の予測が難しい社会においては、情報や情報技術を主体的に活用していく力や、情報技術を手段として活用していく力が重要であると指摘されています。さらに、子供たちが将来どのような職業に就くとしても、「プログラミング的思考」などを育んでいくことが必要であり、そのため、小・中・高等学校を通じて、プログラミング教育の実施を、子供たちの発達の段階に応じて位置付けていくことが求められると指摘しています(参考1を参照)。

中央教育審議会の議論と並行して、小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議(以下、「有識者会議」とします。)において、学習指導要領の改訂の方向性を見据えつつ、小学校段階において子供たちに論理的思考力等を育むためのプログラミング教育の在り方について、より詳細な議論がなされました。有識者会議の「議論の取りまとめ」は、中央教育審議会における議論の土台となっています。

有識者会議「議論の取りまとめ」においては、情報技術を効果的に活用しながら、論理的・創造的に思考し課題を発見・解決していくために、「プログラミング的思考」が必要であり、そうした「プログラミング的思考」は、将来どのような進路を選択しどのような職業に就くとしても、普遍的に求められる力であるとしています。そして、「プログラミング的思考」とは、「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」であると説明されています(参考2を参照)。

さらに、プログラミング教育で育む資質・能力について、各教科等で育む資質・能力と同様に、資質・能力の「三つの柱」(「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」)に沿って、次のように整理し、発達の段階に即して育成するとしています。

【知識及び技能】身近な生活でコンピュータが活用されていることや、問題の解決には必要な手順があることに気付くこと。

【思考力、判断力、表現力等】発達の段階に即して、「プログラミング的思考」を育成すること。

【学びに向かう力、人間性等】発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養すること。

中央教育審議会答申を受けて、文部科学省は小学校学習指導要領を公示しました。新しい学習指導要領では、総則において、情報活用能力を言語能力などと同様に「学習の基盤となる資質・能力」と位置付け、「各教科等の特質を生かし、教科等横断的な視点から教育課程の編成を図」り育成することと規定しました。

その上で、情報活用能力の育成を図るための学習活動の充実を図ることとして、特に小学校においては、「児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動」を行うことと規定しました。これを行うに当たっては、計画的に教育課程に位置付けて、各教科等の内容を指導する中で実施する、あるいは、教育課程内で各教科等とは別に実施することもできます。なお、各教科等の内容を指導する中で実施する場合には、各教科等の特質に応じて実施する必要があります。(参考3を参照)。

さらに、文部科学省は「小学校学習指導要領解説総則編」を公表し、情報活用能力が「プログラミング的思考」を含むものであることを示すとともに、小学校プログラミング教育のねらい等について解説しています(参考4を参照)。ここに示しているねらい等については、次章以降で述べていきます。

第2章小学校プログラミング教育で育む力

(1)プログラミング教育のねらい

小学校におけるプログラミング教育のねらいは、「小学校学習指導要領解説総則編」においても述べていますが、非常に大まかに言えば、①「プログラミング的思考」を育むこと、②プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと、③各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすることの三つと言うことができます。プログラミングに取り組むことを通じて、児童がおのずとプログラミング言語を覚えたり、プログラミングの技能を習得したりするといったことは考えられますが、それ自体をねらいとしているのではないということを、まずは押さえておいてください。

①の「プログラミング的思考」及び②の「気付き」や「態度」については、この後の(2)で解説します。③の「各教科等での学びをより確実なものとする」とは、例えば、算数科において正多角形について学習する際に、プログラミングによって正多角形を作図する学習活動に取り組むことにより、正多角形の性質をより確実に理解することなどを指しています。

また、これら①、②、③の三つのねらいの実現の前提として、児童がプログラミングに取り組んだり、コンピュータを活用したりすることの楽しさや面白さ、ものごとを成し遂げたという達成感を味わうことが重要です。「楽しい」だけで終わっては十分とは言えませんが、まず楽しさや面白さ、達成感を味わわせることによって、プログラムのよさ等への「気付き」を促し、コンピュータ等を「もっと活用したい」、「上手に活用したい」といった意欲を喚起することができます。さらに、学習活動に意欲的に取り組むことにより、「プログラミング的思考」を育むとともに、各教科等の内容を指導する中で実施する場合には、プログラミングを学習活動に取り入れることで、各教科等の学びも充実していくことが期待されます。このためには、学習指導要領に示すとおり、児童がプログラミングを「体験」し、自らが意図する動きを実現するために試行錯誤することが極めて重要となります。

プログラミング教育の実施に当たっては、①、②をねらいとすること、各教科等の内容を指導する中でプログラミング体験を行う場合には、これに加えて③をねらいとすることが必要です。

もちろん、学習場面ごとに必要なねらいのいずれかに重点を置くということは考えられますが、小学校6年間を通じて必要なねらいのいずれかが全く欠けていた、ということは望ましくありません。どのようにすれば「プログラミング的思考」を育み、「気付き」を促し「態度」を育むとともに各教科等の学びをより深めていくことができるのかについては、この後に述べていきます。

(2)小学校プログラミング教育で育む資質・能力

前章で述べたように、有識者会議「議論の取りまとめ」では、プログラミング教育で育む資質・能力を、各教科等で育む資質・能力と同様に、資質・能力の「三つの柱」(「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」)に沿って整理しています。これらについて、小学校の児童の発達の段階を踏まえると、次のように考えることができます。

① 知識及び技能

子供たちがコンピュータを用いて情報を活用したり発信したりする機会が一層増えてきている一方で、その仕組みがいわゆる「ブラックボックス化」しています。有識者会議「議論の取りまとめ」(参考2(p.66))の「子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら」とは、そうした情報社会に生きる子供たちが、コンピュータに意図した処理を行うよう指示をする活動を通して、コンピュータはプログラムで動いていること、プログラムは人が作成していること、また、コンピュータには得意なこととなかなかできないこととがあることを、体験を通して気付かせることです。コンピュータが日常生活の様々な場面で使われており、生活を便利にしていることや、コンピュータに意図した処理を行わせるためには必要な手順があることに気付くことが、今後の生活においてコンピュータ等を活用していく上で必要な基盤となっていきます。

プログラムを作成する上でのアルゴリズム(問題を解決する手順を表したもの)の考え方やその表現の仕方、コンピュータやネットワークの仕組み、コンピュータを用いた問題の発見・解決のための知識及び技能等については、中学校や高等学校の各教科等で学習しますので、小学校段階では、こうしたことへの「気付き」が重要です。なお、有識者会議「議論の取りまとめ」では、プログラミング教育で育む知識及び技能について、小・中・高の学校段階に応じて、次のように示されています。

② 思考力、判断力、表現力等

有識者会議「議論の取りまとめ」(参考2(p.66))では、プログラミング教育で育む思考力、判断力、表現力等について、「発達の段階に即して、「プログラミング的思考」を育成すること。」としています。コンピュータに意図した処理を行わせるために必要な論理的思考力、すなわち「プログラミング的思考」を育成することは、小学校におけるプログラミング教育の中核とも言えますので、以下に詳しく解説します。

【「プログラミング的思考」とは】

有識者会議「議論の取りまとめ」において「プログラミング的思考」は、「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」と説明されています。このことをコンピュータを動作させることに即して考えます。コンピュータに自分が考える動作をさせるためには、①コンピュータにどのような動きをさせたいのかという自らの意図を明確にした上で、まず、②コンピュータにどのような動きをどのような順序でさせればよいのかを考えます。この際、意図した一連の動きが、一つ一つの動きをつなげたものであることを理解する必要があります。そして、③一つ一つの動きに対応する命令(記号)が必要であることを理解し、コンピュータが理解できる命令(記号)に置き換えた上で、④これらの命令(記号)をどのように組み合わせれば自分が考える動作を実現できるかを考えます。*5 さらに、⑤その命令(記号)の組合せをどのように改善すれば自分が考える動作により近づいていくのかということも試行錯誤しながら考えていきます。

(「正多角形をかく」場合について考える)

具体的には、例えば、コンピュータで正三角形をかこうとする場合を見てみます。「正三角形をかく」という命令は通常は用意されていませんので、そのままでは実行できません。そこで、コンピュータが理解できる(用意されている)命令を組み合わせ、それをコンピュータに命令することを考えます。

紙の上に作図する場合、正多角形がもっている「辺の長さが全て等しい」、「角の大きさが全て等しい」、「円に内接する」、「中心角の大きさが全て等しい」のような正多角形の意味や性質などを使って作図します。

コンピュータで作図する場合にも同じことを考えます。算数科の授業では円と組み合わせて作図しますが、ここでは、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を使って作図する場合を考えてみます。この場合、「長さ100 進む(線を引く)」、「左に120 度曲がる」といったコンピュータが理解できる(用意されている)命令を組み合わせることで「正三角形をかく」ことができます。さらに、もっと大きな正三角形をかきたければ、「長さ100 進む(線を引く)」を、例えば「長さ200 進む(線を引く)」というように修正します。曲がる角度を変えることで、正六角形や正八角形もかくことができます。また、図3(a)のように「長さ100 進む(線を引く)」、「左に120 度曲がる」を3回記述するという方法のほか、(b)のようにこれらを「3回繰り返す」と記述する方法もあります。結果は同じですが、正六角形や正八角形をかくときを考えると後者の方が効率的です。紙の上に鉛筆と定規、分度器やコンパス等を用いて正三角形をかくときも、用いる性質や手順そのものは異なるとしても、児童は同じように手順を考えた上で作図しているはずです。

「プログラミング的思考」は、これらのことを「論理的に考えていく力」です(図4)。前述の例「正多角形をかく」の場合、数学的な見方・考え方を働かせながら、「正三角形をかく」という意図した一連の活動(学習課題)に対して、図形に関する既習事項を活用して、正三角形をかくのに「必要な動きを分けて考える」、「動きに対応した命令にする」、「それらを組み合わせる」、「必要に応じて継続的に改善する」といった試行錯誤を行う中でプログラミング的思考を働かせています。

このように、児童は試行錯誤を繰り返しながら自分が考える動作の実現を目指しますが、思い付きや当てずっぽうで命令の組合せを変えるのではなく、うまくいかなかった場合には、どこが間違っていたのかを考え、修正や改善を行い、その結果を確かめるなど、論理的に考えさせることが大切です。

(「プログラミング的思考」を育成する)

ここで、思考力、判断力、表現力等は、短時間の授業で身に付けさせたり急激に伸ばしたりできるものではないことに留意する必要があります。「プログラミング的思考」は、プログラミングの取組のみで育まれたり、働いたりするものではありません。思考力、判断力、表現力等を育む中に、「プログラミング的思考」の育成につながるプログラミングの体験を計画的に取り入れ、位置付けていくことが必要となります。

③ 学びに向かう力、人間性等

有識者会議「議論の取りまとめ」(参考2(p.66))の「発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養すること。」とは、児童にとって身近な問題の発見・解決に、コンピュータの働きを生かそうとしたり、コンピュータ等を上手に活用してよりよい社会を築いていこうとしたりする、主体的に取り組む態度を涵養することを示しています。また、他者と協働しながらねばり強くやり抜く態度の育成、著作権等の自他の権利を尊重したり、情報セキュリティの確保に留意したりするといった、情報モラルの育成なども重要です。

(3)プログラミング的思考と情報活用能力

「プログラミング的思考」の育成を考える際、「情報活用能力」との関係を確認しておくことが重要です。新しい学習指導要領において、情報活用能力は、「学習の基盤となる資質・能力」と位置付けられ、「教科等横断的な視点から教育課程の編成を図」り育成することとしています。そして、学習指導要領解説総則編においては、「情報活用能力」は、学習活動において必要に応じてコンピュータ等の情報手段を適切に用いて、情報を得たり、整理・比較したり、発信・伝達したり、保存・共有したりといったことができる力であり、さらに、このような学習活動に必要な情報手段の基本的な操作技能や、プログラミング的思考、情報モラル、情報セキュリティ等に関する資質・能力も含むものとしています。

こうした情報活用能力を育むためには、単にプログラミング教育を充実し「プログラミング的思考」を育めばよいということではなく、情報を収集・整理・比較・発信・伝達する等の力をはじめ、情報モラルや情報手段の基本的な操作技能なども含めたトータルな情報活用能力を育成する中に、「プログラミング的思考」の育成を適切に組み入れていく必要があります。

さらに、小学校段階では、コンピュータに関する専門的な知識等は求められませんが、プログラムの働きやよさへの気付きや、論理的に考えていく力である「プログラミング的思考」、コンピュータ等をよりよく活用していこうとする態度等は、その後の中学校や高等学校での学びに、とりわけ情報についての科学的な理解に基づいた情報活用能力の育成につながっていくものです。このように、「プログラミング的思考」を含む情報活用能力を、児童生徒の発達の段階に応じて捉えていくことも重要です。

プログラミング教育により育む力をより詳細に整理する試みは、既に文部科学省の調査研究事業や学会等においても始められています。今後、各学校での実践を踏まえて研究が更に深められ、一層充実していくことが期待されます。

(4)プログラミング教育のねらいの実現に向けて

(1)で述べたように、プログラミング教育の実施に当たっては、プログラミングの体験を通して、①「プログラミング的思考」を育むことと、②プログラムの働きやよさ等への「気付き」を促し、コンピュータ等を上手に活用して問題を解決しようとする態度を育むこと、③各教科等の内容を指導する中で実施する場合には、各教科等の学びをより確実なものとすることをねらいとしていることを踏まえて取り組むことが重要です。

(カリキュラム・マネジメントの重要性)

プログラミング教育のねらいを実現するためには、各学校において、プログラミングによってどのような力を育てたいのかを明らかにし、必要な指導内容を教科等横断的に配列して、計画的、組織的に取り組むこと、さらに、その実施状況を評価し改善を図り、育てたい力や指導内容の配列などを見直していくこと(カリキュラム・マネジメントを通じて取り組むこと)が重要です。

(カリキュラム・マネジメントの取組例)

既に複数の自治体において、「プログラミング的思考」を含めた情報活用能力を育成するためのカリキュラム・マネジメントに取り組んでいる例が見られます。

例えば、A市教育委員会においては、情報の収集・判断・処理・編集・創造・表現や情報モラルなど、情報活用能力の育成を意図したカリキュラムの中にプログラミング教育を位置付けています。ここで情報活用能力を育成するいわば「核」となる時間として設定されている授業時数は各学年とも数単位時間程度であり、各学校において、この時間のほかにも教科・学年・単元等の特質に応じて情報活用能力を育むとともに、学習過程の中にICT 活用を適切に位置付けることとされています。プログラミングについて市教育委員会として示されているのは、学習指導要領に例示されている単元のほか、それに先立ってプログラミングを体験する時間を設けること程度であり、各学校においてそれぞれの実情を踏まえ、プログラミングに関する内容を追加することとされています。

また、B市教育委員会においては、プログラミング教育によって育てたい資質・能力を、資質・能力の三つの柱に沿って、低・中・高学年の発達の段階に応じて、明らかにしています。その際、学習活動の前提となるコンピュータ等の操作技能の習得も考慮されています。なお、一部の学習活動については、学校の裁量に委ね、各学校・教師の創意工夫が促されています。各学年とも年間で3つの単元等でプログラミング教育に取り組むこととされており、無理なく取り組めるものとなっています。

いずれの例も、複数の教科・学年を見通して情報活用能力を育成することをねらいとし、既存の単元等の学習活動を見直して整理されたものであり、教育委員会において域内の学校での取組について一定の方向性を示したものです。

こうした先進事例も参考としつつ、各学校の実情等を踏まえながら、同様のカリキュラム・マネジメントに組織的に取り組むこと、教育委員会がそうした取組を支援しあるいはリードしていくことが求められます。なお、プログラミング教育に関するカリキュラム・マネジメントを行う際には、(3)のとおり情報活用能力全体を見据えることが必要であり、そのためには、文部科学省の「次世代の教育情報化推進事業(情報教育の推進等に関する調査研究)」(IE-School)において作成した「情報活用能力の体系表例」を参考としながら行うことも考えられます。

プログラミング教育によって児童にどのような力を育むのかを考え、そのための場面や授業を設計し、そして目指す力を児童に育むことができたのかを見取る、といったことは教育の専門家である教師だからこそできることです。その上で、企業・団体や地域等の専門家と連携し協力を得る(外部の人的・物的資源を活用する)ことは極めて有効です。教師が学校外の専門家と積極的に連携・協力してプログラミング教育を実施していくことは、「社会に開かれた教育課程」の考え方にも沿ったものであり、積極的な取組が期待されます。こうした企業・団体や地域等との連携の具体例等については第4章(p.52)で紹介します。

企業・団体や地域等の専門家と連携し協力を得る(外部の人的・物的資源を活用する)ことは、カリキュラム・マネジメントの一環としても重要なことです。プログラミング教育を充実していくためには、学校外の人的・物的資源の活用について、学校全体で組織的に取り組むのはもちろんのこと、教育委員会が様々なかたちで各学校を支援し、リードしていくことも重要です。

このほかにも、カリキュラム・マネジメントを通じてプログラミング教育を進めていくに当たっては、以下に述べるように何点か留意すべき点があります。

ア コンピュータを用いずに行う指導の考え方

コンピュータを用いずに行う「プログラミング的思考」を育成する指導については、これまでに実践されてきた学習活動の中にも、例えば低学年の児童を対象にした活動などで見いだすことができます。ただし、学習指導要領では児童がプログラミングを体験することを求めており、プログラミング教育全体において児童がコンピュータをほとんど用いないということは望ましくないことに留意する必要があります。コンピュータを用いずに「プログラミング的思考」を育成する指導を行う場合には、児童の発達の段階を考慮しながらカリキュラム・マネジメントを行うことで児童がコンピュータを活用しながら行う学習と適切に関連させて実施するなどの工夫が望まれます。

イ プログラミング言語や教材選定の観点

プログラミング言語については、あたかもブロックを組み上げるかのように命令を組み合わせることなどにより簡単にプログラミングできる言語(ビジュアル型プログラミング言語)が普及しており、種類も豊富です。マウスやタッチ操作が主で(表示させる言葉や数などはキーボードで入力します。)、ブロックの色で機能の分類を示すなど視覚的に把握しやすく、また、その言語の細かな文法を気にすることなくプログラムを作成することができますので、自分が考える動きを実現することに専念することができます。多くの場合、児童は短時間で基本的な使い方を覚え、簡単なプログラムであれば作成できるようになります。この後の指導例においても、ビジュアル型プログラミング言語を用いて学習が展開されることを想定しています。

また、文字により記述する言語(テキスト型プログラミング言語)にも様々なものがあります。キーボード操作が多く、それぞれの言語の文法の理解も必要となりますが、英数字だけでなく日本語で記述できるものや、文法的な誤りがあった場合には間違いを指摘してくれるものなど、児童でも比較的取り組みやすい言語もあります。ある程度の授業時数を確保して取り組む場合や、プログラミングに強い興味・関心を示す児童については、こうした言語を活用することも考えられます。

プログラミングに関する教材についても多様なものがあります。特定の単元等や学習内容に対応した教材の中にも、教科の内容をより確実に学習するためのツールとして用いることを想定しプログラミング自体はできる限り平易に行えるようにしたものから、プログラミング的思考の育成を強くねらったものまであります。また、プログラミングの考え方や技能、特定のプログラミング言語の習得を目的とした教材もあります。

これらの複数の言語や教材の中から、それぞれの授業においてプログラミングを取り入れるねらい、学習内容や学習活動、児童の発達の段階等に応じて、適切なものを選択し活用することが望まれます。児童の発達の段階や学習経験を踏まえて、児童の負担にならない範囲で、学習内容等に応じて使用する言語を変更することも考えられます。

また、プログラミング言語は、情報技術の進展の中で変化し続けていますし、新たな教材も次々と生み出されてきています。より授業で使いやすい言語や教材を追求することや、実施する環境(ソフトウェアやハードウェア)を定期的に更新していくことも重要です。

(5)プログラミング教育の評価

プログラミング教育を各教科等の内容を指導する中で実施する場合には、第2 章(1)(P.11)の①、②のねらいを達成するとともに、それぞれの教科等の学習をより深いものとすることが重要です。プログラミングを実施した際の評価については、あくまでも、プログラミングを学習活動として実施した教科等において、それぞれの教科等の評価規準により評価するのが基本となります。すなわち、プログラミングを実施したからといって、それだけを取り立てて評価したり、評定をしたりする(成績をつける)ものではありません。

その上で、(2)で述べたプログラミング教育で育む資質・能力なども参考とし、各学校がプログラミング教育で育みたい力を明らかにし、各教科等において「プログラミング的思考」等を育むことなど、プログラミング教育のねらいを達成するための学習活動を計画し実施して、児童の資質・能力の伸びを捉えるとともに、特に意欲的に取り組んでいたり、プログラムを工夫していたりなど、目覚ましい成長のみられる児童には、機会を捉えてその評価を適切に伝えること等により、児童の学びがより深まるようにしていくことが望ましいと考えられます。

また、教育課程内で各教科等とは別に実施する場合は、教科等の評価規準により評価したり、評定をしたりすることはありませんが、それ以外は前述と同様に児童を見取り、その評価を適切に伝えるなどすることが望ましいと考えられます。

第3章プログラミングに関する学習活動の分類と指導の考え方

この章では、小学校段階におけるプログラミングに関する学習活動の分類と、分類に応じた指導の考え方を、各分類におけるプログラミングに関する学習活動の例(以下「指導例」とします。)を挙げながら解説します。

指導例を参考として、「プログラミング的思考」の育成、プログラミングのよさ等への「気付き」やコンピュータ等を上手に活用しようとする態度の育成を図ることが望まれます。さらに、各教科等の内容を指導する中で実施する場合には、これらに加え、それぞれの教科等の目標の実現を目指した指導に取り組むことが求められます。

プログラミング教育は、学習指導要領に例示した単元等はもちろんのこと、多様な教科・学年・単元等において取り入れることや、教育課程内において、各教科等とは別に取り入れることも可能であり、児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を行う必要があります。この章に示す指導例を参考として、各学校において工夫して多様な場面で適切に取り入れていくことが望まれます。

さらに、プログラミング教育は教育課程外の様々な場面でも実施することが考えられます。図5にプログラミングに関する学習活動の分類の一例を示しました。これは、現在までに取り組まれた例を基に分類を試みたものであり、本手引では、教育課程内で実施されるA~D分類の指導例を示します。

指導例を通じて、プログラミング教育の導入は、従来の各教科等の指導方法を否定するものではなく、従来、教師が取り組んできた指導をよりやりやすくしたり、より豊かにしたりすることにも貢献するものだということを理解いただきたいと思います。

なお、より具体的な実践事例については、文部科学省、総務省、経済産業省が連携して設立した「未来の学びコンソーシアム」が運営するWeb サイト「小学校を中心としたプログラミング教育ポータル」(https://miraino-manabi.jp/)において、これらの分類に沿って掲載をしています。既に本手引の指導例に関連した実践事例等について掲載しているところですので、併せて参照・活用ください。

A分類及びB分類は、学習指導要領に例示されているか、いないかの違いはありますが、どちらも、各教科等での学びをより確実なものとするための学習活動としてプログラミングに取り組むものです。

これに対し、C分類は、学習指導要領に示されている各教科等とは別にプログラミングに関する学習を行うものです。C分類では、「プログラミング的思考」の育成、プログラムのよさ等への「気付き」やコンピュータ等を上手に活用しようとする態度の育成を図ることなどをねらいとした上で、

  • プログラミングの楽しさや面白さ、達成感などを味わえる題材を設定する
  • 各教科等におけるプログラミングに関する学習活動の実施に先立って、プログラミング言語やプログラミングの技能の基礎について学習する
  • 各教科等の学習と関連させた具体的な課題を設定する

こともでき、各学校の創意工夫を生かした取組が期待されます。ただし、この場合には、児童の負担過重とならない範囲で実施することが前提であることに留意する必要があります。

D分類は、教育課程内で、クラブ活動など特定の児童を対象として実施されるものです。

E分類及びF分類は、学校の教育課程に位置付くものではありませんが、地域や企業・団体等においてこれらの学習機会が豊富に用意され、児童の興味・関心等に応じて提供されることが期待されるところであり、各学校においても、児童の興味・関心等を踏まえ、こうした学習機会について適切に紹介するなど、相互の連携・協力を強化することが望まれます。

A 学習指導要領に例示されている単元等で実施するもの

A-① プログラミングを通して、正多角形の意味を基に正多角形をかく場面(算数第5学年)

図形を構成する要素に着目し、プログラミングを通した正多角形のかき方を発展的に考察したり、図形の性質を見いだしたりして、その性質を筋道を立てて考え説明したりする力を確実に育みます。

ここでは、正多角形について、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を用いて作図できることを、プログラミングを通して確認するとともに、人にとっては難しくともコンピュータであれば容易にできることがあることに気付かせます。

(学習の位置付け)

この学習は、正多角形の単元において、正多角形の基本的な性質や、円と関連させて正多角形を作図することができることを学習した後に展開することが想定されます。

(学習活動とねらい)

学習活動としては、例えば、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を用いて正多角形を作図するといった課題を設定し、定規と分度器を用いた作図とプログラミングによる作図の双方を試みるといったことが考えられます。

はじめに、正六角形などを定規と分度器を用いて作図することを試みさせ、手書きではわずかな長さや角度のずれが生じて、正確に作図することは難しいことを実感させます。

次いで、プログラミングによる正方形の作図の仕方を学級全体で考え、個別又は少人数で実際にプログラミングをして正方形が正確に作図できることを確認した上で、プログラミングによる正三角形や正六角形などの作図に取り組みます。

児童は、手書きで正方形を作図する際の「長さ□ cm の線を引く」、「(線の端から)角度が90 度の向きを見付ける」といった動きに、どの命令が対応し、それらをどのような順序で組み合わせればよいのかを考え(プログラミング的思考)、また、繰り返しの命令を用いるとプログラムが簡潔に書けることに気付いていきます。

そして、「正三角形をかこうとして60 度(正六角形をかこうとして120 度)曲がると命令すると正しくかくことができないのはなぜか」、「なぜ正三角形のときは120 度で、正六角形のときは60 度でかけるのか」といった疑問をもち、他の児童と話し合い試行錯誤することによって、図形の構成要素に着目して、正多角形の角の大きさと曲がる角度との関係を見いだしていきます。また、正三角形や正六角形だけでなく、正八角形や正十二角形など、辺の数が多い正多角形も繰り返しの回数や長さ、角度を通して考えてかいていきます。

さらに、「辺の長さが全て等しく、角の大きさが全て等しい」という正多角形の意味を用いて考察することにより、今までかいたこともない正多角形をかくことができることとともに、人が手作業でするのは難しかったり手間がかかりすぎたりすることでも、コンピュータであれば容易にできることもあるのだということに気付くことができます。

A-② 身の回りには電気の性質や働きを利用した道具があること等をプログラミングを通して学習する場面(理科第6学年)

プログラミングを通して、身の回りには電気の性質や働きを利用した道具があることに気付くとともに、電気の量と働きとの関係、発電や蓄電、電気の変換について、より妥当な考えをつくりだし、表現することができるようにします。

ここでは、身近にある、電気の性質や働きを利用した道具について、その働きを目的に合わせて制御したり、電気を効率よく利用したりする工夫がなされていることを、プログラミングを通して確認します。

(学習の位置付け)

この学習は、電気の利用の単元において、電気はつくりだしたり蓄えたりすることができること、光、音、熱、運動などに変換できること等について学習した後に、身の回りにはそうした電気の性質や働きを利用した道具があることについての学習に位置付けて展開することが想定されます。

(学習活動とねらい)

学習活動としては、例えば、日中に光電池でコンデンサに蓄えた電気を夜間の照明に活用する際に、どのような条件で点灯させれば電気を効率よく使えるかといった問題について、児童の考えを検証するための装置と通電を制御するプログラムとを作成し実験するといったことが考えられます。具体的な実験装置としては、手回し発電機や光電池などでコンデンサに蓄えた電気を電源とし、例えば、人を感知するセンサーにより通電を制御するスイッチをつないだ、発光ダイオードの点灯回路を作成し、その上で、このスイッチの通電を制御するプログラムの作成に取り組みます。なお、児童が取り組みやすくなるよう、実際の道具よりも単純化したモデルとすることが大切です。

児童は、意図したように動作を変化させるためには人を感知するセンサーが反応する条件をどのように設定すればよいかなどの疑問をもち、センサーを用いた通電の制御(自分が意図する動き)はどのような手順で動作するのか、それを再現するには命令(記号)をどのように組み合わせればよいのかを考え、試行錯誤しながら(プログラミング的思考)プログラムを作成します。さらに、こうした体験を通して、人を感知するセンサーなどで制御された照明などが住宅や公共施設などの身近なところで活用されていることや、電気を効率的に利用したり快適に利用したりできるようプログラムが工夫されていることに気付くことができます。

A-③ 「情報化の進展と生活や社会の変化」を探究課題として学習する場面(総合的な学習の時間)

情報技術が私たちの生活を便利にしていることをプログラミングを通して確認するとともに、この体験をよりどころとして、情報に関する探究を進めていきます。

ここでは、情報技術が私たちの生活や社会に果たしている役割と与えている影響について調べ、また、どのように情報技術を活用していけばよいかを考えるなど、情報に関する課題の探究を進める中で、情報技術が私たちの生活を便利にしていることをプログラミングを通して確認します。

(学習の位置付け)

この学習は、プログラミングの体験をよりどころとして、児童が情報に関する課題を見いだし、探究していくことができるよう、「情報」に関する探究の早い段階に位置付けることが想定されます。

(学習活動とねらい)

学習活動としては、例えば、身の回りの様々な製品やシステムが、プログラムで制御されており、それらが、機械的な仕組みとは違った利点があることを、ジュースの自動販売機のプログラムの作成を通して体験的に理解する、といったことが考えられます。

具体的には、まずカプセルトイの自動販売機とジュースの自動販売機の仕組みを比較して、コンピュータにより機械を制御することで、硬貨の種類を判別したり、残りの商品の有無や温度を管理したりなど、様々な判断を自動で行っていることに気付かせます。次いで、硬貨が投入されるとボタンが押せるようになり、ボタンを押すことでジュースの缶を排出する、といった自動販売機の動きの一部(投入された硬貨の合計額を求める、投入された金額で買える商品だけボタンを押せるようにする、ボタンが押された商品を排出するなど)を再現するプログラムを作成します。

児童は、生活の中での経験を基に、自動販売機はどのような手順で動作しているのか、それを再現するには命令(記号)をどのように組み合わせればよいかを考え、試行錯誤します(プログラミング的思考)。こうした体験を通して、プログラムの働きを理解するとともに、機械的な仕組みでは難しいことでもコンピュータでは容易であることを実感します。

さらに、この体験を基に自らの生活を振り返り、電気・水道・公共交通機関などのライフラインを維持管理するためにもプログラムが働いていることや、人工知能(AI)やビッグデータの活用、ロボットの活用によって、私たちの生活がより快適になり効率的になっていることにも気付きます。

また、コンピュータを利用したウイルスやネット詐欺などのプログラムの悪用にも触れることで、こうした情報技術をどのように活用していけば、私たちの生活がもっと便利になり、危険なく生活できるようになるのかなどを探究する課題として設定することも考えられます。そうした探究活動を通して、「人間らしさとは何か」、「人間にしかできないこととは何か」、「人間としてどのように暮らしていけばいいのだろうか」など、自分の生き方を考え直すことも期待されます。

(その他考えられる学習活動の工夫)

なお、ジュースの自動販売機をコンピュータの画面上で疑似的に再現するだけでなく、センサーを用いてスイッチが押されたことを検知したり、モーターを用いて商品を排出したりするなど、自動販売機のモデルを製作することなども考えられます。

A-④ 「まちの魅力と情報技術」を探究課題として学習する場面(総合的な学習の時間)

身近な生活にプログラミングが活用されていることや、そのよさについて、プログラミングを通して気付くとともに、この体験をよりどころとして、情報に関する探究を進めていきます。

ここでは、私たちの生活や社会と情報技術との関係を考えるなど、情報に関する課題の探究を進める中で、身近な生活にプログラミングが活用されていることや、そのよさについて、プログラミングを通して確認します。

(活動の位置付け)

この学習は、「まち」の魅力と情報技術との関係を考えることをよりどころとして課題を見いだし、探究的な学習を進める中で、身近な生活にプログラミングが活用されていることや、そのよさについて気付かせ、更に課題の解決に必要な情報の整理や分析を行う際にプログラミングを取り入れられるように位置付けることが想定されます。

(学習活動とねらい)

学習活動としては、例えば、「まち」の中で魅力的な情報発信をしているものについて考える活動の中で、身近な生活にコンピュータやプログラミングが活用されていることや、「まち」の魅力を発信することに寄与していることに気付かせ、自分が考えるまちの魅力を自分の意図する方法で発信するタッチパネル式の案内表示を作成する際にプログラミングを取り入れることが考えられます。

具体的には、まず、「まち」の魅力や「まち」の中で魅力的に情報発信をしているものについて考え、「まちの魅力を効果的に発信しているものにはどのようなものがあるか」をテーマに意見交換を行い、「自分たちがお勧めするスポットをタッチパネル式で魅力的に発信することができないか」という課題を設定する。

その上で、実際にタッチパネル式の案内表示を見に行き、それぞれの情報がどのような順序で表示されるようになっているのか確かめたり、タッチパネル式案内のように表示させるためのプログラミングの方法についてゲストティーチャー等からの話を聞いたりします。

児童は集めた情報を整理しながら、ビジュアル型プログラミング言語を用いて、タッチパネル式案内表示の試作品を作成します。

作成に当たっては、例えば、写真や動画、説明文等を自分が意図した順番やタイミング等で一連の動きとして表現するために、一つ一つの個別の動きに対応する命令を組み立てたり、一つ一つの個別の動きをつなげたりしていきます。

また、外国人や高齢者、子供など、案内表示による情報発信の方法を対象によって変えるために、命令を分岐させることも検討していきます。

試作品を作成した後は、作成した案内表示を発表し、他の児童から良かった点や改善点を教えてもらいながら、改善すべき点を踏まえた案内表示を作成するために、コンピュータに意図した処理をどのように改善すれば、意図した一連の動きに近づくかを試行錯誤する学習につなげていきます。

また、作成した案内表示をモニタの方に実際に使ってもらい、感想をもらったり、利用状況についてデータを取ったりすることで、案内表示の効果について検証し、「どのような情報が利用者にとってニーズがあるのか」や、情報発信の観点から「伝えたい情報をもっと効果的に伝えていくためにはどのようなことが必要か」といった新たな課題を設定します。

学習活動を展開するに当たっては,観光案内においてプログラミングを活用した情報収集・発信に加えて人による直接的な対応にも配慮しているなどの工夫について、商業施設や駅等の担当者にインタビューを行い、児童自身が、まちの一員として魅力ある「まち」づくりに寄与できることをまとめ、発表する学習を通して、まちの一員としての自覚をもって自分と「まち」との関わりを深めていくことができるようにすることを目指します。

A-⑤ 「情報技術を生かした生産や人の手によるものづくり」を探究課題として学習する場面(総合的な学習の時間)

プログラミングを通して、情報技術の仕組みを理解し、ものづくりのよさを知るとともに、ものづくりを支える人との関わりからものづくりの魅力や自分らしい生活についての考えを深めていきます。

ここでは、生産と情報技術との関係を考えるなど、情報に関する課題の探究的な学習を進める中で、そのよさについて気付き、ものづくりを支える人との関わりからものづくりの魅力や自分らしい生活についての考えを深めていきます。

(学習の位置付け)

この学習は、情報技術を生かした生産について考えることをよりどころとして、課題を見いだし、探究的な学習を進める中で、プログラミングの体験から、生活を支える生産活動にプログラミングが活用されていることを理解し、ものづくりのよさを知ることができるように位置付けることが想定されます。

(学習活動とねらい)

学習活動としては、例えば、自動車工場にある先端の情報技術について意見交換する中で、「プログラムで命令すれば、同じ原理の車をつくることができるのではないか」ということに気付かせ、障害物を自動的に避ける自動車や車線はみ出し防止機能が付いた自動車等、自分が作ってみたいと思う自動車をプログラミングを取り入れて作成してみる学習を行うことが考えられます。

具体的には、まず、社会科での自動車工場等のプログラミングを駆使した工場に現地学習に行ったときの様子を振り返り、産業用ロボットが活躍している様子や工場の人から受けた説明を踏まえ、自動車工場にあった先端の情報技術について意見交換する中で、「プログラムで命令できれば、同じ原理の車を作ることができるのではないか」ということに気付かせ、「自分が作ってみたい自動車」を課題として設定します。

そして、例えば、実際の自動車に整備されている機能やセンサー等の働きや、自分たちが目指す機能を備えた自動車に必要なプログラミングの方法等、必要な情報を収集するため、地域のディーラーの方やゲストティーチャー等からの協力を得て、車に自分が意図する一連の動きをさせるためには、それらの動きは一つ一つの個別の動きをつなげたものであることや、一つ一つの個別の動きには、それらに対応する命令が必要であることを学んでいきます。

児童は、集めた情報を整理しながら、自動車をどのように動かしていきたいかを考えた上で、そのために必要なプログラムの命令を整理し、動かしたい自動車をプログラミングします。具体的には、例えば、「衝突を予測して、回避させる」ために、「もしセンサーが障害物を感知すれば、減速し、止まる」といった命令を分岐させるなどのプログラミングを行います。

自動車を作成した後は、他のグループに発表し、改善点を指摘してもらうことにより、改善すべき点を踏まえた自動車の動きを実現するために、コンピュータに意図した処理をどのように改善すれば、意図した一連の動きに近づくかを試行錯誤する学習にもつながります。また、実際に試行錯誤しながらプログラミングによるものづくりを体験することで、プログラミングのよさやものづくりの本質に触れる学習にもつながります。

一方で、人の手によって作られたものが生活にどのような豊かさを与えているのかという観点から、地域の協力を得ながら、ものづくりをしている方にインタビューを行う等の学習を行い、ものづくりの魅力や苦労点をはじめ、ものづくりに携わっている方の思いをまとめ、自己の生き方についての考えを深めていくことができるようにすることを目指します。

B 学習指導要領に例示されてはいないが、学習指導要領に示される各教科等の内容を指導する中で実施するもの

B-① 様々なリズム・パターンを組み合わせて音楽をつくることをプログラミングを通して学習する場面(音楽第3学年~第6学年)

様々なリズム・パターンの組み合わせ方について、このようにつくりたいという思いや意図をもち、様々なリズム・パターンの面白さに気付きながら、プログラミングによって試行錯誤をすることを通して、まとまりのある音楽をつくります。

ここでは、様々なリズム・パターンを組み合わせた、まとまりのある音楽づくりを、プログラミングによって行います。

(学習の位置付け)

音楽づくりの題材において、プログラミングによってまとまりのある音楽をつくった後、つくった音楽を実際に自分たちで表現し、それぞれの表現のよさを認め合う学習が想定されます。

(学習活動とねらい)

様々なリズム・パターンを組み合わせて、まとまりのある音楽をつくるという課題を設定し、プログラミング言語又は創作用ソフト等を用いて音楽づくりをすることが考えられます。

児童は、教師があらかじめ用意しておいた、例えば、「ドンドン」、「ドンドコ」、「ドドンコ」といったリズム・パターンを実際に表現し、即興的に選択したり組み合わせたりする活動を楽しんだ後に、まとまりを意識した音楽をつくることに取り組みます。その際、このような音楽を、このようにしてつくりたいという自分の考えをもち、音楽の仕組みを意識しながら、プログラミング言語又は創作用ソフト等を用いて様々なリズム・パターンの組み合わせ方を試し、更に工夫を重ねて試行錯誤し(プログラミング的思考)、音楽をつくっていきます。

この過程において、つくった音楽の構造を視角的に捉え、つくった音楽を再生しモニタリングしながら、リズム・パターンの組合せの面白さに気付くとともに、音楽の仕組みを用いてつくる技能を身に付け、音楽表現を高めていきます。器楽の技能や読譜などの力に大きく左右されずに活動できるため、無理なく音楽づくりの学習に取り組むことが期待されます。

その後、つくった音楽を実際に演奏して互いに聴き合い、それぞれの表現のよさを認め合う学習を展開することも大切です。

(その他考えられる学習活動の工夫)

これはリズム・パターンを組み合わせて音楽をつくる活動ですが、音の長さや高さ、強弱、速度などをプログラミングしながら、表情豊かな旋律をつくる活動をすることも考えられます。

B-② 都道府県の特徴を組み合わせて47都道府県を見付けるプログラムの活用を通して、その名称と位置を学習する場面(社会第4学年)

都道府県の地理的環境や自然条件、面積、人口や特産物などの特色を組み合わせて47都道府県を見付けるプログラムの活用を通して、47都道府県の名称と位置を確かめ、その確実な習得を図ります。

ここでは、コンピュータのプログラムと地図帳や白地図を同時に活用しながら、都道府県の特徴を組み合わせて都道府県を特定する活動を通して、47都道府県の名称と位置を、その特徴とともに理解することができるようにします。

(学習の位置付け)

この学習は、地図帳などを活用して、地図上で各都道府県の名称や位置を調べて確認したり、白地図上に書き記したりする活動を通して、我が国が47都道府県で構成されていることや47都道府県の名称と位置を理解すること等についての学習に位置付けて展開することが想定されます。

(学習活動とねらい)

この学習では、47都道府県の特徴が記されたブロックを組み合わせることにより、組み合わせたブロック(特徴)に合致した都道府県の名称と位置を示すプログラムを使用します。

学習活動としては、例えば、地図帳を活用して各都道府県の特徴を探し、プログラム上で3つ以上のブロック(特徴)を組み合わせて、示された都道府県の名称と位置を白地図に書き込むといった活動が考えられます。

その際、特徴に合致する都道府県が複数ある場合は、示される都道府県が1つに絞られるように、特徴の組合せという条件を変更する必要があります。このため、児童は、地図帳を活用して特徴を探し、試行錯誤しながら様々な特徴を組み合せ(条件を設定し)、都道府県が1つに特定される特徴の組合せを探します。こうした活動により、児童は、都道府県の特徴とともに、名称と位置を理解していきます。

足りない条件(特徴)を地図帳を活用して探すことや、見付けた都道府県は白地図に色を塗ること、何度も繰り返し取り組むことで、単に地図上で理解することよりも思考を伴った学習活動になることが期待できます。

B-③ 自動炊飯器に組み込まれているプログラムを考える活動を通して、炊飯について学習する場面(家庭第6学年)

ご飯をおいしく炊くためのプログラミング体験を行うことにより、炊飯の一連の手順について理解を深めるとともに、身近な生活にコンピュータ(プログラム)が活用されていることにも気付くことができるようにします。

ここでは、炊飯に関する一連の手順をプログラミングする体験を通して、自動炊飯器に組み込まれているプログラムを考え、炊飯について理解させるとともに、身近な生活には、家電製品などにコンピュータ(プログラム)が活用されていることにも気付かせます。

(学習の位置付け)

この学習は、第5学年の米飯とみそ汁の調理で、鍋での炊飯を経験していることを生かして、第6学年で家族と食べる朝食(米飯とみそ汁を中心とした1食分)の献立を考え、おいしく食べるために調理計画を工夫する学習に位置付けて展開することが想定されます。なお、この学習では、米飯と組み合わせた1食分を一人で調理することから、米飯の調理については、自動炊飯器による炊飯とし、調理計画を考えることとしています。

(学習活動とねらい)

学習活動としては、例えば、炊飯に関する一連の手順についてプログラミング体験を行い、ご飯がおいしく炊けたり炊けなかったりする原因について考え、話し合うなどの活動が考えられます。

具体的には、まず、各自が立てた調理計画を確認します。その際、自動炊飯器の中では、どのようなことが行われているのか、鍋での炊飯の経験をもとに予想します。

次に、水加減や浸水時間、加熱の仕方、蒸らしなどの炊飯に関する一連の手順について、コンピュータ上で並べ替えと条件設定(プログラミング)を行います。その際、水加減や加熱の仕方(火加減)等の条件を変えて、2回程度行い、ご飯が柔らかくなったり硬くなったりする原因について考えます。

そして、炊飯について分かったことや気付いたことをグループや学級内で発表し合うとともに、このプログラミング体験をもとに、各自の調理計画(主菜・副菜・みそ汁)についても調理の手順や時間配分を工夫することを確認します。

最後に、自動炊飯器の他にも身近な生活の中にコンピュータ(プログラム)が活用されているものはないか、発表し合います。

この学習では、第5学年での鍋での炊飯の経験を生かし、一連の炊飯の手順が、自動炊飯器にどのようにプログラムされているのかに関心をもたせるようにすることが重要です。これにより、このプログラミング体験は、自動炊飯器の様々な機能がどのように作られているか、身近な家電製品がどのような仕組みになっているのかなどにも関心をもつことにもつながります。また、調理の手順を考え、調理計画を立てることにも生かすことが期待できます。

B-④ 課題について探究して分かったことなどを発表(プレゼンテーション)する学習場面(総合的な学習の時間)

プログラミングによって分かりやすく効果的な資料を作成することを通して、分かったことや考えたことなどを的確に発表する力を育みます。

ここでは、課題について探究して分かったことや考えたことなどを、プログラミングによって、より分かりやすく効果的に発表(プレゼンテーション)する資料を作成します。

(学習の位置付け)

この学習は、様々な課題を設定して行われる探究活動のまとめの段階に位置付けて実施することが考えられます。

(学習活動とねらい)

学習活動としては、例えば、「街づくり」を課題に設定して探究活動を行い、分かったことや考えたことなどを発表するための資料を作成する際、地図上のある地点にマウスポインタを移動させると、その場所の魅力や、その場所に寄せる地域の人々の思い、その場所に関わる街づくりの課題や取組などを、文字、音声、アニメーションなどで紹介するようプログラミングすることなどが想定されます。

児童は、どのような内容を紹介するかだけでなく、どのような方法で紹介するか、更に「発表をスムーズに行うために、マウスではなくキーボードで操作するにはどうすればよいか」といったことを考え、試行錯誤しながら発表資料を作成します。その過程で、自分の意図する資料を作成したり発表したりするための手順(組合せ)などを考えていきます(プログラミング的思考)。

なお、こうした学習活動は、総合的な学習の時間のみならず、他の教科等でも取り入れることが考えられます。

C 教育課程内で各教科等とは別に実施するもの

プログラミングの体験は、各教科等の内容を指導する中で実施するほか、各教科等とは別に(何らかの教科等に位置付けることなく)、かつ教育課程内で、実施することも考えられます。この場合は、児童の負担過重にならないことを前提として、各学校の裁量で行うこととなります。

C分類は、A分類及びB分類とは異なり、各教科等に位置付けているものではないことから、各教科等の学びを確実にするということをねらいにする必要はなく、第2章(1)(p.11)の①「プログラミング的思考」を育むこと、②プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むことを目標とします。

これら①・②を育むことをねらいとした上で、創意工夫により様々な取組を実施することが考えられますが、例えば、

  1. プログラミングの楽しさや面白さ、達成感などを味わえる題材などでプログラミングを体験する取組
  2. 各教科等におけるプログラミングに関する学習活動の実施に先立って、プログラミング言語やプログラミングの技能の基礎についての学習を実施する取組
  3. 各教科等の学習と関連させた具体的な課題を設定する取組

等を実施することができます。

3)については、各教科等の学習と関連させた具体的な課題を設定して実施することで児童が取り組みやすくなることが考えられます。

こうしたプログラミングの体験は、各学校の創意工夫による取組であるため、どのような力を育みたいのかを明らかにした上で授業内容を検討し、よりよいものにしていくことが望まれます。また、前述の①と②の育成を目標としながら、発達の段階や児童の実態に適した内容とする、少ない時間でも効果的に無理なく体験できる内容とするなどというように指導方法を工夫していくことが望まれます。

C-① プログラミングの楽しさや面白さ、達成感などを味わえる題材などでプログラミングを体験する取組

例えば、学校の裁量で時間を確保し、簡単なプログラムを作成することが考えられます。

具体的には、ビジュアル型プログラミング言語を用いて、画面上を自動的に動くキャラクターⅠに捕まらないよう、自分で別のキャラクターⅡを動かすことができるプログラムを制作するという題材を設定し、実際に、キャラクターⅠが自動的に画面上を動くプログラム、キャラクターⅡを自分で操作できるようにするプログラム、キャラクターⅠとⅡが触れたときに動作が停止するプログラムなどを作成することが考えられます。

また、ある程度児童がプログラミングを体験した後に、ビジュアル型プログラミング言語を用いて、キャラクターを動かして、ランダムに降ってくる星を獲得するプログラムを制作するという題材を設定し、実際にキャラクターを動かすプログラム、星が降ってくるプログラムや、獲得した星の数を表示するプログラムなどを作成することが考えられます。児童の実態に応じて、キャラクターにアニメーションを加えたり、児童に自由に表現させることも考えられます。

こうしたプログラミングの体験を通して、コンピュータの画面上のものがプログラムで動いていることに気付いたり、プログラミング的思考を育むとともに、プログラミングの楽しさや面白さ、ものごとを成し遂げたという達成感を味わうことにつながることが期待されます。

C-② 各教科等におけるプログラミングに関する学習活動の実施に先立って、プログラミング言語やプログラミングの技能の基礎についての学習を実施する例

例えば、各教科等におけるプログラミングに関する学習活動の実施に先立って、学校の裁量で時間を確保し、プログラミング言語やプログラミングに関する基礎的な知識や技能の習得などを目的として、プログラミングを体験することも考えられます。

後に実施する単元等で使用する予定であるプログラミング言語やソフトウェアの操作を、1~数単位時間程度でもあらかじめ経験しておくことにより、各教科等におけるプログラミングに関する学習活動に、児童は戸惑うことなく取り組むことができ、授業が円滑に進められることが期待されます。

こうしたプログラミングの体験そのものは直ちに各教科等の学習として位置付くものではありませんが、キーボードによる文字入力やファイル操作等の情報機器の基本的な操作技能と同様に、後の学習活動を円滑に進めるための学習活動として、学校の判断により計画的に取り組むことが考えられます。

C-③-1 各教科等の学習を基に課題を設定し、プログラミングを通して課題の解決に取り組む学習を展開する例

例えば、学校の裁量で時間を確保し、社会科の我が国の工業生産(第5学年)における優れた製品を生産するための様々な工夫や努力の学習と関連付けて、自動追突防止装置のついた自動車のモデルの製作と追突を回避するためのプログラムの作成を行うことなどが考えられます。

具体的には、距離を計測するセンサーと車輪を駆動するモーターを組み込んだ、自動車の簡単なモデルを製作し、それを制御するプログラムを作成します。地域の産業の特色に応じて、自動車以外の工業生産を取り上げたり、農業生産や運輸などの学習と関連付けて同様の活動を展開したりすることも考えられます。

こうしたプログラミングの体験を通して児童が実感を伴って学ぶことで、工業生産などに関わる技術の開発や研究などの理解につながることが期待されます。

なお、指導例A-⑤(p.30)と本指導例は、前者は総合的な学習の時間の活動として、探究的な学習のプロセスに位置付けてプログラミングを体験するものとしている点で異なります。仮に本指導例を総合的な学習の時間において実施する場合においては、総合的な学習の時間における活動として、探究的な学習のプロセスの中に適切に位置付けて実施する必要があります。

C-③-2 各教科等の学習を基に、プログラミングを通して表現したいものを表現する学習を展開する例

例えば、国語科において物語を読む学習をした後、学校の裁量で時間を確保し、物語の中から好きな場面を選び、その場面のアニメーションを作成することなどが考えられます。

具体的には、登場人物と背景の絵をかきその絵をカメラやスキャナで取り込むなどして、プログラミングにより登場人物が動いたり、話したりするようにします。そして、互いの作品を見せ合い、その場面での登場人物の気持ちや情景はどのようであると考えたのか、登場人物の気持ちや情景を表現するためにどのような工夫をしたのかなどについて話し合ったりすることなどが考えられます。

D クラブ活動など、特定の児童を対象として、教育課程内で実施するもの

クラブ活動は、異年齢の児童同士で協力し、共通の興味・関心を追求する集団活動であり、学校の創意工夫により、コンピュータクラブ、プログラミングクラブなどを設けて、コンピュータやプログラミングに興味・関心を有する児童が協力してプログラムを作成するなどの活動を実施することが考えられます。

活動の内容としては、例えば、①「オリジナルアニメーションをつくろう」といった動的なコンテンツの作成を行うものや、②「家で使える便利な機械を考えよう」といったセンサーとアクチュエータ(モーターなどの駆動装置)を活用した機械のモデルとそれを制御するプログラムの作成を行うものなどが考えられます。

①については、キャラクター等の動きを制御することなどが考えられますが、慣れてくると、画像や音声についても自分で作成したいという意欲をもつ児童も出てくることが想定されます。②についても、各教科等の学習の中でつくるものよりも更に自由な発想で、様々な機械のモデルとそれを制御するプログラムを作成したいという意欲をもつことが想定されます。

使用する教材やプログラミング言語については、児童の発達の段階やプログラミングの経験、作成しようとするものなどに応じて適切なものを選択することとし、場合によっては、テキスト型の言語を用いることも考えられるでしょう。その一方で、プログラミングに関する知識、技能や経験の少ない児童には、スモールステップの課題から取り組ませ、徐々に大作に取り組めるようにすることも考えられます。

活動の展開については、漫然とプログラムの作成を続けるのではなく、発表会の時間を設けるなどして、それまでに完成させるといった、一定の目標をもたせるとよいでしょう。その際、発表会には保護者や地域の方にも来ていただくといったことを企画することも考えられます。さらに、様々な企業・団体等が実施している小学生が参加できるプログラミング・コンテストなどに挑戦させることも考えられます。

なお、こうしたクラブ活動や、教育課程外のプログラミングに関する学習機会においてプログラミングに関する知識や技能を習得した児童に、教育課程内でプログラミングを実施する場面で、コンピュータの操作やプログラミングを苦手とする児童のサポート等の役割をもたせることなども有効と考えられます。

第4章企業・団体や地域等との連携(外部の人的・物的資源の活用)の考え方や進め方

第2章でも述べたように、プログラミング教育の充実を図る上で、企業・団体や地域等と積極的に連携し協力を得る(外部の人的・物的資源を活用する)ことは有効です。

外部の人的・物的資源の活用は、カリキュラム・マネジメントの一側面であり、学校としての取組が求められるところです。さらに、教育委員会における支援も重要です。

企業・団体や地域等の人々との連携・協力の形態としては、講師(特別非常勤講師やゲストティーチャー)として児童に直接指導を行う形態のほか、教員研修の支援や授業支援を依頼するなど、多様な在り方が考えられます。また、企業の技術者や団体の講師の経験者など、プログラミングの技能に長けた方や、指導経験が豊富な方ばかりでなく、地域住民のボランティアや近くの高等学校の生徒等がメンター(指導者、助言者)となる例もあるなど、協力をいただく人についても様々に考えられます。さらには、教育委員会と教員養成課程を有する大学との連携により、現職教員の研修を充実させたり、教職を目指す学生がプログラミングを体験し、さらに、プログラミング教育を実施する際の授業支援に当たったりすることなども望まれます。

以下に、教育委員会が主導して、企業・団体や地域等の人々と連携し、協力を得ている例を紹介します。

① 企業等との連携

教育委員会において企業と包括協定を結び、研修から各学校でのプログラミング教育の実施までのサポートを得る態勢を整えている例があります。

この場合、教育委員会では、企業が有している知見や経験を活用して、各学校でプログラミング教育を実施していくための方針や計画づくりを進めています。教師が質の高い授業を行うことができるよう、企業の支援を得て、研修の時期や内容、各学校で実施する内容等を具体化していきます。各学校では、学校の教育目標などを踏まえて、プログラミング教育を実施する場面を決定し、企業の助言を得ながら指導案を固めていきます。場合によっては、各教科等の学習にプログラミングを活用する前に、プログラミング言語の使い方を企業の方にゲストティーチャーとして指導してもらうことも考えられます。

② 企業等の社会貢献プログラム等の活用

企業等が実施している社会貢献プログラム等を効果的に活用する例も見られます。

(滋賀県草津市の事例)

プログラミング教育推進のため、企業が実施している社会貢献プログラムに参加しています。合計100台の人型ロボット(周辺機器を含む。)が3年間無償貸与されており、市内全小学校と1中学校に配置されています。児童・生徒がプログラミングによりロボットを動かす学習を通して、プログラミング的思考を育成することをねらっています。

1年目は、各学校の代表者を対象とした講習会を実施したり、先行的に実施した学校の授業を参観する機会を設けたりするといった教員研修を行いました。実際の学習場面では、企業から提供されたプログラムに取り組みながらプログラミング教育を進めました。また各学校の学習をより充実させるため、「草津市プログラミングコンテスト」を開催しました。コンテストの最優秀チームは、成果発表会(企業主催の全国大会)に市の代表として参加しました。

2年目以降は、企業から提供される新たなプログラムに取り組んだり、「草津市プログラミングコンテスト」へ配置全学校が参加するよう促したりしながら、プログラミング教育の更なる推進を予定しています。

また、プログラミングが社会でどう活用されているかということを総合的な学習の時間において扱う際に、

  • 児童が企業に出向いて、製品やサービスにどのようにプログラミングが活用されいてるのかを実際に見たり説明を受けたりする
  • 企業等の従業員をゲストティーチャーとして迎えて、プログラミングの活用について説明してもらう
  • プログラミングの活用について知ることができる企業等が作成した映像を視聴する

といった例もあります。具体の指導例については、P.34 を参照してください。

③ ICT支援員等の活用

ほとんどの教師がプログラミングの指導経験が少ない状況においては、ICT 支援員によるサポート体制を整備することも効果的です。

多くの教育委員会において現在配置されているICT 支援員は、ICT に関する基礎的スキルを有しているものの、プログラミング教育に関しては、必ずしもその教育的な意義を理解し、必要なスキルを身に付けているとは限りません。そのため、ICT 支援員を対象とした研修を、教育委員会が主体となって計画し実施することが重要と思われます。研修の計画や実施に当たっては、プログラミング教育に関して専門的な知識や技能をもつ外部人材の協力を得ることも有効です。ICT 支援員を企業等に委託している場合には、採用の条件や研修等について、委託先企業との調整が必要となるでしょう。

なお、当然ながら、授業については、児童が考えたり、発表したりするなど、授業の重要なポイントは、教師がリードしていくことが重要であり、決してICT 支援員に任せきりにするようなことがあってはなりません。

④ 市民ボランティア等の活用

プログラミング教育を実施する場面において教師を補助する人材については、時期や内容によって必要な人数に偏りがある場合や、ICT 支援員等の人材を教育委員会で十分に確保しておくことが予算上難しい状況にある場合もあります。そこで、学校の計画に応じて、必要なときに協力いただけるボランティアの力を借りることも有効です。プログラミング教育については、誰でも簡単に引き受けるということは難しいので、教育委員会でボランティアを募集し研修を実施して、ボランティアの方が自信をもって支援ができるようにすることが望まれます。

(千葉県柏市の例)

ボランティアの活動としては、教育課程内(授業、クラブ活動等)や教育課程外(長期休業中、放課後等)、教育委員会行事等において、児童のプログラミング活動を支援する役割を想定しています。指導は担当教師が中心となりますので、教師を補助し、児童の個別支援を担ってもらいます。

ボランティアを募集する際には、プログラミング経験は必須とせず、コンピュータの基本操作に慣れている方として、研修を通してプログラミングの技能を身に付けていただきます。また、技能だけでなく、以下のように、プログラミング教育の意義や児童との接し方等についても研修を実施しています。

(ア)「オリエンテーション」プログラミング教育を支援するに当たっての心構えや市民ボランティアに求める役割
(イ)「技術研修」授業でよく使われるプログラミング言語の知識・技能と児童がつまずきやすい場面
(ウ)「指導研修」児童に一方的に「教える」のではなく、指導者と学習者の相互のやり取りの中で理解を深めさせる指導方法
(エ)「コミュニケーション研修」児童との基本的な接し方(立ち方や態度等)、距離感を排除する方法、励まし方、楽しさを引き出す方法等

⑤ 大学等との連携

地域の大学と連携することにより、企業等との連携と同様に、教員研修を充実することなどが期待されます。また、学生の協力を得て、プログラミング教育を実施する際の授業支援を充実することも考えられます。

(滋賀県草津市の例)

市内にキャンパスがある大学と教育分野を含む包括協定を結んでいます。それを生かして、プログラミング教育に関しても積極的に連携を図り、理工学部の教授を学校に招いてビジュアルプログラミングの研修を行ったり、授業の際に学生が授業支援をしたりしています。

なお、プログラミング教育だけでなく、キャンパスツアーの実施や体育関係の行事で学生のサポートを得るなど、日ごろから様々な連携事業を実施しています。

(宮城県の例)

宮城県の事業として行われている「KCみやぎ」という取組があります。もともとは教育を目的とした事業ではなく、地域企業が抱える技術的な課題に対し、地域の学術機関(大学や高専など)が協力して相談を受け、金融・支援機関とともに、解決策を模索するというものです。

この中の産学共同研究会を活用して、教員養成課程に在籍する学生たちと、地域企業、担当教師、大学に所属するICT支援員が連携して、小学校のクラブ活動での出前授業や、土曜日のプログラミング教室の開催などを実施しています。

プログラミングの普及啓発活動に関心のある地域企業は、独自の取組を行っており、そのノウハウもあるものの、学校とのパイプがなかったり、アシスタントが不足していていたりするため、学生たちがワークショップの手伝いをしたり、教材やカリキュラムを企業と学生とで開発したりしています。大学の教授から専門的なアドバイスを受けることもできます。学生たちも、大学の学修では得られない企業のワークショップのノウハウを知ったり、教育実習以外での子供たちとの接点ができたりなど、将来教師となったときに生きる経験を積み重ねることができます。企業にとっては、学生たちが子供たちに近い目線から開発した教材などを新たな知見として生かすことができます。このように、学生・企業双方のメリットがうまく結び付いており、継続的に取り組まれています。

⑥ NPO等との連携

プログラミング教育の推進に取り組んでいるNPO などに協力を依頼して各教科等の授業やクラブ活動など、幅広く関わってもらう例もあります。事前の授業設計に当たって教師と議論を重ね、基本となるプログラム例を作成するなど、授業の流れを一緒につくっていきます。状況に応じて、専門家に協力を依頼するなどのコーディネーターの役割も担ったり、授業の際にメンターとしてサポート役に入ったりすることもあります。

当初はクラブ活動のサポートから始め、徐々に各教科等におけるプログラミング教育に取組を広げてきた例もあります。また、IT 企業との連携をNPOが担い、プログラミングを体験するだけでなく、社会におけるプログラミング技術の意義や自らのキャリアについても子供たちに考えさせるといった、特徴のある取組を実施した例もあります。さらに、学校における土曜学習のほか、学校や適応指導教室とも連携しながら、公民館等の社会教育施設を会場として不登校の子供を含む幅広い層の子供たちにプログラミング体験の機会を提供している例などもあります。

このほか、主に教師を対象として、プログラミング体験を含む研修等を開催したり、授業で使いやすいプログラミング教材を開発・普及したりしている団体もあります。

⑦ 学校放送番組の活用

学校放送番組の学習コンテンツは、各教科等の授業において活用されており、プログラミング教育に活用できる番組もあります。算数や理科のほか、音楽や総合的な学習の時間等の授業においてプログラミングを取り入れる際に活用できる内容も用意されています。Web サイトでも公開されており、また、教師向けの資料等も用意されているので併せて活用することができます。

こうした学校放送番組は、見ているだけでも楽しいですが、それだけではプログラミング教育のねらいを実現することは難しく、授業での効果的な活用方法を検討する必要があります。例えば、まず、番組の導入で興味をもたせて本時の課題を明確にし、次に、番組の解説を参考としてプログラミング体験を通して本時の課題を解決し、最後に、個々の児童の発想を生かしてプログラムを作成するというような展開を考える必要があります。児童が実際にプログラミングをする体験を重視するとともに、授業の展開に応じて番組を分割して視聴させたり、視聴する際の視点を明確にさせたりするなど、教師の手立てが求められます。

第5章プログラミング教育の環境整備及び研修

小学校プログラミング教育の実施に当たっては、各学校や教育委員会等においては、研修や教材研究等の準備を計画的に進めるとともに、学校のICT 環境整備について、学校情報セキュリティの確保も含めて、しっかりと進めていくことが望まれます。

特に、教育委員会においては、各学校における取組を促し支援する体制を整え、教育課程編成や学習指導等の側面とICT 環境整備の側面との両面から計画的に進めることが必要です。

(1)環境整備

学校におけるICT 環境整備については、学習者用コンピュータ、ネットワーク等の整備、ICT 支援員の配置等に必要な経費について、2018 年度からの5年間、単年度1,805 億円の地方財政措置が講じられているところであり、積極的に必要な環境を整備することが望まれます。

仮に学校におけるICT 環境が十分ではない場合、必要な整備を早急に進めるとともに、それまでの間も、ほとんどの小学校では既に整備されているコンピュータ教室などの既存のICT 環境を効率的に活用することも含め、適切なカリキュラム・マネジメントによって、児童がプログラミングを体験する学習活動を計画的に実施することが望まれます。

プログラミング教育に用いる教材については、「小学校教材整備指針」(令和元年一部改訂) において、「学校全体で共用可能な教材」、「算数」、「理科」、「総合的な学習の時間」それぞれの例示品目として位置づけられています。プログラミング教育に用いる教材も含め、義務教育諸学校における教材整備に係る費用については、単年度約800億円の地方財政措置が講じられています。また、理科教育設備整備費等補助金においても、算数や理科の指導に特化したプログラミング教材のうち一定額以上のものが補助対象とされています。
(https://www.mext.go.jp/a_menu/shotou/rikasansuu/index.htm)

教育向けのプログラミング言語やプログラミング教材は、Web 上において無償で提供されているものも複数あるので、それらを有効に活用することも検討することが望まれます。ただし、無償であっても、例えばWeb ブラウザ上で動作するプログラミング教材の場合、学習者用コンピュータに搭載しているWeb ブラウザが対応しておらずプログラミング教材が動作しないという場合もあるので、学校のICT 環境の管理者等は、学校で使用しようとしている教材について把握した上で、事前に必要なWeb ブラウザをインストールしておくことなどが必要です。同様に、プログラミング教材が、USB やBluetooth 等で学習者用コンピュータ等と接続する必要がある場合には、事前に接続が可能かどうかを確認し、学校のICT 環境の管理者の接続許可等が必要な場合は、事前に調整等を済ませておく必要があります。なお、これらは新たにICT 環境を整備したり、更新したりする際にも留意しておくべきことであり、プログラミング教育としてどのような教材を用いるのかをあらかじめ具体的に想定しながら、それが確実に動作する環境を検討する必要があります。

また、プログラミング教育や教材に関するWeb サイトや、解説動画などに、教師や児童が必要に応じて適切にアクセスできるよう、フィルタリング等の設定についても学校のICT 環境の管理者等と調整等を行うことが必要です。

また、全ての学校にプログラミング教材を整備できない場合などには、教育委員会が一括して購入し、希望の学校に貸し出す体制を設けるなどの工夫も考えられます。

(2)研修について

小学校プログラミング教育に関する研修は、都道府県や市町村教育委員会が実施する研修、各学校における校内研修、NPO 等の外部団体が行う研修会・セミナーなどがあります。

小学校プログラミング教育は、教師一人一人が本手引等を参照してプログラミング教育のねらいを確認し、授業のイメージをつかむことが必要ですが、何より教師が自らプログラミングを体験することが重要です。前述の研修等で実際にプログラミングを体験することのほか、Web 上で無償で使用できるプログラミング教材もあるので、それらを教師自らが操作して体験することも考えられます。

文部科学省が作成した研修用教材「小学校プログラミング教育に関する研修教材」(https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416408.htm)も実際にWeb 上の無償のビジュアル型プログラミング言語を操作しながら研修できる教材としています。

さらに、プログラミングを体験した上で、模擬授業を実施しておくことも、実際の授業を円滑に進めるために有効と考えられます。初めてプログラミング教育を担当する教師を含め、計画的に研修等が行われるよう教育委員会や管理職が支援・マネジメントすることも重要です。

Q&A

Q1 学習指導要領に例示された算数、理科、総合的な学習の時間だけでプログラミン
グ教育を実施すればよいのでしょうか?

A1

プログラミング教育は、学習指導要領の算数、理科、総合的な学習の時間に例示している単元等はもちろんのこと、多様な教科・学年・単元等で取り入れることや、教育課程内において、各教科等とは別に取り入れることも可能であり、各学校の教育目標や、学校や地域の実態等を踏まえ、A~C分類の学習活動を様々な場面で取り入れながら、児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を行う必要があります。

まずは、本手引で紹介している指導例や「未来の学びコンソーシアム」が運営するWebサイト「小学校を中心としたプログラミング教育ポータル」(https://mirainomanabi.jp/)に掲載している実践事例なども参考として、取り組んでいただきたいと考えています。その上で、小学校段階の教育課程全体を見据え、各学校の創意工夫により、様々な場面で積極的に取り組むなど、発展させていくことが望まれます。

Q2 A分類・B分類とC分類の違いを教えてください。

A2

A分類・B分類は、学習指導要領に例示されているか、いないかの違いはありますが、どちらも学習指導要領で示される各教科等の内容を指導する中で、①プログラミング的思考を育む、②プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むとともに、③各教科等での学びをより確実なものにするための学習活動です。

一方、C分類は、各教科等に位置付けているものではないことから、各教科等での学びを確実なものにするということをねらいにする必要はなく、①及び②をねらいとする学習活動です。

C分類は、創意工夫により様々な取組を実施することが考えられますが、例えば、

  1. プログラミングの楽しさや面白さ、達成感などを味わえる題材などでプログラミングを体験する取組
  2. 各教科等におけるプログラミングに関する学習活動の実施に先立って、プログラミング言語やプログラミングの技能の基礎についての学習を実施する取組
  3. 各教科等の学習と関連させた具体的な課題を設定する取組

等を実施することができます。

Q3 授業を効率的に実施するため、教師が実演を示し、児童にはワークシートを用いて自分の考えをもたせるようにしたいのですが、よいでしょうか?

A3

児童が「コンピュータを活用して」自らが考える動作の実現を目指して試行錯誤を繰り返す「体験」が重要であり、学習指導要領では児童がプログラミングを体験することを求めています。

児童の発達の段階等によっては、教師が実演する形式の授業を行うことも考えられますが、その場合は、適切なカリキュラム・マネジメントによって、児童がコンピュータを活用しながら行う学習と適切に関連させて実施することが望まれます。

なお、児童がコンピュータを活用して学習する場面において、児童が見通しをもって学習に取り組むことができるよう、教師が実演を示したり、ワークシートに考えをまとめさせたりすることは、授業を効率的に進める上でも有効なものと考えられます。

Q4 タブレットPC等の整備が十分ではないので、当面はコンピュータを用いない取組としたいのですが、よいでしょうか?

A4

コンピュータを用いずに「プログラミング的思考」を育成する指導は、これまでの実践にも見いだすことができ、今後とも取り入れていくことは考えられます。ただし、児童が「コンピュータを活用して」自らが考える動作の実現を目指して試行錯誤を繰り返す「体験」が重要であり、学習指導要領では児童がプログラミングを体験することを求めていますので、プログラミング教育全体において児童がコンピュータをほとんど用いないということは望ましくないことに留意する必要があります。

学校におけるICT環境が十分ではない場合、必要な整備を早急に進めるとともに、それまでの間も、ほとんどの小学校では既に整備されているコンピュータ教室などのICT環境を効率的に活用することも含め、適切なカリキュラム・マネジメントによって、児童がプログラミングを体験する学習活動を計画的に実施することが望まれます。

なお、学習指導要領では、プログラミング的思考を含む情報活用能力の育成を図るため、「各学校において、コンピュータや情報通信ネットワークなどの情報手段を活用するために必要な環境を整え、これらを適切に活用した学習活動の充実を図ること」と規定しており、文部科学省では、この実施を見据えて「教育のICT化に向けた環境整備5か年計画」(2018~2022年度)を策定しました。

また、この計画に基づくICT環境の整備充実を図るため、教育用コンピュータ、ネットワーク等の整備、ICT支援員の配置等に必要な経費について、2018年度からの5年間、単年度1,805億円(2017年度は1,678億円)の地方財政措置が講じられます。

Q5 学習指導要領に例示された算数や理科の単元で効率的にプログラミングに取り組めるようにするためには、総合的な学習の時間などを活用してプログラミング言語にある程度は習熟させる必要があるのではないでしょうか?

A5

小学校段階におけるプログラミング教育は、児童がプログラミング言語を覚えたり、プログラミングの技能を習得したりすることをねらいとするものではありません。ただし、学習指導要領に例示している単元その他において効率的にプログラミングに取り組めるようにするため、必要に応じ、あらかじめプログラミングを体験させ、プログラミング言語やコンピュータの操作等に慣れ親しませることは有効と考えられます。なお、そうした学習活動を例えば総合的な学習の時間で行うに当たっては、それのみで学習が完結することにならないよう、総合的な学習の時間の目標を実現するにふさわしい探究的な学習のプロセスの中に適切に位置付けて実施することが求められます。

また、各教科等におけるプログラミングに関する学習活動の実施に先立って、C分類の学習活動として、プログラミング言語やプログラミングの技能の基礎について学習に取組み、プログラミング言語に慣れ親しむという指導計画を立てることも考えられます。(C分類についてはQ2も参照してください)

Q6 プログラミングなどICT活用が得意な教師と、そうではない教師がいますが、プログラミング教育をしっかりと実施するには、どんな工夫が必要でしょうか?

A6

小学校プログラミング教育は、プログラミングやICTに関する高度な専門性が求められるものではありません。まずは、本手引を参考に、学校全体で、小学校プログラミング教育のねらいを確認いただくとともに、教師自らがプログラミングを体験し、プログラミングはそれほど難しいものではないということを実感していただきたいと思います。その上で、本手引の指導例や「未来の学びコンソーシアム」の運営するWebサイト「小学校を中心としたプログラミング教育ポータル」(https://miraino-manabi.jp/)の実践事例等も参照しながら、無理なく取り組める場面から実施し、徐々にプログラミング教育を実施する場面を広げていくことが考えられます。

また、プログラミング的思考は、これまで各教科等の指導で育成を目指してきた論理的思考力とつながっているものであり、経験豊富な教師がもつその指導のノウハウも生かせるものと思われます。

Q7 学校と教育委員会との連携や役割分担は、どのようにすればよいでしょうか?

A7

各学校においては、本手引等を参考としながら、校内研修等により、小学校プログラミング教育のねらいを全教師で確認するとともに、教師自身のプログラミング体験、教材研究などを進めていただきたいと思います。教育委員会においては、先進事例などを参考としつつ、プログラミング教育で育みたい力を明らかにし、モデルカリキュラムを作成・提示するほか、計画的な研修の実施や企業・団体等との連携、学校のICT環境整備を積極的に進めるなど、各学校の取組を支援しリードしていくことが望まれます。

参考資料

(参考1)中央教育審議会「幼稚園、小学校、中学校、高等学校及び特別支援学校の学習指導要領等の改善及び必要な方策等について(答申)」(平成28年12月21日) (抜粋)

  • とりわけ最近では、第4次産業革命ともいわれる、進化した人工知能が様々な判断を行ったり、身近な物の働きがインターネット経由で最適化されたりする時代の到来が、社会や生活を大きく変えていくとの予測がなされている。“人工知能の急速な進化が、人間の職業を奪うのではないか”“今学校で教えていることは時代が変化したら通用しなくなるのではないか”といった不安の声もあり、それを裏付けるような未来予測も多く発表されている。
  • 将来の予測が難しい社会においては、情報や情報技術を受け身で捉えるのではなく、手段として活用していく力が求められる。未来を拓いていく子供たちには、情報を主体的に捉えながら、何が重要かを主体的に考え、見いだした情報を活用しながら他者と協働し、新たな価値の創造に挑んでいくことがますます重要になってくる。
  • また、情報化が急速に進展し、身の回りのものに情報技術が活用されていたり、日々の情報収集や身近な人との情報のやりとり、生活上必要な手続など、日常生活における営みを、情報技術を通じて行ったりすることが当たり前の世の中となってきている。情報技術は今後、私たちの生活にますます身近なものとなっていくと考えられ、情報技術を手段として活用していくことができるようにしていくことも重要である。
  • また、身近なものにコンピュータが内蔵され、プログラミングの働きにより生活の便利さや豊かさがもたらされていることについて理解し、そうしたプログラミングを、自分の意図した活動に活用していけるようにすることもますます重要になっている。将来どのような職業に就くとしても、時代を超えて普遍的に求められる「プログラミング的思考」などを育むプログラミング教育の実施を、子供たちの生活や教科等の学習と関連付けつつ、発達の段階に応じて位置付けていくことが求められる。その際、小・中・高等学校を見通した学びの過程の中で、「主体的・対話的で深い学び」の実現に資するプログラミング教育とすることが重要である。

(参考2)小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議「議論の取りまとめ」(平成28年6月16日) (抜粋)

  • 子供たちが、情報技術を効果的に活用しながら、論理的・創造的に思考し課題を発見・解決していくためには、コンピュータの働きを理解しながら、それが自らの問題解決にどのように活用できるかをイメージし、意図する処理がどのようにすればコンピュータに伝えられるか、さらに、コンピュータを介してどのように現実世界に働きかけることができるのかを考えることが重要になる。
  • そのためには、自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力が必要になる。
  • こうした「プログラミング的思考」は、急速な技術革新の中でプログラミングや情報技術の在り方がどのように変化していっても、普遍的に求められる力であると考えられる。また、特定のコーディングを学ぶことではなく、「プログラミング的思考」を身に付けることは、情報技術が人間の生活にますます身近なものとなる中で、それらのサービスを使いこなし、よりよい人生や社会づくりに生かしていくために必要である。言い換えれば、「プログラミング的思考」は、プログラミングに携わる職業を目指す子供たちだけではなく、どのような進路を選択しどのような職業に就くとしても、これからの時代において共通に求められる力であると言える。
  • プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、発達の段階に即して、次のような資質・能力を育成するものであると考えられる。

【知識・技能】

  • (小)身近な生活でコンピュータが活用されていることや、問題の解決には必要な手順があることに気付くこと。
  • (中)社会におけるコンピュータの役割や影響を理解するとともに、簡単なプログラムを作成できるようにすること。
  • (高)コンピュータの働きを科学的に理解するとともに、実際の問題解決にコンピュータを活用できるようにすること。

【思考力・判断力・表現力等】

  • 発達の段階に即して、「プログラミング的思考」(自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力)を育成すること。

【学びに向かう力・人間性等】

  • 発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養すること。

(参考3)小学校学習指導要領(平成29年3月31日公示) (抜粋)

(第1章総則第2の2の(1))

各学校においては、児童の発達の段階を考慮し、言語能力、情報活用能力(情報モラルを含む。)、問題発見・解決能力等の学習の基盤となる資質・能力を育成していくことができるよう、各教科等の特質を生かし、教科等横断的な視点から教育課程の編成を図るものとする。

(第1章総則第3の1の(3))

情報活用能力の育成を図るため、各学校において、コンピュータや情報通信ネットワークなどの情報手段を活用するために必要な環境を整え、これらを適切に活用した学習活動の充実を図ること。(略)

あわせて、各教科等の特質に応じて、次の学習活動を計画的に実施すること。

ア児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動

イ児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動

(参考4)小学校学習指導要領解説総則編(平成29年6月21日公表) (抜粋)

情報活用能力は、世の中の様々な事象を情報とその結び付きとして捉え、情報及び情報技術を適切かつ効果的に活用して、問題を発見・解決したり自分の考えを形成したりしていくために必要な資質・能力である。(略)

情報活用能力をより具体的に捉えれば、学習活動において必要に応じてコンピュータ等の情報手段を適切に用いて情報を得たり、情報を整理・比較したり、得られた情報をわかりやすく発信・伝達したり、必要に応じて保存・共有したりといったことができる力であり、さらに、このような学習活動を遂行する上で必要となる情報手段の基本的な操作の習得や、プログラミング的思考、情報モラル、情報セキュリティ、統計等に関する資質・能力等も含むものである。こうした情報活用能力は、各教科等の学びを支える基盤であり、これを確実に育んでいくためには、各教科等の特質に応じて適切な学習場面で育成を図ることが重要であるとともに、そうした育まれた情報活用能力を発揮させることにより、各教科等における主体的・対話的で深い学びへとつながっていくことが一層期待されるものである。

また、小学校においては特に、情報手段の基本的な操作の習得に関する学習活動及びプログラミングの体験を通して論理的思考力を身に付けるための学習活動を、カリキュラム・マネジメントにより各教科等の特質に応じて計画的に実施することとしている。

(略)

また、子供たちが将来どのような職業に就くとしても時代を越えて普遍的に求められる「プログラミング的思考」(自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力)を育むため、小学校においては、児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を計画的に実施することとしている。その際、小学校段階において学習活動としてプログラミングに取り組むねらいは、プログラミング言語を覚えたり、プログラミングの技能を習得したりといったことではなく、論理的思考力を育むとともに、プログラムの働きやよさ、情報社会がコンピュータをはじめとする情報技術によって支えられていることなどに気付き、身近な問題の解決に主体的に取り組む態度やコンピュータ等を上手に活用してよりよい社会を築いていこうとする態度などを育むこと、さらに、教科等で学ぶ知識及び技能等をより確実に身に付けさせることにある。したがって、教科等における学習上の必要性や学習内容と関連付けながら計画的かつ無理なく確実に実施されるものであることに留意する必要があることを踏まえ、小学校においては、教育課程全体を見渡し、プログラミングを実施する単元を位置付けていく学年や教科等を決定する必要がある。なお、小学校学習指導要領では、算数科、理科、総合的な学習の時間において、児童がプログラミングを体験しながら、論理的思考力を身に付けるための学習活動を取り上げる内容やその取扱いについて例示しているが(第2章第3節算数第3の2(2)及び同第4節理科第3の2(2)、第5章総合的な学習の時間第3の2(2))、例示以外の内容や教科等においても、プログラミングを学習活動として実施することが可能であり、プログラミングに取り組むねらいを踏まえつつ、学校の教育目標や児童の実情等に応じて工夫して取り入れていくことが求められる。

また、こうした学習活動を実施するに当たっては、地域や民間等と連携し、それらの教育資源を効果的に活用していくことも重要である。

参照

トップ > 教育 > 小学校、中学校、高等学校 > 教育の情報化の推進 > 教育の情報化に関する取組 > 情報教育の推進 > プログラミング教育 > 小学校プログラミング教育の手引

-ビジネス全般

© 2022 Real-World Data/Evidence website