かずきち。の日記

サーバサイドエンジニアのつぶやき

卒業研究のいろは

はじめに

大学4年生の春に研究室に配属されて、あっという間に1年が過ぎようとしています。卒業研究を終えるにあたって、またこれから修士課程に進学するにあたって備忘録を綴っておこうと思います。きっとまた修士課程でも研究に悩む自分に向けたメッセージであり、右も左もわからないまま研究室に配属されてからの1年の軌跡です。大学の研究室はいろいろありますが、そのうちの研究室のひとつの経験談として読んでいただければなと思います。

どんな研究室か

ウェブ系の研究室で、いろいろな大学(東京大学総合研究大学院大学慶應大学、同志社大学など)の学生が所属している珍しい研究室でした。B4*1は自分を含む3人だけで、M2*2以上の方ばかりでした。また海外の大学から頻繁にインターン生がやってくる研究室でもありました。幸運なことに学生1人に対して助教2人が指導してくれることになり、毎週のようにほぼマンツーマンで指導してもらえました。わからないことでも気軽に聞ける環境はありがたかったなと思います。

研究室に入って思ったこと

初めての研究室のミーティングからひよった記憶があります。とりあえずミーティングで話されていたことの9割以上が理解できなかったと思います。毎週、進捗報告をする中で博士課程の人の「今週はFirefoxのアドオンを作ってみました」とかさらっと言っていたのにビビったのも覚えています。とにかく毎週のように見せられるデモのクオリティが高くて驚きました。1週間で作れるものなのか??とか思っていましたし、専門知識や実装能力のレベルの高さについていく自信はほとんどありませんでした。でも1年たった今なら去年よりスキルは格段に上がっているような気がしますし、ミーティングの内容も少しは理解できるようになってきました。

研究テーマが与えられるまで

3月下旬に研究室に配属されてから4月上旬までは特に何もしていなかったと思います。強いて言えば、指導教員の担当する授業のTAとして授業のお手伝いをしていました。3年生がプログラムを書く相談にのっていました。そして4月下旬頃に「こんなテーマがあるけど、どれをやりたい??」と言われて決まった気がします。選択肢は4〜5くらいあって、自分のやりたいテーマを選べました。他の研究室では一方的に研究テーマが決まることも多いですが、自分の研究室はとても自由で自分のやりたいようにできました。しかし先輩の先行研究や引き継ぎ資料がまったくなかったので、ゼロベースで研究が開始しました。

研究の進め方

研究テーマが決まったところで専門知識や実装能力がなければ、何も進められません。まずは関連論文を読みました。日本語の論文は読みやすいですが、英語の論文はアブスト*3だけでお腹いっぱいになります。また関連するウェブページも読みあさったと思います。あとから自分の調べたウェブページを閲覧できるようにソーシャルブックマーク*4を利用するのがいいと思います。あとで論文を執筆する際に便利で役立ちます。研究ノートを作って、指摘を受けた部分や新しいアイディアをメモしておくのも有効です。

  1. 研究分野対象の動向を知る、関連文献を読む
  2. 書籍、論文、雑誌、啓蒙書
  3. 学部の専門用語を常識単語として利用する

これらをふまえた上でどのような研究をしていくかを考えていきます。具体的には「研究テーマの背景や問題点」、「研究テーマの目的や社会的価値は何か」、「研究テーマのどこの問題点にフォーカスするか」などだと思います。1年で実行できるか、こうゆう手法を勉強した方がいいなどと助教と相談しながら決めました。簡単にまとめると

  1. 高度な分野を受け身で勉強する姿勢→×
  2. オリジナルなことばかりである→×
  3. 先行研究を踏まえ、かつ新しい知見を加える→○

といった感じになります。
研究のアプローチ、方法論としては

  1. 仮説検証研究
  2. 実態研究
  3. 事例研究
  4. 参与観察研究
  5. アクションリサーチ
  6. 文献研究
  7. 理論研究

などがあげられますが、自分は仮説検証研究に該当する研究でした。自分がどのパターンに属するかで研究の進め方も決まってくると思います。


次に実装能力の向上が求められます。4年生までに高いスキルを持っている学生もいるとは思いますが、少なくとも自分は戦力外通告をくらっていました。基本的に1週間ごとに1つのテーマの勉強会をしていました。自分の研究室ではオライリー集合知プログラミング*5を取り扱いました。

集合知プログラミング

集合知プログラミング


また研究のはじめは開発環境の整備に多くの時間が割かれました。Linuxのインストール、開発言語やデータベースのインストール、研究に必要なモジュールやライブラリの追加、文字コードの統一などです。これが思いのほか時間がかかったので、序盤の研究はかなり不安になりました。開発環境の整備がさくさくっとできるようになるとストレスも減ると思います。


1週間で何も進まないこともある中で、いろいろな試行錯誤がありました。それでもミーティングの時に何か進捗を報告をしなければいけない義務感でミーティング前夜は毎週必死でした。「今週は何をやったのかな??」「何も進んでいませんw」。これは何が何でも避けたいパターンです。いわゆるやったふりというのも必要な時が出てきますwというわけで、これらを踏まえた上で研究で必要なスタンスをまとめてみます。

  1. 自問自答してみる
  2. できる限り理解しようとする
  3. 研究を楽しむ
  4. 研究ノートを作る

論文の書き方

今回は卒論のようなフルペーパー*6の書き方についてまとめます。自分の学科では目安として50ページ以上と言われていました。こんなに長いものをどこから書いていけばいいのか、研究室で教えてもらった方法です。自分の研究室ではLaTex*7を使用しました。スタイルファイル*8の準備も大変でしたが、ここでは割愛します。

  • 章について考える

一種のToDoリストです。卒論を書くにあたって、ゴールが見えなければ始まりません。とりあえず枠組みだけを作って、今まで自分がミーティングなどで作ったレジュメの中から使えそうな文を埋め込んでいきます。あとは書けるところからひたすら書くということです。

1 はじめに
2 ○○の概要
2.1 ○○とは
2.2 〜〜
3 関連研究
4 〜〜
5 実証実験
6 考察
7 おわりに

ここで注意するのは「はじめに」と「おわりに」は書かないこと。これらは研究をどのようにまとめるかを決定するもので、書き方によって論文の見え方は大きく変わってしまいます。それゆえ、「はじめに」と「おわりに」は論文の最後に執筆することです。また表や図は論文に載せるだけではなく、必ず本文中で説明を加えなければいけません。表はあくまでオマケという認識で書くことです。

  • 書くことを箇条書きにする

実際に本文を書き始める前に論文構成のもとで、書きたいことを箇条書きにします。そうすることで、視覚的に構成を把握することができ、まとまった論文を書くことができます。

  • 接続は無視して、とにかく書く

文章の接続を気にせず、伝えたいことをひたすら書きます。

  • てにをは、詳細の修正

文章のてにをはなど、文章の詳細について修正を加えていきます。



自分の研究室では助教に何回か赤ペンを入れてもらって訂正をすることができました。基本的にチェックを受けるものだと思いますが、ノーチェックで提出せずに一度でも目を通してもらってコメントをいただくと見違えるようによくなると思います。

パワーポイント

論文を書くこととは異なるスキルが要求されるものだと思います。審査の教員にいかにわかりやすく説明できるかを心がけて作成します。色遣いから文字の大きさや配置などトータルコーディネートが問われるような気がします。
今後のより良いパワーポイントを作るための簡単なエッセンスで個人的にいいのではないかと思っているものです。

  • 時間を守る
  • 問題点を述べたら、最後でも再び触れる
  • 知識のない人でもわかりやすいように心がける
  • 想定されうる質疑を考えまくる
  • 質疑を想定した付録を作成しておく
  • パワーポイントに書いたことは必ず口頭で説明する
  • 研究における難しかった点を強調する*9
  • 専門用語、略語は極力使わない
  • 難しい個所では具体例を入れる
  • SmartArtを使うとビジュアル的にかっこいい*10


あとは普段通りのノリで乗り切る限りです。質疑応答で自爆しないように、冷静に対応しましょう。
東京大学では審査員は1人あたり6点の点数を持っており、平均2.5点以上なら優の評価になっています。また平均得点が0.5点以上なら可の評価です。
さて、そんな自分も明日は審査会です。無事卒業できることを祈っています。

*1:学部4年

*2:修士2年

*3:論文の短い要旨

*4:ブックマークをウェブ上で保存するもの

*5:Pythonを利用している

*6:長い論文

*7:テキストベースの組版処理システムで数式など簡単に書ける

*8:論文のスタイルの設定ファイル

*9:こんなに難しかったんだよと

*10:なんかおしゃれでは??w