seegeのまとめサイト

もっと早く教えてくれよって思った内容を書いていきたいと思います。

2020年度 小学校でプログラミングに興味を持ってもらえるのか?

2020年度から、小学校でプログラミング教育が実施されるということで何年か前から報道されています。

f:id:seege:20200201035624p:plain

なぜ小学校にプログラミング教育を導入するのか ?

なぜ、小学校でプログラミング教育を行うのか?この点が気になったので、文部科学省が発行している、「小学校プログラミング教育の手引(第二版)」を読んでみました。

一番最初に、僕の知りたかったことがタイトルになって書かれていました。
僕は、以下のように解釈しました。

コンピュータは家電・自動車と人々の生活の様々な場面で活用されています。コンピュータを効果的に活用していくためには、仕組みを知ることが重要です。プログラミングにより、コンピュータの仕組みを知ることができます。そしてプログラミングにより子供たちの可能性を発掘することにも繋がります。諸外国でも初等教育の段階からプログラミング教育を導入してるので日本でも導入します。

色々と書かれていましたが結局は最後に書かれていた、「諸外国でも初等教育の段階からプログラミング教育を導入している」という点に尽きるのかな?って印象を受けました。

日本で、GAFAGoogleAmazonFacebookApple)という世界的な企業を生み出すような起業家が生まれなくなっています。背景には日本の教育システムが確かにあると思います。良い学校を出て、大企業や公務員になる。これが日本人のエリートコースでした。そのため、教育システムもエリートコースに沿ったものになっていました。

もう一つ、日本ではコンピュータに対して苦手意識を持つ人が多いです。特に高齢になればなるほど多い傾向があるように思います。

今の子供達は生まれた時からスマホタブレットに触れていますので、一昔前のテレビと同じような感覚で使えるようになっています。しかし、高齢の方はパソコンは難しいものだというイメージが浸透しているので、どうしても情報機器に対して苦手意識を持ってしまいます。

そういう意味で、子供の頃からコンピュータの仕組みを知りプログラミングで身近に感じられるようになれば、苦手意識は持たなくなります。そして、プログラミングの楽しさを感じてもらえれば、GAFAを生み出したような世界的な起業家が日本で誕生してくれるのでは?と考えたのでしょう。

rmiraino-manabi.jp

プログラミングに興味を持ってもらえるのか?

しかし、重要なのは、興味ともって、もらえるかどうか?ということです。

僕が子供の頃ですが、小学校の頃の勉強は楽しかったけど、中学に入ると楽しくなくなりました。

これは中学では覚えることばかりで、どういう場面で使えるのかを教えてくれなくなったことで興味がもてなかったんですね。あと公式がどういう理屈で出来上がったのか?という点も授業では説明してもらえなかったので、僕は授業は聞かなくなり、公式の理屈ばかりを自分で追及していました。

顕著だったのは数学です。小学校の算数が数学に変わると、公式主体の授業に変わりました。「因数分解をしなさい」「連立方程式を解きなさい」「xxxを証明しなさい」

何に使えるのかもわからず、したくもないことをさせられ、仕組みも教えてくれません。

以下は僕が中学生の頃に習った展開公式です。

f:id:seege:20200202190206p:plain
この公式に何の意味があるのか、わかりませんでした。

例えばAが1、Bが2だとします。

展開公式で展開して計算するより先に以下のように計算した方が早いはずです。

A = 1

B = 2

1+2=3 

3の二乗 = 9

AとBを足して二乗すれば9という答えが直ぐに出るんです。何故、AとBに分けたまま計算する必要が理解できませんでした。

百歩譲って分けたまま計算するとして何故、公式のようになるのか?という理屈もわかりませんでした。

下図のような感じで説明してくれると、まだ理解できます。

f:id:seege:20200202190241p:plain

教え方次第で興味が持てなくなるんですね。公式を覚えなさい的に教わったことで数学に対して苦手意識を持った子供が一気に増えたはずです。

高校に入るためには、この公式を覚えなさい。つまり、中学に入ると「高校受験」のための授業に変わってしまったのです。

受験のための授業は高校になっても続きます。

中学・高校の6年間で勉強は楽しくないことを叩きこまれました。
日本の教育システムは、良い大学に進学し、良い就職先に就職するのが目的ですから、学ぶ楽しさなんて関係ありません。無駄を省いて受験に必要な知識をとにかく詰め込む。学校の授業だけでは足りないので塾や予備校にまで通う。

その結果、日本では同じような人間が量産されます。これでは、世界的な起業家が生まれるとは思えないです。 

プログラミングを教えるって大変です。

例えば「A = A + B 」という式がプログラミングでは使われます。

数学だけをやっていると左辺がA、右辺がA + B ?成立するはずがないって思ってしまいますよね。

プログラムの世界では、=(イコール)の意味が以下の二種類あります。

代入演算子の場合の=は、左辺に右辺の値を代入するという意味になりますし、比較演算子の場合には左辺と右辺が同じか?という意味になります。このため、同じA=A+Bでも=を比較演算子とするか、代入演算子とするかで意味が違ってくるんです。

こんなことをプログラミング教育で、いきなり教えても興味なんてもってもらえません。

先程の展開公式の例と同じことになってしまいます。

 

僕が、一番最初に出会ったプログラグは以下のものです。
BASICという言語で、その時は以下のようなプログラムが紹介されていたと記憶してます。(少し分かりやすくするために、文法を変えています)

f:id:seege:20200201044329p:plain

プログラムの内容を説明すると・・・

Aに1、Bに1を代入しAとBを足して計算結果をCに代入して画面にCの内容を表示するというものです。

たった、これだけのことですから、電卓で計算した方が早いです。わざわざ高価なパソコンを買って行うことではありません。

しかし、パソコンに自分が指示したことを実行させることができるという点が凄く面白く感じ、興味を持ちました。

これが、僕とパソコンとの最初の出会いでした。

その後、BASIC言語は進化します。

有給休暇で会社を休んだ時に、書店に行ってプログラミング関係の本を見ていました。

この頃は、C言語を主に使っていました。

僕がC言語を学び始めたころは、C言語といえば以下の本がバイブルでした。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

 

Visual Basicの衝撃

C言語に関する本で面白そうなものがないかと眺めていると、Visual BASICという文字が入ったタイトルの本が目に止まりました。(書籍の名前を忘れてしまいました)手に取り読んでみると、そこには、これまでと全く異なるプログラミングの手順が書かれてありました。

今でいうオブジェクトト指向のプログラミングです。

僕が使っていたC言語もBASICもテキストベースのツールでした。

何をするにも自分でコードを打ち込み作り上げないといけません。

しかし、Visual Basicはマウスでコントロールという部品をフォームという枠内にドラック&ドロップで配置するだけです。配置した部品の位置や大きさもマウス操作だけで変更でき、1番驚いたのがイベントという考え方でした。マウスがクリックされたといった処理は割り込み処理を自分で書かないといけなかったのですが、Visual Basicはイベントという形で処理を作ってくれていて、例えばマウスがクリックされたら、イベント処理が呼び出されるところまでは出来上がっていて、その後の処理だけを追加してあげれば良いのです。部品の色などもプロパティという属性情報をコード上からや開発ツール上のプロパティウィンドウから変更するだけで良いのです。まさにVisual、視覚的なBASICでした。その本を買って海岸に寝転びながら読みました。読むだけで実際に操作することがイメージできます。これまでのプログラミング言語とは違う次元のものとしか思えませんでした。

次の日、早速、Visual Basicの見積もりを取り注文しました。何日かして納品された時の嬉しさは今でも覚えています。

自分が使用していたパソコンにインストールし起動しました。本は有給の日に海岸で一気に読み終えていたので使い方はほぼ頭に入ってました。プログラミング作業が画期的に早くなりました。これまでC言語でコーディングしていた作業は何だったのだろう?と無駄な時間を費やしていたように感じられました。

僕は、これまで、Z80という一斉を風靡したCPUボードをパソコンに変えようと考えていました。そして、基本となる制御プログラムをVisual Basicで書いてやろうと決めていました。

結局、Visual Basicの実行方式では処理が遅すぎて使い物にならない事がわかり断念しました。

話が横道にそれてしまいました。

プログラミングに限りませんが、興味が持てないことを学ぶことって苦手意識を持たせる可能性が高いと思います。いきなりプログラミング教育だと実施した場合、興味を持ってくれる子もいるとは思いますが、興味を持つどころか苦手意識を持ってしまい、情報端末にまで苦手意識を持たせてしまう子も出てくる気がします。義務教育は教えないといけないことが山ほどあり、そこに更にプログラミング教育を組み込むということは時間が限られていることもあり当然、何かを削らないといけなくなります。プログラミング教育にも十分な時間をかけることはできないと思いますので、どうしても妥協が生じるはずです。働き方改革だと教える側の時間も制限されるので準備も追いつかないのではないかと思います。

結果、中途半端な教育になってしまい、狙い通りの結果に繋がるのかという点が疑問です。起業家が育って欲しいなら受験中心のカリキュラムも変える必要があると思うんですね。正直、小学校でのプログラミング教育については、「???」しか出てきません。