卒研発表をした

卒研終わった

2/17に卒研発表をした。

何研究してたの

モデル検査fault injectionを行うためのモデリング言語Sandalコンパイラの拡張を行った。

いろんな人に何研究してるのか聞かれたんだけど、そのたびに一言で説明できなくて困った。自分がモデル検査とfault injectionに関する理解がまだまだ浅いというのと、そうじゃなくても両方説明するのが難しいので、誰かに研究テーマ聞かれてもまともに説明できた試しがない。同じ学科の人に説明してもモデル検査を授業でやった人だけにしか伝わらなかった。実際にやってたことは既存の言語処理系の拡張なので、そう理解していただければと思う。

研究室所属をする際、将来知ってて役に立ちそうな分野の知見が深められるといいなあと考えていて、いくつか考えた分野の中でも最初に言語処理系のことを知っておくのがいいだろうと思ってそういう研究室を探していた。それで、たまたま同じバイトをしていたeagletmtさんとdraftcodeさんが渡部研に所属していて、あとvim confとかでdaimatzさんという渡部研OBにも会っていて、研究室の雰囲気とかが聞けた。ちょうど言語処理系を扱う研究室だったし、自分に合いそうな環境だったので渡部研にしたんだけど、実際に所属してみても良い先生や先輩たちがいて良い研究室に恵まれたと思った。

うちの研究室は所属すると最初にSchemeの処理系を作るという課題が与えられるんだけど、僕はこれをGoで実装した。 それで、夏頃研究したいテーマが思いつかなくて先生と相談したら、ちょうどdraftcodeさんが修論で言語処理系をGoで書いていたので、それの拡張をやりましょうという話になった。 研究するなら言語処理系を書きたいと思っていたし、rrrspecの検査のために設計されたというSandalのことは気になっていたので今回の研究にとりかかったという背景がある。

研究どうだったか

夏は研究の背景知識を理解するのに使っていて、秋ごろに一気に実装したんだけど、あんまり実装を進めなくても設定した目的が達成できそうだったので終了の見通しが立ち、論文も早めに第一稿を書き上げたので12月後半はかなり余裕をぶっこいて全然関係ない趣味コード書いたりしてた。

けど1月になってから、第一稿で保留してた実験が結構重いことが判明し、卒業までに実験が完了しない疑惑すら出てかなり焦った。モデル検査というのは遷移の全状態の組み合わせを検査する手法なので、検査時間は指数関数的に増大してしまうためちょっと複雑なモデルを書くと1ヶ月とかかかってしまう。研究の有用性を示す上でかなり重要な実験がそういう状況に陥ったので結構焦り、2週間くらい鬱になっていたんだけど、なんとか状態数が少なくなる別の実験を思いついたので無事研究が終わった。

今後の進路

今学部4年生なんだけど、4月には現在のバイト先にエンジニアとして就職する。

何で大学院行かないのか

僕の大学は9割弱は大学院行くし、僕と仲がいい友達の中で就職する人は見たことないんだけど、就職する。 メリットもデメリットもたくさん考えているんだけど、先に自分が進学するデメリットのほうを一言で言っておくと、「大学院に通うには非常にお金がかかるので自分が長時間働かなければならず、それだと勉強や研究にかけられる時間が少なくなってしまい、お金と時間を失って得るものが中身の無い学歴だけになるから」。

そこそこ真面目に勉強しているのもあって学費はいつも半額免除されているし奨学金も全額無利子で借りられているんだけど、地方出身の人間が東京に下宿して大学に通うのは相当金がかかるので、4年間結構バイトをした。 特に3年の後期とかは必修の1科目を覗いてそれ以外の時間フルタイムで働いていた。今の職場にはすごい待遇をよくしていただいているんだけど、それでも生活費が高すぎて収支がプラスに傾かなくて進学できるだけのお金は貯まらなかった。

僕は入学した直後からプログラマとしてバイトをしていて、2回の転職を経て今の最高の環境で働かさせてもらっている。 けど学生の本分は勉強なので、本当は今しかできない勉強や研究にたくさん時間をあてるべきだと思っていて、それにしては働く方に時間をかけすぎた。 最初の3年間は家賃光熱費込み月2万で生活できる寮に入れたのでよかったけど、4年目とかはそうじゃなくなって完全に厳しくなり、週2回のゼミしかないからよかったけど日常的に授業がある修士を続けるのは多分無理だと思った。

以上がネガティブな理由で、もしこれだけなら無限に借金してでも貴重なコンピューターサイエンスに関する知識を得にいった可能性がある。 ポジティブな理由としては、プログラマは若いうちが重要だと思っていて、研究者を育てるのに特化した機関で論文を書いているよりは企業でプログラマとしてコードを書いているほうがより自分の理想に近づきやすいと思ったから。 これが本当かどうかは誰にもわからないと思っていて、単に僕が「自分の見聞きした話からそういう仮説を立てて決断した」というだけ。

どちらかというとこういう期待があって自分の一番行きたい企業に行けるので、ほとんど不満とかなくて将来への期待のほうが大きい。 早く社会人として成果を上げられるようにがんばりたい。