2020年度から学校におけるICT教育が始まりました。
その中の1つが、プログラミング教育です。
小学校のプログラミング教育では、いったい何をするのか気になりますよね!
文部科学省は「教育の情報化に関する手引」において、以下のように、プログラミング教育を定めています。
プログラミング教育とは
文部科学省「教育の情報化に関する手引」
「子供たちに、コンピュータに意図した処理を行うように指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育成するもの」
本記事では、小学校におけるプログラミング教育について、「プログラミング」の意味や、今学ぶ背景について掘り下げて参ります。
そもそも「プログラム」とは?
「プログラム」とは、コンピュータに何かしてもらいたいな?ということが起きたときに、コンピュータが理解できる言葉を用いて、その方法を指示する「指示書」のことです。
その「指示書」を作る行為を「プログラミング」と呼んでいます。
コンピュータはご存知のように人間の言葉が理解できません。
「プログラム」にかかれていることは、最終的には電気信号に置き換えられるのですが、指示する側は「プログラミング言語」を使うことで、その電気信号そのものを意識することなく指示を出すことができます。
海外の方とお話するのに、その方の自国の言語を選択していくように、「プログラミング言語」もコンピュータに実施してもらいたい動作や環境によって、場合に応じた適当な言語を選択していくことになります。
こうしたことを、現実社会に置き換えて考えてみましょう。
我が家には、小学生の子供と未就学児の子供がいます。
小学生の子供は、漢字も含めた文字での伝達がスムーズにできますが、未就学の子はひらがなは読めるものの、まだつたなさが残ります。
絵で指示された方が、動作のイメージが伝わりやすいです。
これを踏まえて、例えば、子どもに冷蔵庫から牛乳をとってきてもらうことを考えてみて、伝え方の違いについて考えてみましょう。

こうした伝え方の違いが、プログラミングの世界では、プログラミング言語の違いになります。
以上がプログラムの概要です。
なぜ、今、プログラミングを学ぶのか?
なぜ、いま、子供たちはプログラミングを学ぶということになったのでしょうか?
1つには超スマート社会に向けた社会変革に対応していくためです。
現代は、私が子どもだった30年前に比べて様々なところで、プログラムが動作しています。例えば、スマホの音声入力であったり、スマートスピーカであったり、人間の音声を認識して動作をしてくれるものが身近になってきました。
自動で動くお掃除ロボットなど、一昔前では漫画の世界のものが現実世界に登場してきています。
スマホが普及し始めたのは15年前くらいからだと思いますが、その頃から、人間の生活・社会生活の利便性をより高めるプログラムが増えてきたように思います。
今後は、すべての家電にプログラムが組み込まれ、生活とプログラムが切っても切れない社会、超スマート社会(Society5.0)がやってくると言われています。
こうした家電を使こなすためにも、仕組みがわかったほうがよく、またこれらを開発する人材を育てることも必要という観点から、プログラミング教育をしようということになったのです。
もう一つには、やりたいことを実現するためのスキルとして身に着けようという目的もあると思います。
プログラミングによって、作曲をしたり、絵を描いたりすることができるようになっています。自分の楽しみのために、何かを自分で作ることができたら楽しいですよね。
読み書きそろばんに加えての、スキルとしてのプログラミングを身に着ければ、より自分のために楽しい世界を広げることができると思います。
小学校におけるプログラミング教育のねらい
小学校においては、「プログラミング的思考」を育むことと、情報技術が社会によって支えられていることに気づき、社会をよりよくするためにそれらを活用しようとする態度を育むことがねらいになっています。
ここからもわかるように、決して「プログラミング言語を習得すること」が目的ではありません。
ここで書かれている1点目の「プログラミング的思考」とは何なのでしょうか?
「プログラミング的思考」とは「段取り」力のことだ!
文部科学省「小学校プログラミング教育の手引(第三版)」には以下のように定義されています。
プログラミング的思考とは、自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組み合わせをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
文部科学省「小学校プログラミング教育の手引(第三版)」
少しわかりにくいですね。書き下すと以下のようになると思います。
- 自分のやりたいことを明確にする。
- それを実現するために必要なものや、動きを洗い出す。
- 洗い出したものや動きを、どのような順序でするか検討する。
- やってみる。試行錯誤してさらに改善できないか考える。
ざっくりいうとこのような形になるでしょうか。
さらに、以下のように言い換えることもできるかもしれません。
- できあがりを「想像」する。
- 物事を「分析」し要素を「抽出」する
- 「手順」を考え、その通り「構築」する
- エラーを「抽出」、「試行錯誤」してよりよい形にする
もっとシンプルに言うと「段取りをたて、より洗練された方法を目指す」ということになります。
こうした思考、日常的によくやっている場面があると思います。
それは、ずばり「調理」です。
日常的にやっている動作の中で、「調理」はプログラミング的思考をして行っている動作だと思っています。
例として「焼きそばを作る」を考えてみましょう。
- 自分のやりたいことを明確にする。
→やきそばをつくるぞ! - それを実現するために必要なものや、動きを洗い出す。
→器具:コンロ、フライパン、はし 材料:野菜、肉、油 …… - 洗い出したものや動きを、どのような順序でするか検討する。
→野菜を切って、肉をきって、フライパンをコンロにおいて、……
- やってみた順序をさらに改善できないか考える。
→切ってある野菜を買ってくる など
ざっくり野菜とまとめましたが、人参とキャベツと……ともっと細かくやっていくと思います。こんな感じで段取りをたてていくことを考えていきましょうということですね。
小学校ではこの「プログラミング的思考」を育むことを、教科横断的に行っていきます。
ですが、学習指導要領では、何時間かは実際に「プログラミング」を体験させることも求められています。
これはプログラミング言語を覚えたり、プログラミング技能を習得したりすることが目的ではなく、楽しさ、面白さ、達成感を味わわせ、コンピュータをもっと活用したいという「意欲」を引き出すことを目標にしています。
今は子どもでもプログラミングを体験させやすい「ビジュアル言語」が出ています。(よい時代になったものです)
MITメディアラボが開発したプログラミング言語学習環境Scratchが無料で使えて、体験しやすいですね。

Scratchはプログラミング言語とオンラインのコミュニティです。対話的な物語やゲームやアニメを作成でき、世界中の人とあなたの作品を共有できる場所です。子供たちは、Scratchプロジェクトをデザインし、プログラミングする過程で、創造的に考え、体系的に議論し、皆と共同で取り組むことを学びます。ScratchはScratch財団がMITメディアラボのライフロング・キンダーガーテン・グループの協力により開発しているプロジェクトです。 https://scratch.mit.edu で無料で利用することができます。
ここまで「プログラミング的思考」についてお話してきました。
言葉は難しいですが、「段取りをたて、より洗練された方法を目指す」なら日常的にもできそうな気がしませんか?
例えば子どもにお手伝いのタスクを与えて、どうすれば短い時間でできるか考えるとか、それこそ、片付けも含めてスムーズに調理を終える方法を考えてもらうということも、十分プログラミング的思考を育むことにつながってくると思います。
身近にある情報技術への気づきと技術を活用する態度を育む
残りのねらいである、
「社会がコンピュータ技術によって支えられていることを気づかせる」
「情報技術を上手に活用して、身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと」
という項目についても考えてみましょう。
2020年4から5月、新型コロナウイルスによる緊急事態宣言で休校中の対応としてオンライン授業などが取られている学校もあったのではないでしょうか。
パソコンやタブレットを使い、「ZOOM」や「Google Classroom」などを使うというのも、「社会がコンピュータ技術に支えられている」や「情報技術の活用」というよい例になっていると思います。
実際「密集状態を避けて授業を行うには?」という課題に対する、ひとつの解決策となっていますよね。
ただ使うだけでなくて、どういった技術が使われているか親子で調べてみたりすると、さらに気づきにつながると思います。
一方で、コンピュータに不得意なものは何かを考えるきっかけにもなると思います。
私もオンライン会議・飲み会などを実際にやってみて思ったのですが、5人以上になると話す順番がぐちゃぐちゃになったりしました。
また、一緒の場・空気を共有していると、あの人が話すなっていうのが分かって譲ったりするのですが、それが分からない。
また、話の内容を理解してなさそうだなというのも見えにくい。
こうした現在の技術ではできない部分に対して、こうしたらみんなに喜ばれるかもという解決方法を考える機会をもつのも大事ですね。
そうしたことが、よりよい社会を築くための情報技術を活用していく態度を育むことにもつながると思います。
とここまで述べてきましたが、情報技術に限らず、身近な家電でさえ、私もどんな仕組みで動いているのか知らないことが多いです(汗)
まずは自分からやってみませんと……ですね。
ですのでこの機会に、子供と一緒に勉強したいと思っています。
まとめ 日常で段取りをたてて「プログラミング的思考」を伸ばそう
以上、小学校で実施されるプログラミング教育についてお話してきました。
日常的に、動作を細分化して順序を考えてみたり、スマホやタブレットを使って物事を検索してみたり、機械の仕組みを考えてみたりすることも、プログラミング教育につながっています。
他にも、誕生日会などのイベント計画を立てるとか、調理の手順を考えるというのも「プログラミング的思考」を伸ばすことができると思います。
パソコンで実際にプログラミングをさせてみたらハマったというお子さんには、ドンドン薦めていきましょう。作れるようになると面白いのですよね。
私は、ひとまずは、子供たちに『段取り』を考えてもらう工夫をしていきたいと思っています!
以上、小学校におけるプログラミング教育についての解説でした。