2020年の4月から,ついに小学校でもプログラミング教育が必修となりました。
たとえ1年生であってもその対象です。
とはいえ,名前の持つ難しそうな響きとは裏腹に,小学生に高度な専門性は求められず,あくまで中学や高校の学びに繋げるための導入段階とされます。
つまり,キーボードを使って英数字を文章のように打ち込んでいくプログラミングは基本的には行われないわけです。
これは英語教育においても同様なのですが,小学校では楽しさや達成感や意欲を高めることが重視され,主要教科(国語・算数・理科・社会)の理解を深めるためのサポート役に徹することが多かったりします。
詳しくは後述しますが,実際に行う作業はマウスまたはタッチ操作が中心で,あらかじめ命令が書かれた色付きブロック(「〇歩前に動く」や「左に〇度曲がる」といったもの)を並び替えるだけで済むので,必要以上に身構えないことが大切です。
今回の記事では「小学校にプログラミング教育が導入された経緯から始めて,今後想定される問題点,さらには中学や高校のカリキュラムや自宅での学び方」についても考えてみることにしましょう!
小学校でプログラミングが必修化された理由

そもそも,どうして小学生の段階からプログラミング教育が必修化されたのでしょうか。
その理由は「必要に迫られたから」であり,「Society5.0」や「未来の教室」に登場するような近い未来においては情報を上手に活用する能力がますます必須となるため,そのための教育をいち早く計画的に行うべきと判断されたからです↓
ちなみに,諸外国においては初等教育の段階からプログラミング教育がすでに取り入れられており,日本における今回の動きが特異だったわけではありません。
もっと言えば,日本の中学や高校ではすでに必修科目となっていたわけで,「これまで中高生に教えていたものを小学生の段階から教え始めることで,今後に繋がる教育を早期から施そう」とする新学習指導要領のテーマとも合っていたわけです。
実際,後になって行われた国際的な学力調査の結果は良好で,以下の動画を観ても,生徒たちは楽しそうに学んでいるように見受けられます↓
なので,結果的にプログラミングの必修化は功を奏したように思われますが,以下で具体的にどのような学びが期待できるのかみてみましょう!
情報活用能力を育成できる
2020年度の新学習指導要領においては「言語能力」が,学習の基盤となる資質・能力の1つとみなされており,読む力の重要性についてはすでに記事にしましたが,それ以外に「情報活用能力」も必須能力とされています。
そして,後者の育成に有効とされるのがプログラミング教育だったというわけです。
整理すると,以下のような資質・能力が育成できます↓
- 思考力・判断力・表現力など
- 知識や技能
- 学びに向かう力・人間性
1に挙げた力はプログラミング的思考の中に見出すことができ,「自分がやりたいことを実現するために,どういった動きを組み合わせればよいかを論理的に考えていく能力」のことです。
例えば,「ロボットが歩く」という単純な動き1つとってみても,それを人間が命ずるとなれば,
- 片足を上げる→その足を前に踏み出す→重心を前にずらす→残った方の足を上げる
といった小さな動きの連続に分ける必要があり,これらすべてを1つずつ正確にプログラミングしていかなければなりません。
このとき,どういった動きをどのような順序で行えばよいかを考える必要がある他,前提条件として,自分がロボットに何をさせたいかという意図を明確にしたり自らで課題を発見したりすることが必要です。
すぐに答えが出ないところが歯がゆいですが,具体的で効率的な動作を行うために試行錯誤し,判明した反省点をもとに改良を加えていく姿勢は,あらゆる人間活動に応用できる価値あるものと言えます↓

上の青四角内に書かれている,「必要な動きを分けて考えること,動きに対応した命令にすること,組み合わせること,必要に応じて継続的に改善すること」がまさにそれです。
続いて,先の2と3で挙げた能力についてですが,「コンピュータを身近に感じ,問題解決には一連の手順が必要であることを知り,培った能力をよりよい人生や社会のために役立てようとしてもらう」ことを目標としています。
先述したように,小学校での学びは中学や高校でのプログラミング教育を円滑に進めるための準備段階という位置づけなので,早期から些細な気づきや態度の変化を促しておくことは目標とするに相応しいでしょう。
参考までに,以下が小学生から高校生までのプログラミング教育の目的とされます↓

幅広い教科の理解が深まる
こうしたプログラミング教育で扱うテーマは身近なものであることが望ましく,ただでさえやることが多くなっている昨今ですから,国語や算数,総合的な学習の時間(理科や社会が含まれる)で扱う単元を題材にできると,それら教科の理解も深まって一石二鳥です。
例えば,モーターの仕組みをテーマにしてプログラミング教育を施せば,理科の学習を兼ねることになりますし,正三角形や正六角形をプログラミングで書くことにすれば,それは算数の授業の一環とみなせます↓

ところで,上画像で確認できる「スタートボタンがクリックされたとき,ペンを下ろす,〇回繰り返す」といった命令は,種類ごとに色分けされており,すでに細かなプログラムが入力された状態のブロックです。
これを使ってプログラミングを行うことを「ビジュアル型プログラミング言語」と呼び,特定言語によるテキスト型の言語(C言語とかPythonとか)と区別されます。
前者はマウスやタッチ操作で簡単に扱えるだけでなく,数字を入力するだけで変化を加えることが簡単にできるわけです。
おまけに,前者においても頭を働かせる余地が十分残されており,先の画像の左の例では「正三角形だから60度だ」などと単純に入力してもうまくいかず,補角(この場合は180-60=120度)の存在に気付けなければなりません(詳しくは中学の数学で習う範囲です)。
このように,プログラミング教育を通して既存の教科についてより深く学ぶことができるのも,意味のあることだと言えるでしょう。
繰り返しになりますが,あくまで別教科の理解を深めるためのツールとして使うことが想定されているわけです。
その他,教育課程外の学習においても生徒の興味や関心を引くために用いられることがあり,とりわけ楽しさや面白さ,達成感を与える意味があります。
例として,工場見学やロボットを借りたプログラミングが挙げられますが,これらは主に企業や地域の団体が行うものとなり,提供する側においても子どもの率直な意見が聞けるなどのメリットがあるわけです。
ただし,これらの多くは各学校の裁量に委ねられることになるため,地域間の教育格差となって表れてくる可能性もあります。
そこで,小学校でプログラミング教育を必須にしたことでどのような問題が起こり得るのか,次章でまとめてみることにしましょう!
小学校のプログラミング教育における問題点

プログラミング教育の必修化を成功に導くためには,あらゆる小学校にしっかりとした「学習環境」が整備されることが必要です。
具体的には,
- 指導者
- 設備
- 教育方針
の3つが考えられます。
指導者の問題
まず1つ目の「指導者」についてですが,現代の教師たちはプログラミング教育を受けた経験がない方が多く,どのように子どもたちに教えたらよいのかがわからないわけです。
もちろん,ICTに精通している支援員やボランティアを雇うこともしているのでしょうが,かといって彼らに任せ切ることはできません。
というのも,彼らは技術にこそ長けているものの,教育的な視点を持ち合わせていないことが多いからです。
結局のところ,現場の教師がリーダーシップを発揮しなければなりません。
そのため,もしも指導する教師の能力に疑問を持つようであれば,各家庭がプログラミング教育を別に施す必要があります。
設備の問題
2つ目に「設備」の問題が挙げられますが,ICT環境が充実していない学校があるわけです。
電子黒板や無線LANが校内で使えるように予算を計上する必要があることはもちろん,最低でも授業中にパソコンまたはタブレットを1人1台使えるようにすることは,今の時代,当然のことだと思わなければなりません。
校内設備はコロナ禍がプラスに働いた結果,かなり捗りましたが,パスワードの問題や機器の貸し出しのルールや老朽化など,課題は多いです↓
教育方針の問題
最後は「教育方針」になりますが,先述の通り,具体的にどのようなプログラミング教育を行うか(どのような資質・能力を優先的に育むか)は各学校の裁量に委ねられています。
プログラミングの働きや意義,そして情報社会がいかにICTに支えられているかということに気づいたり,問題解決やよりよい社会づくりにICTを使う態度を身に付けたりするための活動内容には,学校間で結構な差が生じていることでしょう。
最初の動画で見たような教育が,全国的かつ恒常的に行われているとは到底思えません。
好立地にある学校が企業や専門家と連携しやすい一方で,予算の調達や立地条件で不利な学校はどうしても出てきてしまうはずです。
現在,小学校を中心としたプログラミング教育ポータルというHPで,全国の優れた実施事例を公表しているので,他の学校でどのような教育が行われているのかに興味がある方は是非アクセスしてみてください。
なお,実施事例はA~Fの6つに分類されていて,先に示した正三角形のような例はA分類に,ゲーム作りのような各学校の腕の見せどころはC分類に,そして一番大きく異なる教育課程外の活動はEやF分類に該当します。
中学校や高校でのプログラミング教育
ここでは,中学校や高校でのプログラミング教育の概要について確認してみることにしましょう!
主に学ぶ項目について単語にしてみると,徐々に高度な内容になっていくことがわかります↓
中学以降で学ぶプログラミング
中学校:計測・制御,ネットワークを利用した双方向性のあるコンテンツのプログラミング
高校:アルゴリズムとコンピュータの仕組み,モデル化・シミュレーション
以下で詳しくみていきましょう。
中学校
中学校では「技術家庭(技術分野)」の授業において,小学校で学んだ内容をさらに発展させていくことになります。
教育の方針としては,身近な情報技術に興味・関心を持たせ,これらが生活や社会にどのような影響を与えるのかを子どもたちに考えさせた後,情報技術の仕組みや原理・法則について科学的な理解を深めることになるわけです。
一見,小学校で学んだことと同じようですが,こうした社会認識と科学的理解の両面から問題解決の工夫を分析し,実際に開発者の目線でより具体的なプログラミングを行う点が異なります。
センサーを使って物を運ぶロボットを通して,計測や制御について学ぶことができますし,無人店舗のおすすめ商品を表示するプログラムを作れば,双方向性のあるコンテンツの学習が可能です。
詳細は省きますが,前者のプログラミングだと,ただ出来事が順番に進んでいく以外に反復や分岐を伴うものが登場してきます↓

高校
高校では情報の授業でプログラミング教育を行いますが,歴史的には以下の3段階を経てきたわけです↓
- 情報A,情報B,情報C(3つから1つを選択)
- 情報の科学,社会と情報(いずれかを選択)
- 情報I(必須),情報II(選択)
このうち,情報A・情報C・社会と情報の3つはプログラミング教育を含んでおらず,高校において全くプログラミングに触れないこともこれまでは可能でしたが,2022年以降はそれができなくなりました。
というのも,必須科目となった情報Iの学習内容が,以下のように再編されたからです↓
情報Iの学習内容
第1章:情報社会の問題解決
第2章:コミュニケーションと情報デザイン
第3章:コンピュータとプログラミング
第4章:情報通信ネットワークとデータの活用
プログラミングは第3章に登場し,詳細を以下で確認してみてください↓

情報IIまで履修するとシステムのプログラミングも学ぶことができ,専門的な内容を扱う大学のプログラミング教育への橋渡しとなります。
関連して,2025年1月の共通テストからは「情報I」が新設されました↓
小学生が自宅でできるプログラミング教育
最後に,小学生が自宅で学べるプログラミング教育について考えてみましょう!
先ほど,教師のプログラミングに関する知識を増やすための研修が行われていると言いましたが,
まずは教師の皆さんがプログラミングを体験してみましょう!
どうです?思ったより難しくないでしょう?
といった,ずいぶん低い位置からのスタートとなっています。
実際,教師が学ぶことになる教材まで閲覧できてしまい,もしも自分が小学生だったら真っ先に確認していたでしょう↓
もちろん,これらの教材を通してプログラミングの核となる部分を捉え,自分の授業に応用できる熟練教師は一定数存在するはずです。
しかし,そうならない先生もいるわけで,実際,プログラミング教育ポータルで見た内容と同じ授業から始めて,徐々に発展させていく方法が推奨されています。
そもそも,独自色の強い授業を実践することは大失敗に繋がる危険性と隣り合わせですから,わざわざ義務教育の現場で実行するメリットは少ないと言えるでしょう。
私は個人塾で教えているので好き勝手できますが,国に雇われた公務員は,そこそこ上手くいくことがわかっているものを慎重に遂行していく授業を行いがちです。
しかし,子どもは概して飽きっぽいため,すぐに我慢の限界がきてしまうことになります。
教師をよく観察している子どもを相手とするだけに,教師自身が楽しんでプログラミング授業を行うのでなければ,子どもの「楽しい・面白い・できた」といった感情や「もっと学びたい!」といった意欲を引き出す授業は難しいでしょう。
確かに,その対策として教員側は自分が楽しいと思える領域(専門性のある領域)に落とし込んでプログラミング教育を実践することにしています↓

しかし,保護者目線でみて
自分の子どもが満足に論理的な思考力を身に付けられていない。
と判断できるのであれば,どこかでプログラミング教育を学べる教室を利用することも選択肢の1つに入れなければなりません。
プログラミング教育に限らず,英語の必修化による影響により,これまではスケジュール的になんとか可能だった知識の獲得が難しくなっている現状を踏まえると,各自が家で勉強することの重要性が高まっています。
特に,プログラミング教育の成功のカギとされているのは,楽しさや達成感を与える「体験と試行錯誤」です。
しかし,集団でそれを行うとなるとどうしても1人が体験できる時間は限られ,試行錯誤には失敗がつきものですが,わざわざ学校で非効率な失敗を繰り返させることは多くありません。
クラブ活動でコンピュータを扱うのであれば話は別ですが,そうでなければ市販の通信教育などを積極的に活用し,自宅で別に勉強時間を積み重ねるようにしては効率良く学習していく工夫が必要になってくるでしょう。
以下の記事で,自宅で学べるプログラミング教材を紹介しているので参考にしてください↓
まとめ
以上,小学生のプログラミング教育が必修化された理由を中心に,中高での学びや教育現場での問題点や対策をまとめてきました。
将来の予測を行うのが困難な時代となり,AIにいくつかの職業をすでに奪われ始めていますが,そんな時だからこそ,人間にしかできないことがより価値を持つことになるわけです。
そんな時代で生き残るためには,コンピュータの仕組みを学び,AIの得意・不得意を見極めることが必要で,このことはいずれ,自分が他人よりも優れている強みが何かだったり,他社と比較して我が社の強みは何かなどを見出したりする能力に繋がっていきます。
そういった意味で,社会が今,何を必要としているのかに気付けるプログラミング教育を学ぶ意味は大いにあるわけです。
そもそも,あらゆるコンピューターはどこぞの人間がプログラミングして制御しているわけですから,AIが必要な部分には積極的な利用を惜しまず,創造性が必要な部分のみを人間が担当するという態度が重要です。
もちろん,こんなことを小学生が考えながら生活することにはなりませんが,今後の社会を担う子どもたちを導いてやるためにも周りの大人たちの責務は大きくなっています。
未来を見通せる大人たちが子どものために何ができるか考えるためにも,教育改革の進捗状況に今後も注意を払っていきましょう!
プログラミング教育に関する最新資料については,文部科学省の公表内容を参考にしてください。
最後までお読みいただきありがとうございました。