見出し画像

アルゴリズムとは『段取り』です。

 日本でも『プログラミング教育』の波が押し寄せています。一足先に、2020年度より小学校でプログラミング教育がスタートし、2021年度からは中学校、2022年度つまり今年からは、高校でプログラミング教育が必修になりました。プログラミングというと、アプリやゲームを作るプログラマーだけに必要な技術だと思う人もいるかもしれませんが、プログラマー以外にもプログラミングの考え方は必要です。今後はプログラミング以外の仕事に就く人も、高校で必ずプログラミングを学ぶことになります。また、プログラミングの必修化に伴って”大学入試の科目としても検討”されています。

 高校では、共通必履修科目『情報I』が新設され、プログラミングのほかにも、ネットワークや情報セキュリティ、データベースの基礎などについて学習することが定められています。プログラミング教育を必修にした目的は、子どもたちがこれからの時代を生き抜くために、情報や情報技術を主体的に活用できる力(=情報活用能力)を身に付けられるようにするためです。

 もう少し具体的な理由はこのようなことだそうです。①IT化やグローバル化が急激に進み、将来の予測が難しくなっている現代では、学校生活や仕事、家庭生活の中で、思いもよらない問題が起こることも少なくありません。②そうした予測困難な問題は、過去の経験をもとに解決することが難しくなっています。③そこで、コンピュータなどの情報機器やITサービスと、それらを使って得られた情報を適切に活用して、問題解決することが求められているのです。

 ①②は同意できますが、③については疑問が残ります。コンピュータやIT技術が役に立つことは判っていますが、コンピュータを使ったからといって”予測困難な問題の解決”は出来ません。私が考えるプログラミング教育の本質は、”アルゴリズム”の学習にあると思っています。

 アルゴリズム(algorithm)とは、”計算可能”なことを計算する、形式的な手続きのこと、あるいはそれを形式的に表現したもの”と説明されていますが、要するにアルゴリズムは『段取り』です。アルゴリズムは、9世紀前半にアッバース朝時代のバグダードで活躍したイスラム科学の学者であるアル=フワーリズミーが語源だと言われています。

アル=フワーリズミーの切手(旧ソ連)

 何かを計算するプログラムでは、その問題を解く手順を単純な計算や操作の組み合わせとして明確に定義します。アルゴリズムは、この時の処理手順のことです。その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならないことは当然です。

 アルゴリズムはプログラミングだけのものではありません。どんな仕事をするにしても、行き当たりばったりでは仕事の効率が悪くなります。しかし、仕事の手順が正しく整理されていれば、効率的な仕事ができます。プログラミング教育の成果が出るのは、もう少し先の未来になります。10年後が楽しみです。

この記事が気に入ったらサポートをしてみませんか?