2020年からプログラミング教育が必修になりますね。
ものづくり思考とか問題解決能力の育成だとか、色々なことが言われています。
でもプログラミングって何なん? 実は良く知らんねんけど…という小学生保護者(あるいは未来の小学生保護者)の方がいらっしゃると思います。
今日は、そんな方に分かりやすく「プログラミング」を説明してみます。
プログラミングとは、プログラムを書くことなのですが、ちょっと例え話をしてみます。
魔法と呪文
映画「ハリーポッター」をご覧になったことはありますか? 魔法がでてくるファンタジーのお話です。
ファンタジーに登場する魔法も、何でもありなように見えて実はそうではありません。ものすごいチカラを発揮しますが、そこには一定のルールがあって、その制約の中でしか使えないようになっています。
たとえば呪文です。
呪文は、魔法を発動するためのキーワードで、それを唱えなければ魔法が使えないことになっていますよね。でも呪文って、それを唱えるからには誰かが聞いてくれている前提なわけで、それは誰かというと何かの精霊だったり神様・仏様みたいなものだったりするわけです。
呪文というのは、そういった何か凄いチカラを持っている何者かに命令(あるいはお願い)するための言葉なのです。
コンピュータとプログラム
コンピュータとプログラムの関係は、精霊と呪文の関係に似ています。精霊に命令するための言葉として呪文があるのと同様に、コンピュータに命令するための言葉として「プログラミング言語」というものがあります。
ニンゲンが話す言葉(自然言語)に日本語, 英語, 中国語, … とあるのと同様に、プログラミング言語も色々な種類があります。
プログラミング言語は自然言語のように自然発生したものではありません。
プログラミング言語は、ニンゲンがコンピュータを作った時にセットで作ったものです。
「よし凄いコンピュータが出来たぞ。このコンピュータには、この言語で命令できるようにしよう」というわけです。
ニンゲンの都合で作った言語なので、とても論理的でシンプルな文法を持っています。当然、コンピュータのようなキカイで処理しやすいようになっています。逆に、曖昧な使い方はできないところは難しく感じる原因になっています。
魔法の呪文も意外と融通が利かないところがあったりします。そういうところもプログラミング言語と似ていますね。
プログラミング言語を、ファンタジーの呪文に例えて説明してみましたが、いかがでしたか?
イメージする助けになれば幸いです。