文部科学省からのお達しがあり、2020年には小学校でプログラミング教育が必修化になりました。

小学校や、中学校ではプログラミング教育では何を教えたら良いのだろうか…。どうやって教えていったら良いのだろうか……。

そんな声もよく届くようになりました。

とある小学校の先生にプログラミング教育についてどのように教えていくのか何か具体的な対策はしているのかを聞いてみたところ

「私たちは何もやっていません。どうやって教えたら良いか分からないし、第一プログラミング教育がなぜ必要なのか分かっていない」

と声を荒げていました。

ここで私が一番伝えなきゃいけないなと思ったのはプログラミング教育がなぜ必要になるのかという点です。

プログラミング教育について

プログラミング教育を教員の皆さんは非常に難しく捉えています。その主な原因がこんな点でした。

  • プログラム言語を小学校から学ばせる意味があるのか?
  • プログラミングなんて習っていないし、教えられるとは到底思えない!
  • パソコンですらもうまく使いこなせないのに、教えられない!

私からすれば非常に難しく捉え過ぎだと思っています。

なぜかというとプログラミング教育=プログラム言語を教えることではないからです。

プログラミング教育がなぜ始まったのか?

そもそも、なぜプログラミング教育が始まることになったのか紹介しておきましょう。

それは2012年の安倍内閣がスタートしてから1年後、政府の成長戦略が打ち出された時のことです。

政府の成長戦略 産業競争力会議

プログラミング教育を小学校で学ばせる必要性について:義務教育段階でプログラミング教育等の情報教育を推進

その中に

「義務教育段階からのプログラミング教育等のIT教育を推進する」と明言されています。

2013年の時点からプログラミング教育が出ていて、それが実際に入ってくるようになったということですね。

プログラミング教育が小学校で必要な理由:これからの時代に必要な人材はプログラミング教育を行うことで増える

さらに第6回産業競争力会議で楽天株式会社の創業者でもある三木谷 浩史さんの提出した資料では、プログラミング教育がより具体的になって提案されていました。

現在はScratchを用いたプログラミング教育が多いですが、ここから始まったのですね。

Scratchを用いたの一文に注目です。プログラミング概念の早期教育と興味喚起と書いてあります。
プログラミング言語を教えるとは書いていない点に注意してください。

プログラミングはプログラム言語を教えることではない

プログラミング教育が小学校で必要な理由:フローチャートの利用と作成


プログラミングはプログラム言語を扱うことではありません。

勘違いしてはいけないポイントはコーディングです。

プログラム言語を使ってプログラムを書くこと。これはコーディングといいます。

プログラミングはあくまでも

  • 何が悪いのか
  • どんな風に動いているのか
  • なぜこうなるのか?
  • どうすれば自分の思い通りに(もしくは良い方向に)動いてくれるのか
  • 手順の中で一番最適なやり方はどれか

このように思考を巡らせて、発展・改善するための手法なのです。

だからこそ、この一連の流れをちゃんと図式化して表現できることのほうが重要です。

なので、フローチャートがよくプログラミング教育では使われます。

フローチャートは思考を巡らせるのにピッタリなのです。

プログラム言語は教えなくていい

プログラミング教育:コンピュータを利用したプログラム言語は教えなくて良い

断言しても良いですが、プログラム言語は教えなくて良いです。

特に小学校では必要ありません。

教員の皆さんにはここが本当に負担の原因になっていると思います。

もう一度言いますが、プログラム言語は教えなくて大丈夫です。

なぜ大丈夫かというと、これから先の世の中でも、全員がプログラマーになったり、ロボットに携わる人ばかりではないからです。

プログラム言語なんてこれから生きる上での手段の一つであって、ほとんどの人は全く使いません。

プログラム言語は興味ない子は本当に興味ないし、面白いと思う子は本当に面白いと思う玄人好みの分野です。
ロボットだって同じです。大多数の女の子はロボットにあまり興味を示してくれません。

プログラミング教育の目的=次世代リーダー育成

じゃあ、なぜ文部科学省はこれほどまでプログラミング教育を推しているかというと……

自分で物事を考えられるリーダーを作るためです

プログラミング教育が小学校で必要な理由:「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。

これは「プログラミング的思考などを育むこと」という一文になって登場しています。

小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)

私はプログラミング教育とあえて表現していますが、この授業は「次世代リーダー育成」だと思っています。今までは学校の先生の言われた通りにして、テストで100点をとって……。それが成績優秀な子でした。

でも、これからの社会は予測不可能なことばかりが起こりうる。

だから、自分で必要な情報を得て、自分で考え、自分で答えを出して、実行していくタイプが今後は成績優秀になります。

課題を発見し、改善する手法としてプログラミングを使う

東日本大震災でも騒がれましたが、今は予測不可能な事態が起こりやすくなっています。

さらに、2045年問題もあり、今ある単調な仕事はほとんどロボットに変わってしまうと言われています。

技術的特異点(ぎじゅつてきとくいてん、英語:Technological Singularity)、またはシンギュラリティSingularity)とは、人工知能が人間の能力を超えることで起こる出来事[1][2]。人類が人工知能と融合し、人類の進化が特異点(成長曲線が無限大になる点)に到達すること
出典:Wikipedia

このような予測不可能な事態に対応するには、社会的価値を自分で創造し、新たな課題の発見、改善を自分自ら行っていくことが重要になっていくのです。

この自ら課題を発見し、新しい価値を創造し、改善を行っていく……。これを教えるのにプログラミングというものがピッタリなのかと思います。

近年のグローバル化や急速な情報化の進展により、子供たちを取り巻く環境が大きく変化しており、子供たち一人一人が自らの可能性を最大限に発揮するためには、主体的に考え、他者と協働しながら新たな価値の創造に挑むとともに、新たな問題の発見・解決に取り組むことが求められています。
また、日常生活における営みを、ICTを通じて行うことが当たり前になっている現代社会において、子供たちにはICTを受け身で捉えるのではなく、手段として積極的に活用していくことが求められています。
出典:文部科学省(文科省)教育の情報化加速化プラン~ICTを活用した「次世代の学校・地域」の創生~

文部科学省ではICTの推進こそしているものの、プログラム言語を教えたい、ロボットを使えるようにしたいとは書いていません。

※もちろん、それらの狙いもゼロではないのでしょうが…。メインではなさそうです。

プログラミング的思考を学びたい場合、こちらをどうぞ。
▶論理的思考、プログラミング的思考とは?学校の先生に向けてどこよりも分かりやすく解説

プログラミング教育で大切なことは先生自らがチャレンジすること

プログラミング教育を教える上で大切なのは科目ではなく、その身で体験すること


プログラミング教育はリーダー育成です。教える時に大切なことは、体験しなければ教えたとしても心に響かなくなってしまいます。

だから、学校の先生(教員)がリーダーとなって、いろんな体験を率先して行い、見本になることが重要なのではないかと思います。

私たちのまちあるきプログラミングは今回お話したプログラミング教育の精神にのっとって作っています。
だから情報機器を使わなくても良い、まちを歩いて気付きを得るのです。

まちあるきプログラミングには親子や、教員だけでなく、塾の先生も参加してくれています。ありがとうございます。

こんな風にたくさんの人がチャレンジ精神にあふれ、これからの社会に対応しようとする姿こそがプログラミング教育で本当に教えたいことなのではないか…そう思えてなりません。

まとめ

  • プログラミング教育=プログラム言語を教えることではない
  • フローチャートは思考を巡らせるのにピッタリ
  • プログラム言語は教えなくて大丈夫(小学校では特に)
  • プログラミング教育は「次世代リーダー教育」だ!
  • 教員は子供たちの見本になってほしい

今回のまとめはそんなところでしょうか。

▼論理的思考とプログラミング的思考は何が違うのかもまとめました▼
論理的思考とプログラミング的思考を学校の先生に向けてどこよりも分かりやすく解説