30歳過ぎから工学 vol.2

http://d.hatena.ne.jp/j130s/ から移行しました.オープンソースロボットソフトウェア技術者兼主夫. 高校・大学学部文系-->何となくソフトウェア開発業-->退職・渡米,テキサス州でシステムズ工学修士取得,しかし実装の方が楽しいと気付き縁があったロボティクス業界で再就職.現在 Texas 州内の産業用オートメーションのスタートアップに Georgia 州から遠隔勤務.

秋学期授業紹介 @ SMU '10

授業開始して七週間が経ち, 学校は週末と合わせ四日間の秋休み中です. しかし私は土曜に一つ, 休み明けに一つある take-home exam (持ち帰り試験)があったり, ダラスに引越したので部屋の片付けや教会行事で一日使ったりして, あまり秋休みっぽいことをできてません...パソコンに触れない休みらしい休みは三月以来取って無く, とっくの昔に burn-out (焼き切れ)た感がありますが, 学生だしそういうこともあるということで.
今更ですが授業を紹介. 今期は四つ履修しています. 前二つが専攻の Systems Engineering(SE) の学科の授業, 後ろ二つは計算機科学・工学科(CSE)の授業です. SE の他の授業はこの二つを終えないと履修できないものばかりなので, 今期はこの二つのみ. また, SE の修士課程プログラムは Technical track という名前で, 最低限五つの授業を必修以外の授業群から履修するのが義務になっていて, SE 以外のエンジニアリングからも選べるようになっています. 私は SE の興味ある分野や, CSE や機械工学から履修する予定.

  • EMIS7300 Systems Analysis Method by Dr. Eli Olinick

採点内訳: 試験 80% (20% x 2, 40% x 1), 宿題 20%
(to be filled)

  • EMIS7301 Systems Engineering Process by Dr. Jim Hinderer

採点内訳: 試験 100% (50% x 2)
今期, "システムズエンジニアリング" と正面から言える授業はおそらくこの授業のみで, 最も楽しみにしている授業でもある.
(名前の通り) SE を行う際のプロセスについて外観する授業. 担当者曰く, SE の教科書は政府向け, 米軍向け開発を扱う巨大プロセスについて書かれたものが多いが, この授業ではできるだけシステム開発全般を扱うとのこと. 下記の図は授業で扱う PBDA*1六つの大プロセスとその流れで, 要素ごとに紹介するのがこの授業の役目の様子, 一個ごとは殆ど掘り下げられない.

(拡大版をダウソロード)

ソフトウェアシステム開発/構築業は SE の部分集合であり, まして今まで私が携わってきたのはまだまだ規模が小さい部類でした. 又, 開発業務には上図のように六つの大プロセスがあり, それぞれが相当の規模の知識・経験を要するものですが, そもそもエンジニアリングの学校(機械/航空宇宙/土木建築/電気/計算機 etc.)で主に教わるのは学部/大学院を問わず図の Design と Build の二つのみ*2です. したがって授業で教わる SE のコンセプトの半分以上が私にとって新しく, "うぉー (SE や大規模開発では)そういう方法使うんだー" 等と興奮することが多い一方, まったく知らず理解もできない事柄も多いです.
担当教員は米軍向け兵器開発の大手 Ratheon (レイシオン)社出身のお爺さん先生. (これは大事なトピックなので後で機会を改めて書きますが)元々 SE 自体は歴史的には軍事産業との関わりが深いのだが, SMU の SE プログラムはその傾向が特に強いです. ただこの先生は上述の通り, 政府向け/軍向け以外のシステム開発も取り込むことができる一般的な SE の知識を扱うと宣言していることもあり, 確かに汎用性は高そう. しかしながらやはり応用例題は兵器の話が多く, 兵器開発に直接携わる気はまったく無い者としては複雑な心境です.
又, ひどいテキサス訛りなことと, 熟語(平易な語の組み合わせ)を多用するので語は聞き取れても全然意味が分からない事が多い, 等の英語的理由で中々苦労してます.

  • CSE7316 Software Requirement By Dr. LiGuo Huang

採点内訳: 宿題 30%, プロジェクト 30%, 試験 40% (20% x 2)
要求工学ですが名前の通りソフトウェア開発に特化していて, 大きく分けて機能的要求と非機能的(≒品質)要求の手法を学ぶ.
"要求は何か?" を探し出す方法を語るのではなく, 探し出した要求をどう共有可能な形式に記述するか, がこのクラスの焦点. 以前も書いた気がしますが, 要求を探し出す行為が私にとってはエンジニアリングで最もエキサイティング(かつ難解)なので, このクラスのタイトルからそこを期待したけれどそれは範囲外.
担当者はまだ博士取得後日が浅く産業経験より学術界経験の方が多そうで, 授業はかなり教科書的な内容. しかし要求工学の教科書を読んだことが無い私にとっては毎回の授業が新鮮です. そして私は毎回必ず授業中に質問をするのを自分ルールにしていますが, これまでのところどの質問も例外なく私は"ほ〜そういうことですか〜"と納得させられる. 日本でもシステム構築業界では知られているコスト見積り手法 "COCOMO" 考案者である, 南カリフォルニア大 Barry Boehm 博士の下で PhD を取ってきた方で, 相当鍛えられたんだろうなーと勝手に想像させられてます(博士取得は誰の下に付いても大変だろうけども). ただ, 個人的には期待していたほど今後使えそうだなーという知見を得るに至っていない. 宿題や試験が易しすぎて練習にならないのと, 先生の興味は応用より理論っぽいのが理由かなと.

  • CSE7331 Introduction to Data Mining by Dr. Margaret Dunham

採点内訳: 宿題 40%, プロジェクト 60% *3
この授業を履修していることを書くかどうかは迷いました, なぜなら一応日本の大学では, 日本の機械学習を牽引したお一人である古川康一先生のゼミ出身なので, データマイニングの Introduction なんて十年以上前に習得し終えているはずだからです...しかしそもそも不勉強きわまりなかったからこそ今こうして学校で勉強しなおしているわけなのでまあ良しとしました(古川研の人, 内緒でお願いします...). それにシステム開発において, 実装より前の段階(要求分析, 設計, 購入)といった分析タスクが大きなウェイトを占めるであろう SE 業務においてデータ分析の方法や少なくとも概念をより精密に理解しておくのは, この期に及んでも無駄では無いだろうと.
授業内容はおそらくデータマイニングの授業としてはオーソドックスで, Classification, Clustering と相関ルールが注力分野. WEKA, R をかなりいじります.
試験がなく六回のレポートのみなのが, ペーパーテストに極めて弱い私としてはありがたい. しかしレポートで与えられる問題は各技術をきちんと理解していないと適正な回答ができない. よく考えられた問題設計だなあと感じています. 今期履修している授業の中で最初に書いた EMIS7300 と共に手にスキルが残りそうな授業.
先生は教科書も書いているような人で, 研究者としてはよくわかりませんが網羅的に色々な技術に触れるこのクラスの教師としてはかなり適任のような方. ただ, 頻繁に深い溜息をつくのが気になりますが, 授業自体はほがらかです. 台風の進路予測等が研究対象のようで, 応用の話は台風ばっかりです.



13ヶ月祝で(おそらく)人生初のチーズフォンデュ. 写真はデザートの部. Dallas の Melting Pot で.

*1:Product Based-Development Approach の略.

*2:ただしこの Design と Build は六つのプロセス中最も欠かせないものであり, このプロセスが無いことには SE 自体成り立たないということもこの授業では強調されますが.

*3:教員が授業課題としてよく出す "プロジェクト" の意味合いが未だに分かりません. 宿題とどう違うんだ?まあ, 少なくともプロジェクトマネジメント側での"プロジェクト"の定義とは違いそうなのは確か.