2019年3月16日土曜日

プログラミング的思考とは?

 上の記事「プログラミングとは?」に書きました。
思いついたこと・考えたこと・イメージしたことをデジタルの世界で実現すること、それがプログラミング。
その続きです。



 次に、プログラミング的思考とはどんなものか?
 人の役割はモデルを作ること、それに従ってシミュレーションするのがコンピュータ。AI(人工知能)も同じです。その際に指示を「コンピュータに理解できる言葉で、わかりやすく語る」のがプログラミング的思考です。
 人の強みは一般化・類推できること、そして応用が効くこと。コンピュータの強みは「量と速さ」、そして「疲れを知らない」こと。ところで現代のデータ量はべらぼうに多いので、コンピュータといえども、まともにやったら追いつかないことがしばしばです。そこで人が「うまいやり方」を教えてやる。それもプログラミング的思考です。
 ところで、プログラミングとはコードを書くことだけではありません。それは「思いついたこと・考えたこと・イメージしたことをデジタルの世界で実現する」ための一連の作業を指します。すなわち、あるときは顕微鏡を覗き込むような目線でコードを書き、あるときは望遠鏡で遠くを見つめるような目線でゴールを見据え、またあるときは空を飛ぶ鳥のような目線でシステム全体を俯瞰する。このように「目線が遠く(ゴール)と近く(コード)と全体(システム)とを自由に行き来する」こと、これもまたプログラミング的思考です。
 そう考えると、プログラミングする上で最も大事なことは「言葉にする」ことと言えるのではないでしょうか。自分は何を実現したいのか、それが出来ると何がどのように変わるのか、それを実現するための条件は何か、そんなことをまず自分で考えて納得して、そして仲間と共有する。その上で、コンピュータに理解できる言葉でわかりやすく語りかける。この一連の作業のあらゆる場面で「言葉にする」ことはとても重要です。

 その力を養うために私がお薦めしたいのはエクセルです。自分でモデルを作り、正しく動くように関数式を組み立て、他人に視覚的に伝えるためにグラフ化する。この流れの中にプログラミングに必要な要素が一通りそろっています。
 そしてエクセルは統計を学ぶためにとても強力なツールでもあります。中学・高校の数学の授業で統計を扱うときは手計算が基本ですが、それでは扱うデータ数が限られますから、統計的な意味合いもピンとこないでしょう。だからと言って、データ数を増やして手計算に忙殺されても仕方ないですから、そこはうまくエクセルを使いましょう。
 以上のことから私は思うのです。人工知能(AI)を学ぶには「エクセル→統計→人工知能」と進むのがたぶん最も近道だろう、と。

0 件のコメント:

コメントを投稿