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




コンピュータプログラミングで大切なことを、日常生活での「プログラミング」と結びつけて具体的に考えていきたいと思います。

プログラミングでできることは人間ができること  

「コンピュータ」と言えば、モニターがついていてキーボードがついているものを想像することが多いですが、それ以外にも、ありとあらゆるものにコンピュータは組み込まれています。

身近なものだと電卓、スマホ、テレビ、炊飯器、冷蔵庫、エアコン、自動車、改札機、レジなどたくさんあります。元々計算も冷暖房の調節も、お店の会計も人間がしていたことを考えると、「コンピュータは人間の代わり」つまり「プログラミングでできることは人間ができること」と言えます。

つまり「コンピュータが(プログラミングが)得意なことはコンピュータにやらせ、人間が得意なことは人間がしている」のです。  

コンピュータが得意なことは「単純なことを速く正確に行う」ことです。人間なら時間がかかったり、間違ってしまったり、飽きてしまったりすることも、文句も言わず正確に一瞬でやってくれます。しかし、コンピュータには推測したり、足りない情報を経験で補ったり、カンを働かせたりすることはできません。つまり教えてないことや、曖昧な情報では動かないのです。

プログラミングを構成する4つの要素  

つまり、コンピュータに命令する(プログラミングする)ためには、日常生活でもしている、「手順や段取りを考える」ことを、より細かく正確に行う必要があります。

その基本的な考えが、「関数」「変数」「分岐」「反復」です。

「えっ、こんな難しそうなことふだんはしてないよ」「普段数学意識してないしと思ってしまいますよね。

順に説明すると
「関数」はよく行う作業を手順化することです。歯磨きなら、洗面台に行く、歯ブラシを持つ、歯磨き粉をつける、口の前にもっていく・・・など、一連の動作や作業をパッケージ化したものです。数学の「関数」も計算の手順をまとめたものですよね。

「変数」は数値を変えることです。歯磨き粉の量、手を動かすスピード、口を開く大きさ、歯磨きをする時間などが変われば効果も変わりますよね。数学の場合だと、値が変われば解が変わるのと同じです。

「分岐」は状況によってやることを変えることです。平日は学校に行くけど、土日は行かない、などです。

「反復」は同じ事を必要な回数繰り返すことです。朝学校に行き、授業を受け、家に変える「関数」を、平日は5回繰り返す などです。  

このように考えれば、私たちの行動は「関数」「変数」「分岐」「反復」ということを無意識のうちに「プログラミングしている」ことが分かります。これらの4 要素を意図してコンピュータに命令させるのが「コンピュータプログラミング」です。

プログラミングの難しさは?  

先ほど歯磨きを例に挙げましたが、人間は歯磨きのプログラムを経験からなんとなく覚えます。しかし、コンピュータに歯磨きロボットを操作するプログラミングをするとしたら、手順を細かく指示したり、歯磨き粉の量、手の振動なとの数値を細かく指示しなくてはいけません。もし手順が足りなかったり間違っていたりしたら、途中で止まってしまう、最後まで行かずに繰り返す、そもそも動かないということが起こりますし、数値を間違えると暴走する危険もあります。  

コンピュータは基本的にこの4つの要素を何万回〜何百万回にも渡って矛盾することなく繰り返しています。つまり、コンピュータプログラミングをするためには「人間の行動を振り返り分析する」ことが大切です。

そしてコンピュータは人間よりも速く正確に大規模に行動することができるので、「人間がやってはいけないことはコンピュータにやらせてはいけない」ことを常に意識しないと被害が大変なことになってしまいます。人間と同様、それ以上に技術的・法的、社会的制約にのっとっていなければならないのです。





シェアは下のボタンから

登録はこちらから

freeduは自由な教育を支えフリーランス教師を応援します






学校で働きたい方、先生を探している学校はこちらをご覧ください。