このテーマについては、いつかきちんと整理しておこうと思っていたのです。
世の中に「プログラミング教育」というワードが広がってきたのはいつごろからなのでしょうか? 少なくともみなさんんが小学生の頃はなかったはずです。
しかし、すでに小学校でも必修化されました。親が経験したことのない未知の教科です。いろいろ不安が広がります。
今回は、じっくりと「プログラミング教育」について考えてみましょう。
1.そもそもプログラミング教育って何だ?
私の世代(そうとう昔です)では、プログラミングと聞くと、プログラミング言語を駆使して自分でプログラムを書くことを意味しました。大学では、理系なら FORTRAN、文系ならCOBOLでプログラムを書けないと研究にならなかった時代です。自宅のPCでは、BASICを使ってゲームを作ったり、あるいは研究用のプログラムを書いたりしていましたね。何せパーソナルコンピューター黎明期でしたので、市販のアプリ(当時はソフトと呼んでいた)などろくに無い時代です。必要なものは自分で作るしかなかったのです。
そう聞いて共感される方は、私と同世代ですね。
そういう時代を過ごしていたもので、今でもエクセルを使っていると、すぐにVBAを組み込んだりマクロを組んだりして作業を簡略化したくなります。もうこれは癖のようなものです。
だから最初は、「学校でプログラミング教育? プログラマーでも養成するの?」と古典的な反応をしてしまいました。
ここで、文科省のHPから、文科省がプログラミング教育をどう定義づけているのか見てみます。
文科省のHPには、学習指導要領や資料が列挙されています。
しかしどうにもわかりにくい。いったいどうして文科省がプログラミング教育の導入をしようとしているのか、その意図・目的というものが見えてこないのです。
これは官庁の情報発信にありがちな特徴で、自分の意見というものを積極的に前へ出さないようにするのですね。何ででしょう?
しかし、その中に「未来の学びコンソーシアム」というのを見つけました。ここが旗振り役なのかな? さっそく調べてみましょう。
総務省のHPに飛びます。そこにはこうありました。
文部科学省、総務省、経済産業省が連携し、次期学習指導要領における「プログラミング的思考」などを育むプログラミング教育の実施に向けて、学校関係者や教育関連やIT関連の企業・ベンチャー、産業界と連携し、多様かつ優れたプログラミング教材の開発や企業等の協力による体験的プログラミング活動の実施等、学校におけるプログラミング教育を普及・推進してまいるため、「未来の学びコンソーシアム」を平成29年3月9日に設立しました。
なるほど。完全に旗振り役ですね。そもそもなぜ教育に経産省と総務省がからんできているのか? 何となく見えてきましたね。
その目的とは「将来不足するIT人材を育成する」ことである、とここにありました。「未来の学びコンソーシアム」の発表にはっきりとそう謳っています。
なぜプログラミング教育を必修化したのか・・・・ヨーロッパでは「IT力」が若者が労働市場に入るために必要不可欠な要素であると認識・・・・多くの国で学校教育のカリキュラムの一環としてプログラミングを導入・・・・日本では37万人ものIT人材が不足する・・・・今後、国際社会において「IT力」をめぐる競争が激化することが予測され、子供の頃からIT力を育成して裾野を広げておかなければ勝ち抜くことはできません。
大学において、産業界(&政府)の要望により教養教育より実務的な教育が重視されてきた流れの中に、小学校まで取り込まれようとしている、そういうことだと私は理解しました。
2.具体的に小学校で何を学ぶのか?
文科省の発表から、実際の指導例をいくつか拾い出してみます。
(1)自動車を走らせる
①自動車工場を見学する
②ぶつからない自動車はどんなものか話し合う
③プログラミングして自動車模型を走らせる
ざっくりいうとこんな授業です。
プログラミングの前に、簡単なフローチャートを考えるようです。
前を見る→ものがあるか→YES→止める
→NO→走らす
こんなフローチャートが黒板にありました。
さて、プログラミング言語は何と懐かしの「BASIC」です。まだ健在だったとは。使うPCは、「ichigoJam」という、基盤だけのシングルボードPCです。これは1500円ほどのようですね。
プログラムの入力は、あらかじめ先生が用意したプリント通りに入力します。
これで模型自動車が走る、とそいう授業でした。
なんだか面白そうですね。そういえば私の小学生時代にも、ゴム動力の自動車模型でどこまで走るか競争する授業があったのを思い出します。古いですねえ。その時一人だけモーターを仕込んで電池で動くように改造し、圧勝した生徒がいました。はい、私です。
何日も何時間もかけてこうした授業を行うわけです。今の小学生は実に羨ましいです。
しかしとても引っかかるのは、最後の部分です。「先生が配ったプリント通りに入力」してプログラミングをする。これに何の意味があるのか私にはよくわかりません。普通にフローチャートの仕組みとBASICを教えて、それでオリジナルのプログラムを考えさせたほうがはるかに勉強になると思うのですが。さらにせっかく「ichigoJam」といううってつけのボードがあるのなら、これを全員に配って自由に扱わせてほしいと思います。
(2)地域とつながる
①企業ラグビーチームについて調べる
②会いにいく
③チームのキャラクターを使った応援動画をつくる
プログラミングは、最後の動画づくりの部分です。「Scratch」を使います。この「Scratch」はプログラミング教育でよく使われますね。フローチャートをイメージさせる「命令の書かれたブロック」をマウスを使って積み上げると、画面上のキャラクターがその通りに動く、というものです。
地域の交流や調べ学習としてはなかなか良さそうですね。
ただし、最後のプログラミングだけ「取ってつけた」ような印象があります。これも、プログラミング教育をするつもりなら、自由にScratchを使わせてあげればいいのに、と思ってしまいます。
3.そもそもプログラミング教育は必要か?
ここまで読んでいただくともうお分かりのように、私は不要と思っています。プログラミングを学ぶには以下の要素が必要です。
〇必要性
〇自主性
つまり、必要に迫られて、自分で自由に工夫しながら考えるからこそ、プログラミングが身についてくると思うのです。また、小学生向きのプログラミング教材はいろいろありますが、私に言わせるとどれもこれも「親切」すぎます。生徒が自由な発想で試行錯誤する余地が奪われていると思います。
小学校の授業で学ぶのは本当の「プログラミング」ではないですね。焦って民間の「プログラミング教室」に通う必要はなさそうです。
4.プログラミング教育の意味
ここでは、きちんと分けて考えたいと思います。
(1)プログラミングを通じて論理的思考力を養う
これは順番が逆としか思えません。論理的思考力がなければ、プログラミングはできませんし、プログラミングで身につく程度の論理的思考力なら役立ちません。
算数・理科・社会・国語といった教科学習をきちんと行うことで、実践的な論理的思考力はちゃんと見につきます。
(2)プログラミングスキルを身に着ける
これは必要です。ただし、幼稚なプログラミングツールでキャラクターを動かせる程度のものはスキルにはなりません。
きちんと自分で必要なプログラムが組めるくらいでないとだめでしょう。ただしそのためには自由に扱えるPCが必須ですし、何より本人が「好き」でなければ難しいでしょうね。自分で作ったゲームアプリで稼ぐ、そうしたレベルなら有効です。ただし、将来の夢がゲーム開発者、そうした子供に育てたければの話です。
現状で、大学生以上に求められるものはこんなところでしょう。
◆「情報」科目で得点できる力・・・大学入試に必須です
◆ブラインドタッチ・・・これができないと話になりません。ただしマスターするのは簡単で、2週間も練習すれば身につきます。
◆エクセル関数・・・これも基本ですね。
◆ホームページ作成スキル・・・まずは、HTML・CSS・JavaScriptが使えることが必要です。
◆PC/ICTに関する基礎知識
あとは、JAVAなどのプログラミング言語もマスターすると幅が広がるのですが、文系に進むのか、理系に進むのかによって必要なレベルは異なりますし、プログラミング言語も多数ありますので、実際に研究室でつかわれているものを知らないと何ともいえません。
いずれにしても、中途半端な「プログラミング風教育」など小学生には不要であると考えます。
ちょうど英語の早期教育に似たものを感じます。
〇将来英語ができないと困る
〇英語が使える人材が社会で求められている
〇だから早くから学ばせないと手遅れになる
しかし、小学校で行われる英語教育で英語ができるようになりますか?
「英語は早期教育が大切」ということで、近所の英会話教室に通わせたところで、楽しく英語の歌を学んだり、簡単な会話程度では、「将来役立つ」英語にはなりません。
やるからにはきちんとしっかり学ばねばいけません。
教育DXについてはこちらにも書きました。