【会長コラム】プログラミングパラダイムの変化と教育

Cover Image for 【会長コラム】プログラミングパラダイムの変化と教育

一般の方は聞き慣れないと思いますが「プログラミングパラダイム」という言葉があります。プログラミングにおける「模範」であり、プログラミングをするための考え方、物事の捉え方を示すものです。プログラミング言語の「分類」であると考えるとわかりやすいかもしれません。

Wikipediaで「プログラミングパラダイム」を調べると、実に20種類以上もの例が挙げられています。いくつかの概念は抽象的で、いくつかは包含関係にあるので、それぞれが厳密に独立しているわけではありません。また、プログラミング言語のC++のように、複数のパラダイムに対応するように設計された、マルチパラダイムプログラミング言語もあります。「手続き型プログラミング」「関数型プログラミング」「オブジェクト指向プログラミング」が、数あるパラダイムの中でも代表的で、広く普及しているものになります。

順次、分岐や繰り返しによる手続き型(命令型)プログラミング

手続き型は、プログラミングという言葉を思い浮かべたときに、一番最初に想起されるパラダイムです。大分類としては命令型プログラミングに分類されるものでもあります。この命令は具体的にはハードウェアに対する命令です。プログラミング言語からハードウェアに対して直接命令を送っているイメージなので、ハードウェアの動作モデルとの親和性は高く、(ハードウェア視点からは)直感的です。料理に例えると、カレーライス調理ロボットに対して、「鍋に水を入れて沸騰させて」「米の炊きあがり時間をセットして」「次は人参を切って」「弱火にしてカレールーを入れて」などと命令をしていくようなものです。「手続き型」と言っているのは、これからの動作を関数(サブルーチン、メソッドとも呼ばれる)として分けて、順次呼び出す形になるからです。

部品を組み立てて作り上げるオブジェクト指向プログラミング

手続き型と対比されることが多いオブジェクト指向は、「オブジェクト」という概念を一つの単位として、オブジェクト同士を組み合わせて設計していくパラダイムです。歴史は古く、すでに1950年代から「オブジェクト」という言葉が界隈では使用されていて、1970年代には純粋オブジェクト指向言語としてSmalltalkが開発されています。現在、幅広く利用されているプログラミング言語(Python, C++, Java, JavaScriptなど)はマルチパラダイムでありつつも、例外なくオブジェクト指向プログラミングをサポートしています。

同じく料理に例えると、カレーライスの材料として「カレールー」「米」「人参」「じゃがいも」などをオブジェクトとして定義します(より厳密にはクラスですが、ここでは便宜上オブジェクトで統一します)。また、あわせてカレーライス調理ロボットもオブジェクトです。このロボットには「切る」「盛る」「炊く」「配る」などのメソッドを定義することになります。これで、ロボットオブジェクトが、材料オブジェクトと相互作用しながら調理していく姿をイメージできるかと思います。オブジェクト指向では、オブジェクトは部品なので簡単に入れ替えることができるのがポイントです。白米の代わりに五穀米を使う、カレールー中辛の代わりに甘口にする、という変更をしたとしても、ロボット側は特別に動作設定を変える必要はありません。
このようにヒトやモノを起点とした動作を記述するときにオブジェクト指向はとても都合が良いのです。普段IT機器を使っている中で、アプリケーションのウィンドウを切り替える、ボタンをタップする、というシーンを考えると、「ウィンドウ」や「ボタン」をオブジェクトと見なせば「切り替える」「タップする」のメソッドを定義していることになるのです。

しかし、「タップする」をしたあとの振る舞いがどうなっているかというと、その中は様々な手続きの集合体であると考えることもできます。なので、オブジェクト指向ですべてが完結しているわけではなく、現代のプログラミング言語にはマルチパラダイムと表現されるように、あらゆるパラダイムが包含されていると言っても過言ではありません。

変わりゆく可能性のあるプログラミング教育

小学生から大学生に至るまで、「手続き型」も「オブジェクト指向」も今ではほどよくプログラミング教育に導入されています。ハードウェアから見ると手続き型は直感的、と書きましたが、ICT機器の操作に慣れた今どきの子どもにはオブジェクト指向の方がよほど直感的かもしれません。
プログラミング教育で最も大切なのはプログラミング言語の習得です。コンピュータが理解できるし、人間も読み書きしやすいのがプログラミング言語の特徴で、コンピュータの発明以来、人間はいかにしてコンピュータと意思疎通できるかに挑戦をしてきました。
ところが、2015年前後に大きな潮目の変化がありました。音声認識技術が成熟してきて、人間同士がコミュニケーションで用いる自然言語を、コンピュータが正確に認識できるようになってきたからです。今までは人間がコンピュータ界の言葉を話せるように練習してきたわけですが、これからはコンピュータが人間界の言葉を話してくれるようになり、プログラミング言語の重要性が低下する可能性すら、あるわけです。プログラミングパラダイムが全く変わることによる「プログラミング教育」の変化については次回以降に改めて書いてみようと思います。

最後に当メディアを運営するソニー・グローバルエデュケーションのKOOVパートナープログラミング教室をご紹介します。

KOOVパートナープログラミング教室は、「KOOV」という教材を使用してロボット制作・プログラミング学習を行う教室です。

「KOOV」はカラフルで触りたくなるブロックが特徴的で、楽しみながらロボットを制作できます。

直感的に使えるプログラミング言語を用いて、小さなお子さまでも簡単にロボットを動かせます。

全国47都道府県で1000以上の教室数を展開しているため、どなたでもお近くの教室が見つかります!

無料体験を行っていますので、ぜひ気軽にお申込みください!

KOOVパートナープログラミング教室の体験教室に申し込む

教室での学習だけでなく、自宅で学べる講座もありますのでこちらもぜひご検討ください。

KOOVの自宅学習

ソニー・グローバルエデュケーションの プログラミング教育

Media banner AMedia banner B