知ってほしいコト

HOME | 知ってほしいコト | プログラミングとは?

プログラミングとは?

プログラミングとは?

2020年度から小学校でプログラミング教育が必修化

2020年度から小学校でプログラミング教育が必修化されることが決まり、全国でもその整備が進められています。

プログラミング教育は、先生や学校だけで考えるものではなく、教育委員会・行政・企業からの支援など協力しながら、教育に関わる全ての人たちで子供たちの将来ために考えていかなければならないものです。

文部科学省が発表したプログラミング教育とは「プログラミングそのもののテクニックを学ぶのではなく、論理的思考や問題解決能力のアップのためにプログラミング的思考を養う」ことを目的としています。

また、プログラミング教育についての具体的な教育方法は、どの教科で実施するか、どれぐらいの時間をかけて教育するか、どういう内容で教えるかなど、各学校の裁量に任されています


 

プログラミング的思考とは?

そもそもプログラミング的思考とはどのようなものでしょうか。

プログラミングを行う際に必要な要素として「シーケンス」と「アルゴリズム」というものがあります。

シーケンスとは「ものの手順や処理の順序」を示します。そして、アルゴリズムとは「解を出すための手法」を示します。

例えば「カレーを作る」動作で考えてみましょう。


カレーをつくるためのシーケンス

 

 
 
 
 
まず、カレーを作る手順としては
 

①野菜を切る

②野菜と肉を炒める

③煮込む

④ルーを入れる
 

のような流れになるかと思います。

このように、目的(カレーを作る)に必要な動作の手順を上から順に1つ1つプログラム(動作)を並べていくことが「シーケンス」になります。


カレーをつくる中でのアルゴリズム

一方、アルゴリズムは、問題を解決するための方法や手順、つまり「 答えを導き出すためのテクニック」になります。 
  
例えば、「にんじんをいちょう切りする」という問題があったとします。 
  
おそらく、ほとんどの方は 
  

①ニンジンを縦に切って半分にする(半円)
②半分にしたニンジンを更に縦に切って半分にする(1/4円)
③横に切ってまとめていちょうの形にする

という順番で行うのではないでしょうか。 
  
これは1つの方法で他にも方法はあります。 
  
例えば 
  

①ニンジンを縦に切って半分にする(半円)
②半分にしたニンジンを横に切って1つ1つ半円の形にする
③半円になった小さなニンジンを1つ1ついちょうの形にする


という方法です。 
  
この方法でも結果は同じですが、圧倒的に前者の方が早く解決します。 
  
このような  答えを導き出すためのテクニックが「アルゴリズム」 です。


 

子どもたちにとって必要なのは?

プログラミング的思考を養うにはシーケンス・アルゴリズムのどちらでも学ぶ事が可能ですが、「シーケンス」を重視した方が良いという方もいれば、「アルゴリズム」が重要だという考えの方もいます。


これは、どちらが正しいと断言できるものではありません。

なぜなら、人それぞれの実績や経験から生まれる考えだからです。

私たちは、約30年にわたりシステム開発会社として様々なシステムを開発し、お客様の要望や問題を解決してきました。また、京都市教育委員会主催のプログラミング教室で6年間、延べ200名近い小学生に対してプログラミング教育を行った経験もあります。

その実績と経験から私たちは、小学生の段階でプログラミング的思考を養うのであれば「シーケンスだけでも充分である」と考えています。

理由としては「アルゴリズム」というものはとても難しく複雑で、問題の内容によっては、専門家でもそれを理解してプログラミングで実現することが難しい場合もあります。

ましてや小学生となると、アルゴリズムを理解させるにはハードルも高く、教え方によっては間違った考え方を身に付ける恐れもあります。

また、シーケンスだけでも十分という理由には、「完成した結果をしっかり想像から分析し理解するプロセス」があるからです。

順序立てて考えるというプロセスを理解せずに、行き当たりばったりでなんとなく完成した結果だけが得られたのでは、論理的思考や問題解決能力が身に付いたとは言えません。


 

プログラミングで学ぶ大切なこと

実際にシステムやアプリを開発する際に、一番最初に必要とされるものが「 仕様」というものです。


「こんなものが作りたい!」という希望(問題)から、頭の中でどのような仕組み(仕様)で作り上げるかを考えた上で、プログラミングを行い完成させます。

先にもお話したように、プログラミング的思考や問題解決能力というのは、希望(問題)⇒仕組み(仕様)⇒プログラミング(結果)の全てのプロセスを通じて得られるもので、「プログラミング」と呼ばれる最後の部分だけで身に付くものではありません。

希望(問題)から少しずつ必要な部分を考え、それを結果に結びつけるプロセスが「論理的思考」であり、ぼやっとした希望(問題)からプログラミングによって形に変わったことが、「問題解決力」です。

これら全てのプロセスがプログラミング教育には必要で、これらを通して学べる事が小学生に求められるプログラミング教育であり、プログラミングを学ぶときに大切な事であると私たちは考えています。