プログラミング教育で賢い子を育てるサイト

子供向けプログラミング教育とは? その意味は -なぜプログラミング?

abekkan_LL.jpg

ようこそ!
「四児の父・あべっかん」のブログです。
子どもの家庭教育を中心に役立つネタを書いています。

プログラミング教育なんて、一般人や子どもには必要ないんじゃないの?意味はあるの? と思っている人もいるでしょう。そもそも子供向けプログラミング教育とは何をやるの? と疑問に思っている人もいるでしょう。

たしかにプログラミングはプログラマーがやることであって、一般人はプログラムが書けなくても日常生活で特に困ることはありません。プログラムを書けたからといってみんなが便利になるわけどもありません。では何のためにプログラミング教育をやるのでしょうか? 本当にプログラミングを学ぶ必要があるのでしょうか? ここではプログラミングを学習する意味と意義を、例を挙げて説明してみましょう。

学校でプログラミングの学習が始まる

2020年、東京オリンピックの年から、学校教育でプログラミングの学習が必修化されます。

「プログラミングってプログラマーやパソコンおたくがするものでしょ!なにも全員にやらせなくたっていいじゃないか」

と思った人もいるのではないでしょうか。たしかに、みんながプログラマーになるわけではないですし、プログラマーっていうのはそれほど儲かる職業でもありません。むしろブラックな職場もあります。では、どうして学校でプログラミンングなんて教えようとするのでしょうか?

子どもがプログラミングを学習することで何が得られるのか。その答えはいくつかあります。ここでは、その中のいくつかを具体例で説明します。

コンピューターには正確な指示をしないと伝わらない

「のどが渇いたー」と言うと、気がきく部下はコップに水やお茶やビール(?)を入れて持って来てくれるかもしれません。けれども、ロボットやコンピューターに指令を出すときには「のどが渇いたー」だけでは伝わりません。そもそも「のどが渇いた」だけでは指令になっていませんから。

「水を持って来い」でも不十分です。ロボットはバケツに水を汲んでくるかもしれません。あるいは練習中に倒れたラグビー部員のように、ヤカンに入れた水を持って来て頭からかけられてしまうかもしれません

では「飲み物を持って来い」だとどうでしょうか。これならよさそうな気もします。けれどももしかしたら2リットルのペットボトルをそのまま持ってくるかもしれません。あるいは「カレーは飲み物だ」とロボットが誰かに聞かされていてカレーを持ってくるかも。それはそれで面白いのですが。

意図したことを伝えるためには、「コップに入れた1杯の飲料水を持って来い」のように、ものと量を正確に指定する必要があります。

プログラミングをするときには、このようにものごとを正確にコンピューターに伝えなくてはいけません。判断をさせるときには判断基準も明確にします。ものごとを正確に伝えるトレーニングになるのでプログラミングは子供にとってよい学習になります。

処理の流れを想定外にならないように考える

次に自動販売機のお釣りを出すためのプログラミングを考えてみましょう。

110円のジュースを買おうとして1000円札を入れます。もしお釣りが10円玉で89枚出てきたらどうでしょうか。怒って苦情を言いますよね。私の場合だと写真を撮ってブログのネタにしてしまいますが(笑)。

では100円玉が8枚と10円玉9枚だったらどうでしょうか。「なんだよ、500円玉と50円玉はないのかよ」と腹を立てるでしょうか。私はこのほうが怒ります。「なんだよ、こんな中途半端じゃブログのネタにもならないよ」って!

プログラミングをするときは、100円玉が何枚以下になったら「釣り銭切れ」にして1000円札を受けつけないようにする、とかいうことも決めておかなくてはいけません。

「そうか、そういう事態も考えておかなくてはいけないのか!」

というように処理の流れを考えることも子供にとってよい学習になります。プログラミングをするときに、ユーザーが想定外の操作をしてバグが発覚した、ということがよくあります。想定外が無いようにプロのプログラマーが一生懸命考えているにも関わらず、です。

処理の流れを考えて漏れがないかを確認する。こういった学習をしておけば将来いろいろな局面で役に立つことでしょう。「想定外でした」という言い訳も減るのではないでしょうか。

作りっぱなしではなく、テストで動作を確認する

プログラムにはバグがつきものです。ベテランのプログラマーが作ったプログラムでも多くのバグがあるものです。システム開発が行われるときは、プログラマーが書いたプログラムにはバグは必ずあるものとして動作テストを行ってバグを発見します。

そして発見したバグの数がある程度多く、もうこれ以上でてこないと思われた時点でテストに合格したものとして認定されます。もしバグが1つも発見できないと、テストが甘かったのではないかと言われます。それほど、バグがあるのが当たり前だとされているのです。

プログラムを書くだけではなく、きちんと動作確認テストを行うこと。こういった経験をすることで、作業をやりっぱなしにせず、結果をきちんと確認して正しくなるまで見届けるという責任感が育つのです。

まとめ

これらの例のように、子供がプログラミングの学習をすることの目的はプログラミングで必要となる考え方を身に着けることです。プログラムを書くことが目的ではありません。プログラマーを育成することでもありません。

まとめると以下の3つが子供のプログラミング教育の意義だと私は考えています。

  • ものごとを正確に伝えるトレーニングになる
  • 処理の流れを考えて漏れがないかを確認することで思考力が育つ
  • 正しい結果となることまで見届けることで責任感が育つ

子供向けのプログラミング教育の意義をわかっていただけたでしょうか。

About あべっかん

私には4人の子どもがいます。子どもの教育について体験したこと、考えたことをこのサイトで伝えます。 また、私はITエンジニアで、@ITというサイトにコラムを書いています。このサイトでは特にプログラミング教育についても伝えていきます。 学校でプログラミング教育が導入されることになりました。 子どもにプログラミングを教えることは何のためになるのか? をこのサイトで伝えます。 そもそも親世代は、プログラマーを目指した人以外はプログラミングのことを知らないと思います。そんなかたに、プログラミングってこういうものなんだよ、やってみると面白いんだよ、というのを体験して知ってもらいたい、と私は考えています。 リンクやシェアは大歓迎です。いいネと思った記事がありましたらどんどんシェアしてください!
Return Top