なぜプログラミングの考え方(例:アルゴリズム)を学ぶのか?
以前に、プログラミング的思考という概念を自分なりに整理したことがあります。
その中では、「モノゴトを効率化する」ことに着目しました。
しかし、「効率的」という言葉だけだと少し足りないなぁ、とこの頃は感じています。
最近のワークショップでは、コンピュータと人間の違いは何か?
といった話をよくしています。
何が違うと思いますか?
人間は生き物だがコンピュータはそうではないとか、人間は意志をもつがコンピュータにはないとか、そういう話はさておき。
コンピュータには出来るが、人間には難しいこと。
例えば、複雑な計算を超高速で実施する、とか、休憩なしで動き続ける、大量の情報を記憶する、といったスペック(性能)の違いがありますね。
どんなに超人的な人間でも、一定を超えるてしまうとコンピュータには叶いません。
実は、コンピュータから学ぶことで、私たち人間にも出来るようになることがあるのです。
コンピュータと人間の違いとして、こんなことを伝えています。
コンピュータは、命令に対していつも必ず、同じ結果を返すことができる。
でも人間は、そうではない。
例えば、私たち大人は子どもたちによく命令をします。
「早く起きなさい・早く寝なさい」
「宿題をしなさい」
「片付けなさい」
「忘れ物をなくしなさい」
などなど。
そうすると、子どもたちはどんな反応をしますか?
毎回、その通りに動いていますか?
そんなわけないですよね。
子どもたちだけではありません。
大人である私たちだってそうです。
職場で、家庭で、あらゆるシーンで、いつも必ず、同じ結果を出す、というわけにはいかないと思うのです。
疲れていたり、ついうっかり忘れたり、気分が乗らなかったり・・・
だって人間だもの、ですよね。
ではなぜ、コンピュータには出来ると思いますか?
答えは、コンピュータはアルゴリズムで動いているから、です。
アルゴリズムとは、命令の順番とルールを決めるものです。
コンピュータが実行するプログラムは命令の集まりです。
その命令を、どんな順番で、どんなルールで実行するのか?
それを決めたものがアルゴリズムです。
アルゴリズムがないとコンピュータはプログラムを動かすことができません。
逆にアルゴリズムがあれば、コンピュータはいつも必ず、同じ結果を出すことができるのです。
なぜなら、アルゴリズムで決められている通りに動くだけだから。
では、人間もアルゴリズムの通りに動けば良いのでは?
と思いませんか。
例えば、歯磨きのシーンを思い浮かべてみてください。
誰しも一度は、歯科衛生士さんから指導してもらったことがあると思います。
でも、毎日毎日繰り返しているうちに、我流になっていませんか?
その磨き方、本当に虫歯を防ぐことができていますか?
もし、正しい歯磨きのアルゴリズムがあったら、それで100%虫歯を防げるとしたら、そのアルゴリズムを覚えたいと思いませんか?
アルゴリズムを学ぶ理由は、ここにあります。
これからの時代を生きる子どもたちには、プログラミング的思考が重要だ、という話を聞いたことがあると思います。
なぜ重要かというと、多くの場合、
コンピュータや技術の仕組みを理解し、それらを使いこなして問題を解決できるようになることが必要になるから
と言っているようです。
それは正しいと思います。
でも、やはりこれだけでは足りない。
コンピュータや技術について学ぶ意味を、もう少し掘り下げて考えてみると、単なるツールとして使いこなすのではなく、そこにある「考え方」を問題解決に応用することが求められているはずです。
アルゴリズム以外にも、身近な問題解決に役立つ「考え方」は他にもあります。
探プロではこれらをまとめて、「プログラミングの考え方」と呼んでいます。
アルゴリズムを取り入れることで解決できる身近な問題。
さて何があるでしょう?
是非考えてみて下さい。
「プログラミングの考え方」を活用した問題解決ってこういうこと、という話を分かりやすく伝えるために、ワークブックを作っています。
いま、Vol.1、Vol.2が完成していて、Vol3の製作中です。
Vol.1 アルゴリズム-くり返し処理-
Vol.2 アルゴリズム-分岐処理-
もう少し数が増えると本になるとかならないとか・・・
印刷したものが欲しい方はこちらまでご連絡ください。
info@tanpro-lab.jp
近日中に、Webサイトからもダウンロードできるようにする予定です。
さてVol.3をそろそろ作らなければ・・・