学習指導要領と小学校プログラミング教育の手引から読み解く・小学生のプログラミング教育とは?


文部科学省は、『2020年に日本の小学校でプログラミング教育を必修化する』ことを決定しました。
。情報活用能力に関する改定のポイントは①ICT教育環境の充実 ②プログラミング教育必修化 の二つです。

パソコンはともかく、小学生にプログラミングなんて難しいのではないかと驚いた方も多いのではないでしょうか?初心者が見るとプログラミング言語は、暗号のように見えます。この暗号のような難しい言語を小学生で学ぶのでしょうか?



私が、初めてプログラミングを習ったのが大学生です。FORTRAN(フォートラン)、CやC++など。言語を覚えるのもちょっと大変でしたが、バクを見つけるのがやっかいで苦労したことをよく覚えています。プログラマーのお父さんに聞いてみたら、FORTRAN(フォートラン)は今や自然科学系の分野の一部でしか使われてないマイナーな言語となっているそうです。CやC++は今でも現役で良く使われているのですが、メモリの開放が必要でちょっと面倒ということ、初心者でも扱いやすいPHPとか、大規模プロジェクトにも使えるJAVAなどが主に使われるようになっているとのことでした。


難しいだけでなく、主流となるプログラミング言語はどんどん変わります。このような変化の激しい業界に、小学生のプログラミング学習は対応できるのでしょうか?


こちらでは、小学生がプログラミング学習として、どのようなことを学ぶためにどのような授業を受けるのか具体的な事例を上げながら紹介しています。



小学生では、“プログラミング言語”が必修ではない


文部科学省は、『2020年に日本の小学校でプログラミング教育を必修化する』ことを決定しました。小学生にプログラミング教育をすることは可能なのでしょうか?


プログラミング教育に関する有識者会議の会議資料を発見しました。この会議の結果を受けて、学習指導要領にプログラミング教育が盛り込まれたという背景があります。下記は会議資料の抜粋です。

プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディング*を覚えることが目的ではない。

*コーディングとは、“プログラミング言語を用いた記述方法”のこと。



そして学習指導要領にも、下記のように記載がありました。

小学校段階において学習活動としてプログラミングに取り組むねらいは、プログラミング言語を覚えたり、プログラミングの技能を習得したりといったことではなく………


つまり、 プログラミング言語を小学校で必修化するわけではないようです。


しかし、プログラミング言語は学習しないで 『プログラミング的思考を育成する』とはいったいどういうことなのでしょうか?


下記に詳細をまとめています。


子供の学びが進化する!情報活用能力の育成を図る資質・能力の「三つの柱」


新しい学習指導要領では、各教科等の「目標」「内容」の記述を、「知識及び技能」「思考力、判断力、表現力等」「学びに向かう力、人間性等」の資質・能力の3つの柱で再整理されています。


プログラミング教育(情報活用能力)の育成を図る3つの柱は以下の通りです。

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

【思考力、判断力、表現力等】(知っていること・できることをどう使うか)
発達の段階に即して、「プログラミング的思考」を育成すること。

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


ただ単に、 パソコンとかプログラミング技術、知識だけの教育ではなく、人間性の教育や身近なことから興味や関心をひく大切さ、将来の方向性を見いだす力、問題の解決の手順などが盛り込まれていることがわかります。


小学生で育成するプログラミング的思考とは?


小学生では、プログラミング的思考の育成をめざした教育が行われることがわかりました。”プログラミング的思考”とはこれまであまり聞かれなかった言葉です。子供たちはこれからどのようなことを学ぶのでしょうか?


文部科学省「小学校プログラミング教育の手引(第三版)(文部科学省)」にわかりやすく解説されていました。こちらの資料を抜粋しながら、まとめていきます。


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


「プログラミング的思考」ができれば、下記のように、コンピュータを動作させることができます。

図の出典:文部科学省「小学校プログラミング教育の手引き」

 コンピュータを動作させるために命令(記号)の組合せを考える際には、たとえば、 命令(記号)を順序立てたり、条件を設定して命令(記号)を分岐させたり、命令(記号)を繰り返させたりすることなどが考えられます。例えば、ビジュアルプログラミング言語で三角形を書くときは以下のようになります。




図の出典:文部科学省「小学校プログラミング教育の手引き」


そういえば、私も大学生のころ、プログラミング言語の授業で習いました。(a)が条件分岐/if文、(b)の黄色の部分が"ループ/loop ですね。



図の出典:文部科学省「小学校プログラミング教育の手引き」

思った通りに三角形が書けなかった場合などは、どこが間違っていたのかを考え、修正や改善を行い、その結果を確かめるなどして、ゴールを目指します。


つまり、 プログラミング的思考とは、「コンピューターにわかるように、自分の意図を分解したり、組み合わせたりする」ことを繰り返し、「試行錯誤しながらゴールを目指す」ことができる考え方ということ。


一言で要約してしまうと プログラミング的思考とは『コンピューターを使った課題解決能力』です。


コンピューターを使っているので、「命令は記号で行う」ことになりますが、コンピューターを使わない「課題解決能力」は、日常生活でも必要とされますね。家づくりとか工作など、モノづくりがその例としてあげられそうです。


小学校でのパソコン、プログラミング・身に付けるべきスキルとは?



小学校ではパソコン・プログラミング教育としてどのようなことを学習するのでしょうか。


学習指導要領には以下の学習活動をすることが記載されています。

児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動 児童がプログラミングを体験しながら、コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動』


」はタイピングなどコンピュータの基本操作、検索や通信など基本的なコンピュータの活用スキルのことですね。具体的には、下記のような学習活動を指しています。長いので箇条書きにして要約しました。


1) 学習活動を円滑に進めるために必要な程度の速さでのキーボードなどによる文字の入力(=タイピング)
2) 電子ファイルの保存・整理
3) インターネット上の情報の閲覧
4) 電子的な情報の送受信や共有など(=メールの基本操作)
5) 文章を編集したり図表を作成したりする学習活動
6) 様々な方法で情報を収集して調べたり比較したりする学習活動
7) 情報手段を使った情報の共有や協働的な学習活動
8) 情報手段を適切に活用して調べたものをまとめたり発表したりする学習活動


」はプログラミング学習やりますということですが、そのねらいは、プログラミング技術を身に付けることではありません。


●論理的思考力、つまり、コンピュータを動かすための論理的な考え方(=プログラミング的思考力)を育むこと
●プログラムの働きやよさに気付くこと
●情報社会がコンピュータをはじめとする情報技術によって支えられていることなどに気付くこと
●身近な問題の解決に主体的に取り組む態度やコンピュータ等を上手に活用してよりよい社会を築いていこうとする態度などを育むこと
●教科等で学ぶ知識及び技能等をより確実に身に付けさせること


以上のことを学習のねらいとしています。


」については、なんだか普段、会社でやっているお仕事と同じだと考えるとイメージしやすいです。図や表がついた書類を作って、保存したり、メールで送ったり。周りの人と協力して仕事したり、プレゼンしたり……と考えるとわかった気がします。


」については、小学校でプログラミングの授業を受けていない私たちにはちょっとイメージしにくいのはないでしょうか?特に、「プログラミング的思考力」のところが、わかったような、わからないような??となってしまいます。 


より理解を深めるために具体的な事例について以下にご紹介します。


小学校でのプログラミングの授業はどんなもの?プログラミング言語は何を使うの?事例とともに紹介


プログラミング学習と言えば、コンピュータを活用しながら実施することが基本。文部科学省「小学校プログラミング教育の手引き」によると“プログラミング教育において、コンピュータをほとんど用いないということは望ましくない”とされています。



プログラミング言語については、ブロックを組み上げるかのように命令を組み合わせることなどにより簡単にプログラミングできる言語(ビジュアル型プログラミング言語)を使うことが想定されています。しかし、児童によっては、文字により記述する言語(テキスト型プログラミング言語)を活用することも考えられるとのこと。


パソコン使ってビジュアル型プログラミング言語を学習することを基本とし、意欲がある子はテキスト型プログラミング言語まで学習するということのようですね。


それでは、“パソコン使ってプログラミング言語”とは、具体的にどのような課題に取り組むのでしょうか?


【小学校段階におけるプログラミング教育の実施例】について、小学校プログラミング教育の手引(第三版)から抜粋しました。省略、要約して短くまとめています。こちらでは紹介しなかった社会科やクラブ活動の例など、たくさん紹介されています。


1. 総合的な学習の時間
2. 理科
3. 算数
4. 音楽



1.総合的な学習の時間(自分の暮らしとプログラミングとの関係を考え、そのよさに気付く学び)



例1)「情報化の進展と生活や社会の変化」を探究課題として学習する場面

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


例2)「まちの魅力と情報技術」を探究課題として学習する場面

タッチパネル式のまちの案内表示を見に行き、それぞれの情報がどのような順序で表示されるようになっているのか確かめる。さらに、タッチパネル式案内のように表示させるためのプログラミングの方法についてゲストティーチャー等からの話を聞いたりする。児童は集めた情報を整理しながら、ビジュアル型プログラミング言語を用いて、タッチパネル式案内表示の試作品を作成する。


例3)「情報技術を生かした生産や人の手によるものづくり」を探究課題として学習する場面

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



2.理科


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

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



3.算数


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

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



4.音楽


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

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


以上、パソコン使って小学生が取り組むプログラミングの課題について紹介しました。
ただし、このような事例はあくまで例として挙げられているだけなので、全ての小学生がこちらの課題に取り組むというわけではないようです。今のところ、プログラミング学習は学校による自由度がとても高いようです。


プログラミングの授業を参観した気分になれる!“小学生のためのプログラミング学びのポータルサイト”


【小学校段階におけるプログラミング教育の実施例】から、学校で取り組もうとしている課題がわかりました。国語や算数の授業なら、課題がわかれば大丈夫です。〇〇という漢字を習います。「ごんぎつね」やります。「九九」を覚えます。「小数点」習います。私たちも授業を受けてきたから、事例を聞いただけでわかります。


しかし、小学校でプログラミングの授業を受けたことない場合、事例を聞いたとしてもどのような授業を子供たちが受けているのかなかなかイメージすることができません。プログラミング学習の授業参観があればよいのですが、残念ながらうちの子の学校では未だ実施の予定はなさそうです。


そこで、もう少し具体的なイメージが持てるように調べることにしました。プログラミングを使って三角形を書くとは、プログラミングを使って音楽を作るとは、実際にどのような授業を受けるのでしょうか?





小学校を中心としたプログラミング教育ポータルは、小学校向けにプログラミングについての説明、教師等向けに実施事例や教材情報等を掲載しているサイトです。文部科学省・総務省・経済産業省と民間企業等が連携して設立した未来の学びコンソーシアムによって立ち上げられました。(令和2年12月25日をもって未来の学びコンソーシアムの業務を終了したため、現在は、文部科学省初等中等教育局情報教育・外国語教育課が運営しています。)


こちらのサイトの資料を読むと、プログラミングの授業がとてもイメージしやすかったです。学習指導要領に採用されていた事例も、授業風景の写真とともに授業の構成や進め方まで具体的に示されています(小学校を中心としたプログラミング教育ポータル 実施事例A)。


例えば、“例)プログラミングを通して、正多角形の意味を基に正多角形をかく場面(算数第5学年)”の資料を見るとScratchというビジュアルプログラミング言語を使っていることがわかります。使う教材から学習活動の手順まで詳しく資料に出ていてとても具体的です(正多角形をプログラムを使ってかこう(杉並区立西田小学校)、同じ資料がPDFファイルにもなっています)。




授業で使うプログラミング言語などの教材は、プログラミングポータルサイトの教材情報のところ(上図の赤丸の部分)で紹介されています。対象年齢や、無料・有料なども選択して検索できるので、とっても便利でした。


ちなみに、うちの子の学校では、Scratch(スクラッチ)とArtecRobo(アーテックロボ))を使っているそうです。もちろん、どちらも小学校を中心としたプログラミング教育ポータルで紹介されています。


Scratch(スクラッチ)は、アメリカ・マサチューセッツ工科大学のメディアラボが無償で公開しているビジュアルプログラミング言語。画面上のブロックをつなぎ合わせてプログラムを作ります。日本語でも使用可能。主にマウスを使用するため、キーボード操作に不慣れな小学生でも利用することができるのが特徴です。


ArtecRobo(アーテックロボ)は、日本の学校教材トップメーカーである株式会社アーテックが製造・販売する、ロボットプログラミング学習教材セット。有料です。縦、横、斜めに自由につながるブロック、モーターやセンサーなどのロボットパーツ、プログラミングソフトがセットになっており、ロボットの動きやしくみ、プログラミングを学ぶことができるそうです。


うちの子の学校では、ロボットを動かしたり、電気を流して豆電球をチカチカさせたり、夏の夜、快適に眠るための扇風機を制御したりといろいろな課題に取り組んでいるそうです。楽しいといって喜んでやっています。こういった学習に興味があるお子さんは、小学校を中心としたプログラミング教育ポータル 実施事例Aの内容を参考に、お家で復習してみたり、プラスαで自主学習として取り組んでみたりするのもいいかもしれませんね。


小学校を中心としたプログラミング教育ポータル


最後に

現在、新学習指導要領に基づいた子供の教育と環境整備が整いつつあります。ただし、文部科学省のHPには、”教育の情報化に関する情報は、文部科学省から随時発信していますが、学校を取り巻くICT環境は急速に変化しています。学校設置者における担当者の皆様におかれましては、……引き続き注視願います。”との文言もあり……”子供の教育”もICT環境変化に対応して、今後どんどん変更される可能性もありそうです。親として引き続き注視していく必要がありそうです。





------------------
小学校学習指導要領(平成29年告示)解説総則編(文部科学省)
小学校プログラミング教育の手引(第三版)(文部科学省)
新しい学習指導要領の考え方-中央教育審議会における議論から改訂そして実施へ-