日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年5月27日水曜日

初心者プログラミング教育のブレイクスルーになるか?

注:いつもそうですが、今回はとくに内容がうまくまとまってません。読みにくかったらすみません。

ネットサーフィンをしているときに「マンガでわかる電気」が英語版になったという情報がのっているのをみて何だろうと思い見てみるとブックプラス「マンガでわかる」シリーズというものがあることをしった。

そのページを見ていると、同じシリーズの「マンガでわかるシーケンス制御」を紹介していた。
その「シーケンス制御」という言葉をみて、「もしかしたら...」とひらめいて早速wikiで調べてみました。

シーケンス制御(Wiki)

機械に行わせる動作を順序正しく覚えさせておくことにより、始動ボタンを押すだけで、後は全部制御装置が仕事を行う場合などに用いられる

シーケンス制御は、全自動洗濯機・エアコンといった私達の身の周りにある家庭用電気器具をはじめ、信号機・自動販売機・工場の産業ロボットや自動化設備・ビルのエレベーターや自動ドア・発電所や変電所に至るまで、さまざまな装置や設備に使われている。

単なるスタート/ストップに限る単純なものから複雑な信号処理を必要とする大規模なものまで存在しており、あらゆる分野で活用され、自動化・省力化に大きく貢献している。


ということ、もともと機械好きだったので言葉自体は聞いたことがあったが、特に勉強をしたこともなく向上などの現場作業などで、なるほどこんなものかという感じで理解していたぐらいだった。

簡単に言うと、
「スイッチ一つで、一通りの動作をして目的を達成できるしくみ」
「スイッチ一つで複数の部品や装置を自動制御する」
とういことになるだろう。


以前のエントリ「プログラミング教育の難しさ。」で「プログラミングにおけるたとえ話」について文句をいったが、この問題がもしかしたら「シーケンス制御」で解決するのではないかというふうに思った。

「たとえ話」がいやなのは、プログラムというものを人間の日常生活というまったく異質のものに置き換えているから、たとえになっているようでなっていない。
まぁ「たとえ」なので、それは説明を書いた人の自由だが、読む側としては非常に理解しづらい。

しかし、機械に関する事に置き換えれば、すっきりした、理解しやすい「たとえ話」になるのではないだろうか。

このキーワードの周辺で、掘り下げていけばプログラミングの思考法の基礎を身につけられるのではないかという気がするのだ。。


--------------------
いままでプログラミングにおいて「流れ」の重要性について説明する文章では、、
朝起きて歯を磨いて、パンを食べて服を着替えて、靴を履いて・・・・・
本棚から本をだし、引き出しからノートと鉛筆をだし・・・・・
卒業式で、最初にあいさつ、次に・・・・

こういうたとえ話をされると自分の場合は理解が深まるどころか、ますます混乱する
実際に上記のような事柄は順番を簡単に入れ替えることができ、何より日常生活をたとえに使っている場合、ダレもそこまで計画して行動していないだろうと思ってしまう。

もしそういった説明をする人がいたら、「でも朝、食パンをやきたいなら、まずパンをトースターにいれてダイヤルを調整して、スイッチを入れるでしょう?」というかもしれない。
でもそれは人間が機械に対して行っている部分である。

上記のようなたとえ話では、「人間が自分を含む人間や動物にたいしておこなう行動」が混同されて入っている。
もしかしたらコンピュータを擬人的に扱う考え方がそうさせるのかもしれないが、これがそもそも混乱を生み出す原因になっているように思う。

コンピュータの説明をしたいなら機械の制御に徹した方がいいと思う。

人間や動物を対象にすると、非常に現実感がなく違和感だらけになる。
(まぁ小学校低学年や幼稚園児には有効かもしれないが...。)
そしてそれが、プログラミングを勉強する気を失わせる原因にもなっていた。


--------------------
「シーケンス制御」のなんらかの解説を元に、多少機械の専門的な部分をはしょって、要点だけをまとめていけばプログラミングも理解できるのではないかと思う。

もともとプログラムとは「ルーブ・ゴールドバーグ・マシンピタゴラ装置)」を作るようなものだと思っている。

シーケンス制御は、複数の回路や装置を目的を果たすように導いていき、非常に似ていると思う。
それはまるでオーケストラで指揮をするように全体をある方向へ導いていくようでもある。


「シーケンス制御」を柱として、プログラミングの説明をすることの利点は、
●一つ一つの装置は特定の目的を持っていて、限定された動作をする。(関数やコマンドのように)
●順番も多くの場合、ある程度きまってくる。(プログラミングの流れのように)
●プログラミング言語を使わなくてもプログラミングの独自性(特徴)がわかる。
●多くの場合、知覚できる物理現象として認識可能。リアリティーが高い。


特に初心者の場合、イメージがしにくいコマンドからではなく、リアリティーが高くイメージがつかみやすい話から入ることができる。


融通性の無さや、一方通行性、各装置の自動性、順番、すべてを自分が指揮する必要性、コントロールの方法や領域は目的に合わせていくらでも考えられる、機械としての制限、etc. 
いろいろな基礎概念においてシーケンス制御とプログラミングには共通点があるような気がする。


プログラミングを人間の活動に置き換えるのではなく、機械を機械にたとえ、機械として感じ、機械として考えることは、たとえ話から、実際のプログラミング作業へ移行していときにもスムースに行くのではないかと思う。


ただ、現時点ではシーケンス制御という分野について、あまり詳しいことは知らないので
以上は推測の域をでないが、そのうち、詳しく見ていきたい。


参考Link
http://wwwf2.mitsubishielectric.co.jp/fair/fa_basic/01/11.htm

http://www.at-system.jp/

http://sequence.goldhurricane.com/


--------------------
さて、この「マンガでわかる」シリーズ
最初はよくあるマンガの学習書かなと思ったんだけど、いろいろ見てみると主題となっている内容が少々、専門的で、プログラミングに関係ありそうな物もある

マンガでわかる線形代数 などはとくにCGに関係しそうだし、
他にも、いっぱいある。

微分積分、物理力学、電気、フーリエ解析、データベース、統計学、統計学 因子分析編、統計学 回帰分析編、etc.


まずはシーケンス制御の本を、どれだけわかりやすいか一度読んでみたい。


今のところ、正直「マンガでわかる」とは思っていない。

この手の本は、要点となることや計算部分は、マンガといっても台詞の中で文章で表現していることがほとんどで、ひどいものだと、それをイラストで表現することさえしていない。

本屋で立ち読みできればいいのだが、内容がマニアックすぎてこちらの本屋にはおいてなさそうなので、買うしかないが、こちらで買うと結局は、1.5倍ぐらいの値段になってしまう。

こんど給料アップしたら、買ってみるか...。
 

0 件のコメント:

コメントを投稿