小学校でプログラミング教育は必要か

2023年9月6日

2020年度からプログラミングが小学校の必須科目になる、と聞いて以前のブログ記事にその目的と効果などを考えて記した。その後、小中高校で順次始まる新しい学習指導要領に関する記事を読むにつけ、プログラミング教育は「本当に小学校から始める必要があるのか」疑問に思えてきた。
新しい学習指導要領では英語学習が強化されるようだ。
小学校5、6年生の英語は週2コマ分(1コマ45分)。小学3、4年でも年間35コマ(週1コマ)分の英語学習が始まるという。
これに関して、「本当に英語教育は小学校から始める必要があるのか」という議論があるようで、例えばネットで検索しただけでも、賛否両論それぞれになるほどと思わせる理由が記されている。
英語教育に熱が入る理由は明白である。グローバル化が進み、日本の企業でも英語を公用語とする試みがなされるなど、業界、職種によっては英語が必須の部門が確実に増えていると推測できる。
小学校は基礎学力を育成する場だと思うが、時代の変化と、社会が要請する知識やスキルの変化に伴って教育内容が変化するのは、ある程度仕方がないことである。
しかし、問題は小学校全体の授業時間数の増大にある。例えば、2016年8月2日付け朝日新聞デジタルの記事によると、「5、6年生より国語などの時数が多い4年生も含め、年間標準授業時数(最低限の授業時間)は1015コマ分、週29コマ相当になる。一方で児童の負担などから週の授業時間は今の28コマが限界とされる」とある。
私は教育の専門家ではないのでこれについて論評できないが、既に授業時間の限界を超えるところまできているようだ。このような事情を考えると、英語に加えてさらにプログラミングまで、本当に小学校から教える必要があるのか、・・・考えてしまう。
小学校から英語を教えることに反対する人たちの意見の中にはプログラミング教育にもあてはまりそうなものが幾つかある。
小学校では、英語の専門家でない教師が教えることになるため、そこにはおのずと限界がある(ときには間違ったことを教える懸念もある)。
英語で会話をするためには、結局のところ文法と語彙を重視した教育が必要になる。外国語を始めるのは、ある程度認知能力が発達して母語の力もついてきた中学生の時期とすべきである。・・・などなど。
英語教育における課題については、例えば、鳥飼玖美子「英語教育の危機」に詳しい(こちらを参照されたい)。
プログラミング教育は、少し想像してみれば明らかなように、プログラミング教育だけでは終わらない。
作ったプログラムを実行するためには、コンパイラーないしはインタープリターが必要になる。さらに、OSやミドルウェアなどの実行環境も必要になる。OS一つとっても、Windows、MacOS、Linuxなどの選択肢がある。さらに、実行環境を実機上に作るのか、クラウド上の仮想環境に構築するのか、などの選択肢がある。
つまり、これらのことも前提条件として知っておかないと教育できない(子供たちから聞かれる可能性がある)。とりあえず、開発環境や実行環境には目をつぶるにしても、プログラムには厳密な文法がある(言語によってはデータ型の定義などが曖昧なものもあるが)。さらに、文法では規定されていないが、慣習的なルールみたいなものもある。
例えば、名前(ラベル)の付け方はそれぞれの言語で慣習的なルールがあったりする。プログラミング言語には、手続き型言語やオブジェクト指向言語、関数型などがあるが、これらの概念を小学生が理解できるのだろうか?
このように、プログラミングを教育するためには、その背景にあるコンピューターの基礎知識がどうしても必要になってくる。
このようなことを専門家でない教師が教えるとしたら、かなり難儀であることは想像に難くない。いや、そもそもこのようなことを小学生に教える前に、日本語能力や概念を理解する能力を向上させることが重要ではないか。
・・・とここまで書いてきて、小学校のプログラミング教育は、我々IT業界の人間が想定しているものとは異なる、という趣旨の記事に出会った。
実際、文部科学省のWebサイトの説明を読むとそのようなことが書かれている。小学校で教えるのは、IT業界の人間が考えるプログラミング教育ではなく、「プログラミング的思考」だと記されている。
また、「プログラミング的思考」には、各教科等で育まれる論理的・創造的な思考力が大きく関係している、とも書かれている。
そうなると、「プログラミング的思考」とはいったい何だろうか? という疑問が湧いてくる。
手続き型言語の設計で使う「フローチャートのようなもの」を想定しているのだろうか?
そうだとすると、これは演繹法と同じ類の思考法であり、論理的思考法のなかの1形態だと考えられる。フローチャートのようなシーケンシャルな思考法は、それはそれで重要なのかもしれないが、私たちは実生活の中で、もっと複雑な手続きを行っている。
例えば、料理がそれである。
料理を作るとき、私たちは材料をそろえて手順通りに調理を進める(手順通りに調理しないと失敗することがある)。
トマトのスパゲッティを調理する場面を考えてみよう。
水を沸かしてスパゲッティを茹でる。茹でている間に、ニンニクを刻み、トマトを刻み、そして炒める・・・・
調理手順は必ずしもシーケンシャルではない。スパゲッティが茹で上がるまでに他の調理を進める。手慣れた人なら、その間に別の料理(例えばサラダ)を作ることも可能だろう。
つまり、私たちは複数の作業を並列して進めることができる。作業を並列に進めることで効率的に調理ができる(時間を有効に使える)わけである。
これはコンピューターでいえば並列処理である。
このように考えると、「プログラミング的思考」などという新しい概念を持ち出すよりも、料理の手順を子供たちが工夫して考えるような教育を行なった方が、はるかに有益で実用的な気がしてくるのである。
(スパゲッティを例にあげたのは、プログラムのソースコードと相性が良い、・・・という冗句ではない。念のため。)
その後の調査などを含めた記事はこちら

2018年6月追記
6月24日の読売新聞デジタルによれば、「5割以上の区市町村教育委員会が、プログラミング教育の準備を始めていないことが、文部科学省の委託調査でわかった」そうだ。
「調査は、文科省の委託を受けた調査会社が2018年2~3月、全国の教委を対象に実施。約4割にあたる722区市町村教委が回答した。
各教委の必修化に向けた取り組み状況を4段階に分類したところ、「特に取り組みをしていない」が57%で最も多く、「教委で担当者は決めた」「教員研修などを実施」が各13%、「授業を実施」が16%だった。」


雑感
「雑感」のINDEX

e-雑感

Posted by kondo