« 落ち着かない学級に補助に入るデメリット | Main | ノーベル賞・本庶佑氏「ばかげた挑戦が革新生む」 »

December 16, 2018

アルゴリズムは「拡散的思考」

Puro_2
 学校の図書館にあった「アルゴリズムえほん」全4巻(フレーベル館)。
 なるほど、この絵本を読んで「プログラミングを学ぶ前にアルゴリズム」という意味が少しだけ分かった。

 第一巻は「アイデアはひとつじゃない! アルゴリズムって、こういうもの」

◆水たまりをどう渡るか、道にいるカエルを踏まないで進む方法など、小学生が実際に出会いそうな問題場面を取り上げ、3姉弟がそれぞれのアルゴリズムによって解決したり、目的をかなえたりする展開になっており、目的に対していろいろなアルゴリズムを考え、どれが一番よい方法かを考えられる。
というのがアマゾンの紹介コピー。
 
 絵本を読んだ後は、特に「目的に対していろいろなアルゴリズムを考え、どれが一番よい方法かを考えられる」の部分が腑に落ちた。
 最初のページは、3姉妹が雨上がりの朝、学校へ向かう道の大きな水たまりを避けて、どう渡るか、考えている場面。

①石をおいて渡る
②跳んで渡る
③靴を脱いで渡る

と三者三様の方法を考えて

◆そう、「これが、それぞれのアルゴリズム」
◆つまり、アルゴリズムは、目的をかなえるための方法のこと。

と解説されている。

◆コンピューターを動かすプログラミングは論理的につながらなければいけませんし、目的と結果を考えたプログラミングでなければ、実行する意味がありません。

といった部分だけを取り上げると、プログラムは最適解、つまりたった1つの方法を導き出すようなイメージにもつながりやすい。
「論理的」とは1対多対応でなく1対1対応であるからだ。理詰めで考えたら、答えは1つに確定できると判断してしまいがちだ。

 ところが、次の解説があって、うなってしまった。

◆コンピュータは、命令通りにしか動けない。だから、人間が前もってアルゴリズムをいくつも考え、「プログラム」として組み立て、コンピュータに覚えさせる必要があるんだ。

 人間が多様な解法・多様なアルゴリズムを考え、それをプログミングする。
 コンピュータは覚えさせられた命令通り動くのだけなのだから、人間の多様性・創造性の方が価値が高いのだ。最初から最適解を決め打ちして1つの解法しか思い浮かべないのは、人間らしい思考作業ではない。
そのことを「アイデアはひとつじゃない!」という本書のタイトルが端的に示している。

 息子が小学校時代に作っていたサッカーロボも、高等専門学校のロボットコンテストも、目的(テーマ)は1つだが、アプローチ(アルゴリズム)は多様なので、様々なロボットが製作される。
 ロボコンの大会の様子を見れば、「アイデアは1つではない・アプローチは多様で、最適解は簡単に決まらない」ことがよく分かる。

 今のカーナビも決して1通りのルートを示すわけではなく、有料道路優先、一般道路優先、道路幅優先などニーズに合わせたいろんなルートを示す。
・さまざまなルートがある
・さまざまなアプローチがある
・さまざまなアルゴリズムがある

が、同義なのだと大雑把に理解している。
 また、算数の解き方も決められた1通りというケースが多いが、本来、数学の解き方は多様なのだと理解している。
 これも、アプローチはさまざま=アルゴリズムはさまざま、ということなのだと理解しています。
 アルゴリズムは多様であり、ゴールに向かうアプローチは、いろんな方法があってよいというスタンス。
考えてみれば、その通りなのだ。
 しかし、これまで「プログラミング的思考」というと、論理的思考のニュアンスが強くて、一つの正解に向けて最適解を見つけ出すようにとらえていた。

 それがけっして1人よがりな考えではない証拠が、手引きの以下の記載内容だ。

◆プログラミング的思考
自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組み合わせをどのよう改善していけば、より意図したした活動に近づくのか、といったことを論理的に考えていく力。
「小学校プログラミング教育の手引き第2版」文部科学省 4ページ

・・・この記述を見ると、やっぱり、プログラミングは1つの結論に収束されていくように読めてしまう。
でも、先のアルゴリズムの解説を読むと、プログラミングは実に自由度が高く、創造的で拡散的である。

無論、そこは活動の場面の違いがあって、アプローチ(アルゴリズム)を考える場面は創意を生かし、プログラミングを行う場合は正確に緻密に論理的に取り組む。
 まずはどんなアプローチ(アルゴリズム)を考えるか、その創意工夫が先だと思う。創意のないプログラミングなんて、やらされているだけでつまんない。

 とにかく、「プログラミング的思考」は、「収束的思考」ではなく、「拡散的思考」だというのは、新鮮な驚きであった。

|

« 落ち着かない学級に補助に入るデメリット | Main | ノーベル賞・本庶佑氏「ばかげた挑戦が革新生む」 »

創造性」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference アルゴリズムは「拡散的思考」:

« 落ち着かない学級に補助に入るデメリット | Main | ノーベル賞・本庶佑氏「ばかげた挑戦が革新生む」 »