プログラミングの課題で「自動販売機のシミュレータを作れ」というのはいい問題ではないかとよく思う。易しいものから、難しいものまで、仕様しだいでいろいろできる。design)のことを指しているのは明らかなんだけど,私が連想したのは梅津信幸さんの『あなたはコンピュータを理解していますか?』だった。この本は2002年に出版されていて,これ自体は恐らく絶版なのだが,2007年にリニュール本が出ているようだ。発注してしまった(笑)この本で一番印象に残っていたのが第3章の「自動販売機はコンピュータ理解の始まり」である。この章では客がお金を入れる客が商品(ジュース1本)を注文する自動販売機が商品を出す自動販売機がお釣りを返すという流れを人間がシミュレーションしていて,特に「機械がお金を計算する」方法について図解で説明されているのが秀逸だった。「自動販売機の気持ちになって考える」わけだ。機械は人間のようには考えない。「機械(=コンピュータ)が考える」というのはどういうことなのか。これを過不足なく説明するのは意外に難しい。用語を並べ立てて煙に巻くか,頭の悪い擬人化でお茶を濁すのがせいぜいだろう。私もちゃんと説明できるか自信がない。それを考えるのがプログラミングの最初の1フィートである。学校教育でプログラミングを教えるのなら,「自動販売機の気持ちになって考える」からやっていただきたいものだ。「プログラミング言語」なんか必要ないのである。機械が人間の書いたプログラムを「理解」して実行する,というのは大いなる誤解である。した誤解が「シンギュラリティ神話」へ向かわせるのなら「プログラミング言語」を習うとかむしろ有害かもしれない。学生の時に読んだ「日経サイエンス」の記事にティンカートイで3目並べを解くプログラムを組む話があったが1,どんなにコンピュータ技術が発達しても(量子コンピュータが登場しても)スタートラインは常に「ここ」なので,それを忘れないでほしいのですよ。発達してノイマン型コンピュータが廃れたら説明の根本が変わるだろうけど,それは当分先の話(多分)。(ISBN)評価2002年に技術評論社から出た同名タイトルのリニューアルらしい。コードを「追跡コード」としてブロックする場合があります。電子メールも利用できます。電子メールを利用する際の公開鍵はプロフィールから取得できます。Baldanders.info.。