卒業論文の書き方と構成

一般的には,次の項目により構成します.本研究室独自のローカルルールや分野による違いもありますので、外部の人にはあわないかもしれません。

1.背景と問題点(研究の必要性)

いきなり研究目的を挙げても分野外の人にはわかりません。そこで、この研究をする動機(社会的背景、ニーズ、研究領域の説明など) ・・・どういう分野で何を対象(課題)としているの か?を書いていきましょう。読者が研究対象(領域)をイメージできるように、大きな(一般的な)視点から徐々に絞り込んでいきます。

想定環境

どのような環境を想定しているのか?前提条件は何か?を明確にしましょう。ここが、非現実的であると意味が無いです。

ニーズ、課題

想定した環境において何が問題点であるのか?何か問題や必要性があるから研究をするわけで、ここはかならず論じなければいけません。

関連・先行研究

ニーズがあるから作った(ニーズに対応するシステムを作った)という内容は研究というより製品開発です。ニーズを解決するために、(技術的な)課題があることが明らかにし、その課題を解決するという内容であれば、それは研究らしくなります。想定環境を対象とした先行研究、あるいは問題点を解決する先行研究があるはずです。先行研究のない研究などありえません。研究を挙げるというのは、論文誌、学会発表論文集などをさします。それらを挙げていきます。卒論修論では、それをダラダラをあげるのではなく、アプローチ毎に分類していくのがベターです。

また、関連研究にも、大雑把に言って 国際学会論文>国内学会論文>国際会議論文>>国内発表論文というレベルがあります。研究らしく論じんるのであれば雑誌やウェブ(特に個人的なもの)は参考文献としては望ましくありません。

関連研究を見つける方法はCiNiiを利用すると良いでしょう。

本研究の位置づけ(対象とする研究課題)

先行研究の成果を元に、本研究で何を解決するのかを明らかにします。先行研究は挙げるだけではダメです。普通は、問題があるから作るわけです。

2.目的

    • 問題点から問題を解決するための要求仕様を明確にする。(要求仕様を明確にする)
    • 要求仕様を満たすための問題解決のアプローチ(方法論)を書い てください。
    • #問題点についてすべて解決するように書く必要はありませんが、どのような位置づけになるのかは明確にしてください。

上記、問題点と目的は明確になるように書きま しょう。問題点を理解してゴール設定できることが卒業研究で最低限望まれるレベルですので。

3. 手法

  • どのような方法で目的を達成するのかを書いてください。
  • 実装の具体例 ではなく、抽象レベルで説明できれば研究としての格も上がります。(ここが一番難しいので、こだわる必要はないです)どんな技術を用いたのかも書いてくだ さい。
  • 「利用した技術(テクノロジー)」ということで、どのようなツールやライブラリを利用したのか。。。特に実装に関係する部分を書いてください (これは必須です)。
  • ここは、いわゆるマニュアル的に書いて、第3者(後輩など)が参考になるような記述にしてください。例えばソースコード例をも挙げて下さい。

4. 実装

作ったものを具体的に書いてください。

    • システムの概要・機能
    • システム構成図
    • 画面構成
    • 画面遷移
    • クラス図
    • シーケンス図
    • ER図
    • API仕様....etc

システム構成図

システムの全体像および、システムがどのようなモジュールで構成されているかを説明する図です。ここはできるだけ実装に近い方が望ましいですが、システムのモジュール化は意外と難しく、モジュール化を前提に実装していないと、綺麗な図は書けないでしょう。

画面遷移

画面構成(1)

画面構成(2)

データベース設計

クラス図

クラスの全体像(クラス間の関 係)を先に書き、それからメンバ変数、関数などで各クラスの詳細を述べていく

シーケンス図

C++やJavaなどのオブジェクト指向言語で開発をおこなうと、たくさんのクラスを設計することになり、またクラス間でデータのやり取りをすることになります。シーケンス図を書くとその関係がわかりやすくなります。シーケンス図とは、

    • ある機能を実装する際のクラス呼び出しの手順の記述

を目的とします。「機能」といえば、たくさんの機能を実装していると思います。全て書いているとキリがありませんので、その取捨選択は考える必要があります。少なくとも、自分の研究の主となる機能については、きちんとシーケンス図で表現しましょう。なお、単独のクラスで処理が完結している際は、シーケンス図は不適切です。フローチャートでアルゴリズムを説明しましょう。

書く際は以下の点に注意してください。

    • 関係するクラス名
    • クラスに渡すデータ
    • 戻り値のデータ

いずれも、データの種類を書くか実際の変数名で書くかは自由にしてください。できれば、実際にクラスで定義してあるメソッドやフィールドを記入することで、ソースの流れが読みやすくなります(下記のサンプルではメソッド名などは書かれていませんが、、、、)。

ER図

API仕 様....etc

5.結果/評価/考察

目的を達成できたのかが判断できるような結果や評価、考察について述べます。

(目的、方法、結果を書いてください)

実装結果 ・・・ どのようなものを実現(完成)したのか?動作例など。

評価 ・・・ 性能評価やユーザ評価などによ り、有効性を証明します。

考 察 ・・・ 作ったものについての考察

参考文献

参考文献で研究の格がわかります。参考文献により、どこに目線を向けているのかがわかるからです。ないよりはあっ たほうがいいです。大学院の進学する学生は必須です。

参考文献の書き方

著者名,著者名:論文題目、論文誌名、巻、号,ページ番号、年度、

例)越智洋司、論文の書き方、越智ラボ研究報告書、Vol.1,No,1,pp12-17,2010

謝辞

謝辞は必ず書いてください。本当に謝辞の気持ちがあるなしに関わらずスタイルの問題です。世の中そういうもんです。書き方は過去の卒論を見てください。

よい文章を書くコツ

全体像は先に見せろ

たとえば、4つの機能を説明したいとき

4.1 ○○機能

4.2 ○○機能

4.3 ○○機能

4.4 ○○機能

と節で列挙していくと、読んでいきながら、「いったいこの機能説明はどこまでつづくんだろう?」「このシステムは何個の機能を持っているのだろう?」と不安になります。 特に卒論はページ数が多いので全体像を把握することは困難となります。

よって、「機能概要」の節を設けて事前に、システムぜ実装した機能を箇条書きで説明し、詳細を以下に述べる。。として、以降の節を説明するとわかりやすくなります。

難しいことは簡単に!簡単なことは難 しく!

これは一番大切なコツです。難しいことを難しいままに説明すると 「わけわからん」「説明下手」と評価されます。また、簡単なことを簡単にいうと、「なんだそれだけのことか。。」と評価されません。

抽象度を上げて考えて説明せよ

天才な人は、物事を抽象的に捉えてそれを 具体的な策に落としていく。。。いわゆるトップダウンな考え方に長けています。一方、我々のような凡人はいきなりそう考えることが難しいです。ですから、 具体的なことをやりながら、その抽象度を上げて考えていく。。ボトムアップ的な思考をせざるをえません。ただし、説明する時は天才のごとくトップダウンに 説明しましょう。それが「賢く」思われるコツであり、簡単なことを難しくいうことにつながります。