[プログラミング教育] 「ソフトウェア」とは何か | _

_

_

 

「ソフトウェア」とは何か


私たちが使っているソフトウェアにはどんなものがあるだろうか?
私は授業で学生たちにソフトウェアの定義を教えたりする.
「ソフトウェアはシステムソフトウェアとアプリケーションソフトウェアに大別されるでしょう?。 覚えてください。 試験で必ず出題されるから。」
このように始めて、最後は必ず覚えろと言う。 覚えて正解は当てるけど、果たして本当にソフトウェアが何なのか分かるかな? それでその話をしてみようと思う。



 

  ソフトウェアは人類が発明した最高のツール

​我々が原始人、ホモサピエンス時代から火が必要なので、火を作り、その火を料理する時だけに使うのではなく、世の中を明るくしてくれたりして電気を作ったりして、今まで我々が使っている
このように、生活における不便さを解消するために、人々は発見、発明し、適用してみる。
ソフトウェアは、人に代わって仕事を処理する方法である。
例えば、以前はご飯を炊く時も火の加減、水の量、炊く時間を引き続き確認しなければならなかったが、今はどうか? 電気炊飯器という製品を使い、米と水を入れて白ご飯モードに設定して、電源をオンにすれば、完璧なご飯の誕生ができていないか。
このようにソフトウェアがすることは実に多様である。
オフィス、工場、商店、学校、病院、教会などすべての分野でソフトウェアが広く使われているということである。
ソフトウェアを使うということは、学歴も、職業も、貧富も全く関係がなく、これまで人類が発明してきた、汎用的に使える最高のツールであるといえます。
今後さらに発展するためには何を作るのか?を考え、どこに使うべきかを考えてみよう。

 


 

  人間が時間をコントロールできるようにした最初の技術

​時間が進むのは年齢,性別,財産,職業,職位などに関係なく、すべての人に平等である。
個人差はあるだろうが、仕事を処理する速度は平均的である。

F = m · a

多くの人が知っている理科の時間に学んだ質量と加速度度の運動の法則を考えてみる。 速度よりは質量だけを考えていた加速度がより付いて速くなる。という前提である。
しかし弾丸はどうなのか。 弾丸は小さいのにあっという間に飛ぶ。 体積とは全く関係がないということである。
これを現実と入り込んで考えるなら、企業が規模を大きくするよりは速度で勝負しなければならない。 それでaを変数に変える認識が重要になりそうである。

 


 

  AIに進化するソフトウェアの世界に備えなければならない。


​AIは人工知能である。 この技術は全世界的に進歩している。 数多くのデータや事例が盛り込まれたソフトウェアを作り、まるで人間と同様に分析·判断し、推論までできる典型的な究極のソフトウェア技術である。したがって、将来世の中で生きていくのであればソフトウェアを扱うことが教養として必須科目であるといえる。
現在勉強中の学生なら、国語·英語·数学のOX問題を解くような試験から脱出して、ソフトウェアの重要性が高まる世の中に適応するためにソフトウェア的な論理的思考力を持つのはどうだろうか。



 

  ソフトウェア活用を立ちはだかる、コーディングという古い技術

ニュースを見た。コーディング教育の旋風により、ある地域はコーディング講師たちを養成して塾を作った。 素早く準備してやった結果は惨敗であるようだ。 私も同じようにしていた。 資格も取って学生たちを教えて....
10人中10人の子供たちがコーディングが理解できるだろうか?果たしてIOTと接続し、AIと接続して使用することができるだろうか? C言語 、ジャバというプログラミング言語を習えるだろうか?コーディングをするということは、
創造力と思考力を増強するために、学ぶ過程である。 しかし、いざ学ぶ子供たちは1、2人だけがコーディングをうまく扱っていると言えるだろう。
そのような創造性に満ちた潜在的な能力者を発掘するためには、すべての学生が学ぶ必要があるだろうか。
​大学生も4年間のカリキュラムを経て1つのプログラムが作られるが、それをその多くの時間と課程を費やしながら学ぶべきなのだろうか? それゆえ疑問を抱く。

もちろん、一つのプログラムを作るためには、どのようにロジックできるのか重要ではある。 しかし、時間との戦いである最近のトレンドには合わない。 どうすれば人が中心となり、人を思いやるソフトウェアを作ることができるか?
最近、モバイル機器ですべてができる世の中になり、古いコーディング方式を追求するのは正しくない。 時間を節約して便利に使えるソフトウェアがあったらどうか。 ならば、ソフトウェア作成の自動化はこの問題を抜本的に解決する唯一の対策であると考える。