分かりやすい、丁寧な記事を心がけています。
パソコンをいじる赤ちゃんの画像です。

どうしてプログラミング教育が必修化されたのかを紐解いてみる。

どうしてプログラミング教育は必修化されるのか。

ニュースになったのは大分前のことですが、2020年から小学校でプログラミング教育が必修化されますね。
最近は子どもの習い事でも、プログラミングがランキングに上がってくるようになりました。
しかし、ただ単純に「プログラミングを学習させれば良い」と考えるのは早計かもしれません・・・
子どもたちに身につけさせたい”力”の本質を見間違えないように、一緒に考えていきましょう!

今回は、実際に開発者をしている筆者の目線から、
何故プログラミング教育が必修化されるのかを紐解いてみたいと思います。

そもそもプログラミング教育の必修化って・・・?

ポイントは3つあります。

①必修化とはいっても、教科になるわけでも評価されるわけでもない。
②プログラミングと聞いて想像されるように、パソコンやタブレットを使用して・・・というわけではない。
③プログラミング言語を覚えるというわけではない。

それぞれについて簡単に説明しておきます。

①必修化とはいっても、教科になるわけでも評価されるわけでもない。

端的にいってしまえば、「国語」「算数」などの他の教科の授業の中で、プログラムの流れを考えるような活動や取り組みをしましょうということです。
「プログラミング」をするわけではありません。

②プログラミングと聞いて想像されるように、パソコンやタブレットを使用して・・・というわけではない。

プログラミングから連想されるものとして、真っ先に思いつくのはパソコンやタブレット等だと思います。もちろんこれらの機器を使用した授業も考えられますが、必修化の内容をよく見てみると、機器がなくても行うことができるものだとされています。最近ではこのような手法を「アンプラグド教育」というようです。つまるところ、機器を使用しなくてもプログラムの流れを考えてみようというのがプログラミング教育の内容だといえるかと思います。

③プログラミング言語を覚えるというわけではない。

プログラミング言語と検索すると上位に出てくるような、「Python」「JavaScript」「Ruby」「PHP」などの言語を覚えるわけではありません。
というより、プログラミング言語は200種類程度あると言われています。それらを覚えようとしても到底無理なのは想像に難くないと思います。
わかりやすく置き換えると、大人だって「日本語」「英語」くらいまで覚えるので手一杯じゃないでしょうか。中には、それ以外の言語も分かるという方もいるでしょうが、一般的には上述の2言語なら・・・という方が多いと思います。
では何故、日本語や英語は大まかだとはしても理解できるのでしょうか。それは、学校で「国語」や「英語」の文法の授業があったからです。「読み方を教わっていれば、何となくは理解できる」ということですね。
プログラミング教育も同様です。プログラムの言語を覚えるのではなく、文法の学習が中心ということになります。

広告

プログラミング教育で身につけさせたい力とは?

①、②、③と簡単に説明してきましたが、共通していえるのは「プログラムの流れ(文法)を考えよう」ということです。つまり、「プログラミング的思考」を高めようということになります。さらに言いかえさせていただければ、「論理的思考力」ということになってくるかと思います。これは、前回の記事の「開発力」とは何か?で提示しています。

プログラミングをしていると、「もし〜なら」や「〜回繰り返す」などを打つことが多くあります。
いわゆる「if文」とか「for文/while文」と呼ばれるものですが、こういった考え方は基本的にどの言語でも共通しています。

プログラミング教育で大切なのは、if文やfor文/while文を覚えるというより、「もし〜なら」や「〜回繰り返す」といった思考を身につけるということです。

例えば算数を例にとって見てみましょう。
以下例題です。
「A君は2400円持っています。1回100円のクレーンゲームをやりました。このクレーンゲームでは、5回やると1回分無料になります。A君は合計で何回クレーンゲームをできましたか?」
単純に計算すると、

500円で6回分パターン:2400円 / 500円 = 4回あまり400円 → 6回分を4回できるので 6 * 4 = 24回
100円で1回分パターン:400円 / 100円 = 4回 → 1回分を4回できるので 1 * 4 = 4回
24回 + 4回 = 28回

となります。

これをプログラミング的思考で置き換えて考えてみましょう。(サンプルの言語としてPHPで書きます。)

$have_money = 2400; //最初の所持金は2400円です。
$answer = 0; //答えを入れる箱を用意(初期値は0とする)。
while($have_money >= 500){ //所持金が500円以上なら繰り返す。
$answer += 6; //この繰り返しにに入るたびに6を足し上げていく
$have_money -= 500; //500円使うのでこの繰り返しに入るたびに500円を所持金から引いていく。
} //ここまでの計算で$answerには24回が入っています。
while($have_money >= 100){ //次は所持金が100円以上なら繰り返す。
$answer += 1; //この繰り返しにに入るたびに1を足し上げていく
$have_money -= 100; //100円使うのでこの繰り返しに入るたびに100円を所持金から引いていく。
} //ここまでの計算で$answerには28回が入っています。
echo $answer; //最後に答えを表示して終了。

ここで重要なのは「//」の後ろに書いてある考え方です。
単純な計算でできる問題もプログラミング的思考では、手順に沿ってどのような作業をするのかを明確に意識し論理的に考える必要が出てきます。

このように物事を論理的に考える力こそ、プログラミング教育によって子ども達に身につけさせたい力なのだということを大人は正しく理解しておく必要があります。

「物事を論理的に考える力」をつけるために

それでは最後に、どのようにして「物事を論理的に考える力」をつけるのかを考えたいと思います。
まずは、そもそも何故子どもたちに論理的思考力が身につかないのでしょうか。
筆者は、「結果」にしか目が向かないからだと考えています。

実際、仕事では「結果」が出なければ、その過程は評価されません。
しかし、それを子どもにまで求めるのはどうなのでしょうか?

「過程よりも結果が全て」はあくまでも大人にとっての話であり、
子どもたちにとっては「過程があってこその結果」であることを周囲の大人たちが理解しましょう。

小学校の先生たちが行うプログラミング教育がどのようなものになるかは、正直始まってみないとわかりませんが、
今日からでも、周囲の大人たちが協力して、子どもの思考を伸ばすような問いかけ方をするように心がけることはできると思います。子どもたちが面白いと思えるような思考体験を提供できるといいですね。

筆者は、プログラミング教育がただのパソコンのお勉強にならないように願います。

以上。
yukilaboでした!

広告
パソコンをいじる赤ちゃんの画像です。
興味を持ったら是非!!
広告