« 2010年11月 | トップページ | 2011年1月 »

2010年12月

2010/12/15

Cargo cult programming

2010/12/15

Cargo cultという言葉が生まれるに至った過程、また、この言葉の持つ意味の議論は、非常に興味深いものですが、それはさておくことにします。ここでは、cargo cult というのは、「その本質をとらえずに形だけを真似ること」、だと考えてください。例えば、綿密な生産スケジューリングという本質を理解せずに、トヨタのカンバン方式の形式だけをまねると、多分、cargo cult 経営と呼ばれるでしょう。プログラミングの分野では、他人の書いたプログラムの意味を考えずに、形だけを真似る(例えばコピー&ペーストする)ことをcargo cult programmingと言います。

何事につけ、学習は他人のまねからはじまります。それは自然なことですが、いつまでも初期段階にとどまっていては進歩がありません。学習を次の段階に進めるためには、学習対象の本質は何かを、つきつめてゆく必要があります。プログラミングの本質とは論理の組み立てでしょう。また、実際に論理を組み立ててプログラミングするときには、最低限、言語仕様や使える部品(ライブラリなど)の仕様を理解することが必要です。できれば、なぜ仕様がそうなっているのかまで考えると、仕様を決定した人物・組織が、その機能を実装するのに念頭に置いた方法が想像できるようになります。それは、仕様をより深く理解するのに役立つし、仕様が記憶に残りやすくもなります。

私は本学でプログラミングも教えていますが、毎年必ず不可とせざるを得ない学生がでます。そういった学生は、cargo cult programming をしていると感じます。

Cargo cult programming から抜け出るには、1に良く考えること、2に良く調べることが必要です。どちらも習慣のようなもので、若い方が身につけやすいと感じます。もし、これを読んでいるあなたが、「なぜそうなるのか?」という疑問が浮かび上がってきたときに、「面倒だ」と深く考えずに流してしまっているならば、是非今日から、もう一歩考えたり、調べたりしてみてください。

特に調べる方は、今日の検索技術をもってすれば、極めて容易です。

手始めに、cargo cult を調べてみては?

S.Y

2010/12/06

安全運転のためのフェンダーミラーの薦め

2010/12/06

この11月で愛車の走行距離が20万キロに達した. その時の記念に撮った走行距離計の写真が図1である. 購入したのは1992 [平成4] 年で, 新車で購入以来18年間この車を乗り続けていることになる. 部品, 特に電装品で入手の難しい物が出てきており購入時の状況を維持しづらくはなっているが, 整備点検さえ十分に行なえばまだ十年は使えそう (希望) で, 現在も往復約70 kmの通勤にほぼ毎日使っている.

1
図1 走行距離200,000 km達成を示す走行距離計の表示

私が最初に車を持ったのは1980年代の半ばで, この車が2台目である. その間ずっと, 部品故障によるトラブルなどはあったものの事故らしい事故は一度も経験せず, 事故を起こして人様に迷惑をかける様なことを全く経験せずに来ている. そのため自動車保険の保険料の割引率もこのところ上限の 60 % (20等級) に貼りついた状態で, 安全運転を続けても保険料がこれ以上安くならないところまで来ている. 何十年も保険料を払い続け既に十分に保険会社を儲けさせているので, もっと大幅に保険料を割り引いてくれても良さそうにと思っており, この点でチョット不満ではある.
無事故の話に戻す. 幸運の積み重ねだけではこの保険料 60 % 引きの現状は生まれなかったと思っている. 私の車がフェンダーミラー仕様である事が, この様に長期間安全運転を続けて来られた大きな理由の一つだと思っている. そこで今回はこの安全運転のお裾分けとして, このフェンダーミラーの利点について, 手元の資料に基づき同目的の車体外後写鏡 (アウターミラー) であるドアミラーと対比しながら述べたいと思う.
一般に

[1] 運転者の視線が車両進行方向から外れている時間が永いほど前方不注意での事故の可能性が大きくなるので, 運転者の視線移動量は小さいほど事故の発生確率が小さくなる.
[2] 運転者から視認可能な範囲が広いほど運転者が危険回避をし易い (認識できない危険は回避不可能) ので, 運転者の視野を妨害する要素 (ブラインド範囲) は小さいほど事故の発生確率が小さくなる.
[3] 幅ゼロの車両同士は有限幅の道路では絶対に衝突しないし幅が道路幅の半分を超える車両同士はすれ違いもできない (止まらずにすれ違おうとすると必ず衝突する) ので, 進行方向に対して車両の幅が小さいほど事故の発生確率は小さくなる.
なお, この車両の幅はカタログ等に記載のボディー全幅ではなく, 危険回避の意味から最大幅であるアウターミラー最外側間の距離を対象とするのが最も有意義と思われるので, 今回はこの値を用いる.


である. 安全を脅かす要因は他にも沢山あるが, 今回はこの3点 (多分安全上主要な) からフェンダーミラーとドアミラーの安全性を定量的に評価してみた結果を述べる.
図2と図3は私の愛車に関するメーカーの技術解説書[1] から撮った図に必要な追記を施したものである. 青で書いたものがフェンダイミラーに関する著者の追記部分で赤で書いたものがドアミラーに関する追記部分である. 白抜きの三角形は運転者が左右アウターミラーの中心位置を見る際の視線移動範囲を, 一点鎖線で囲まれた色塗りの部分はアウターミラーにより妨害されて運転席から視認できないブラインド範囲を, また破線はアウターミラー最外側の位置を, それぞれ示している. 運転者の頭の中心位置と思われる点を, 円および放射線の基準としている.

Image004

図2 上面図

Image005_2

図3 正面図

これらの図から分度器と定規で読み取ったデータが表1である. おそらく他の車種でも大差は無いと思うが, ドアミラー仕様の車ではフェンダーミラー仕様の車に比して, 同一車種で視線移動量が約2倍, ブラインド範囲が3倍以上, 実質の車体幅であるアウターミラー最外側距離が 5 % 増であることが判る. すなわちアウターミラーのトータルな安全性の程度を定量的に評価する関数としてこれらの値の積を用いると, 1.92 × 3.21 × 1.05 = 6.61 すなわち, フェンダーミラーの安全性がドアミラーの6倍以上となる. 今回は考慮に入れなかった多くの要因を含めても, 安全性に関するフェンダーミラーとドアミラーとの間に存在するこの明らかな優劣が逆転するとは考えられないので, 上述の 「フェンダーミラー仕様である事が長期間安全運転を続けて来られた大きな理由の一つ」 との私の思いは正しいものと信じる次第である.

表1 結果のまとめ

Table

私が自動車の免許を取得した1970年代の初頭では, 乗用車のアウターミラーとしてフェンダーミラーだけが合法で, ドアミラーは暴走族等が非合法に装着しているだけだったと記憶している. 外車にも輸入時でのフェンダーミラーの取り付けが義務付けられていたと思う. その後何故かこの規制が徐々に緩和され, 1990年代にはドアミラーが主流となり, 現在フェンダーミラー仕様の乗用車は, タクシー用などの一部の車を除き作られなくなって来ている. 特注での取り付け (ドアミラーからの交換) さえ断るメーカー (ディーラー) もある.
本ブログを読んでフェンダーミラーの良さに気付き, 車を買い換える際などにフェンダーミラーを指定する人が増え, それに連れてメーカー等の対応も変わり結果として事故の減少につながることを願っている.

参考文献
[1] 富士重工(株): Legacy新型車解説書92-6 U2051A, p.8-11, 1992.
[以上]

CS教授 片倉寛

2010/12/02

「タンジブル・ソフトウェア教育の研究」プロジェクトの紹介

2010/12/02

CS学部助教の高嶋です.
今回は、学内で進められている研究プロジェクトと、そこで開発されたシステムのひとつを紹介します.

CS学部には、将来システムエンジニアになることを志す学生が多いようです.このブログをご覧になっている高校生の皆さんの中にも、ゲームソフトやネットワークサービスなど、システム開発を経験してみたいと考えているかたがいらっしゃるのではないでしょうか?
システム開発と聞くと、キーボードを叩いてプログラムを作ることを想像してしまいがちですが、実際にはプログラミングはシステム開発のほんの一部で、要求獲得、要件定義、設計、製造・試験、保守・運用など、様々な工程を経てシステムが出来上がります.システムエンジニアとして産業界から求められている人材は、このような工程を実践的かつ体系的に学んだ学生なのだそうです.特に、開発プロジェクトをとりまとめるプロジェクトマネージャー(PM)を担うことができる人材を、大学で育成してほしいという要望があがっています.

このような要望に応えるべく、CS学部の中村太一教授を中心に「タンジブル・ソフトウェア教育の研究」プロジェクト(文部科学省 平成19年度私立大学学術研究高度化推進事業採択案件)が進められています.

研究の取り組みのひとつとして、プロジェクトベースドラーニング(Project Based Learning,PBL)という実務体験型の講義が行われています.この講義では、学習者がシステム開発の仮想プロジェクトの登場人物を演じる「ロールプレイ演習」を取り入れており、疑似的にシステム開発の実務を経験することができます.さらに演習をオンラインで行うことができるシステムPROMASTER(Project Management Skills Training Environment)を利用することで、効率よく演習に取り組むことができます.これは中村研究室の学生チーム(学部4年生6名+修士2年生1名)が開発したものです.

PROMASTERの開発・利用には3つの側面があります.

1. 教材としてのシステム:学習者が、システム開発やプロジェクトマネジメントに必要となる知識(コスト見積もりや、日程調整、他者とのコミュニケーションなど)を実務を通して学びます.

2. 学習状況把握のためのシステム:システム利用時の行動履歴データをもとに、個々の学生がどのようにロールプレイ演習に取り組んでいるかを教員が把握し、個人に特化した教育方法や教材の作成にいかします.

3. 開発題材としてのシステム:学生チームが1年を通してシステム開発の全工程を経験します.

特に「開発題材としてのシステム」については、中村研究室で、企業における開発と同様のプロセスを経て、システム開発がおこなわれている点が特徴的です.1年をかけて要求分析・外部設計・内部設計・プログラミング・テスト・運用を行うため、チームで作成する書類の量は、電話帳数冊分に及びます.毎朝10時からのミーティングで昨日の作業内容と本日の予定を確認したり、書類作成後にはチームでレビュ(内容の確認)をしたり、作業の週間報告書を書いたり、ガントチャートでスケジュールを管理したり…まさに企業のようです.QCD、WBS、RFP、EVM、といったシステム開発に関する用語も、普段の会話で普通に話されています.

個人的には(学生またはスタッフとして)5つの大学に在籍したのですが、これほどまでに徹底して、企業と同様のやりかたでシステムを開発している研究室は中村研究室が初めてでした.自分が学生のころは、書類など作らず、行き当たりばったりでプログラムを組んで、不具合があれば修正して、ということを繰り返していました.産業界が求める人材ではなかったようですね…
東京工科大学は、企業出身の教員が多いので、このようなシステム開発プロセスに触れる機会も多いかと思います.オープンキャンパス等でチェックしてみてください.

なお、今回紹介した「タンジブル・ソフトウェア教育の研究」プロジェクトは、情報処理学会主催「情報システム教育コンテスト(ISECON2009)」で技術賞を受賞いたしました.
プロジェクトの詳細については中村教授のインタビュー記事をご覧ください.

2010/12/01

気づき

2010/12/01

 雑誌で企業の採用担当者の座談会を読みました。キー・ワードは「気づき力」でした。「自分の頭で考えるようになる」ことと説明されています。同じ体験をしても、何かに気づいて、つまり、新たな発見によって成長できる人とそうでない人がいるということです。

 講義ではなく、演習形式の授業でもそれを強く感じます。何度も同じ注意をされる学生もいれば、一度で済む人もいます。時に、自分が言われなくても「人のふり見て、我がふり直せ」で、他人を見て自ら修正できる人もいます。こんな学生が増えるとお手本となって、好循環が生まれて授業が活性化します。

 私自身も最近こんな経験をしました。近所に名前は知らないが顔見知りの上品なお年寄りの女性がいて、道ですれ違うとあいさつをしていました。最初は気付かなかったのですが、歩きながら会釈する年少の私に対して、この方は立ち止まって頭を下げるのです。それ以降、私もそれを見習うように心がけています。

K

« 2010年11月 | トップページ | 2011年1月 »