レポートの書き方


プログラミング系の演習

プログラミング系で必要となる文書にはいくつかの種類があり, それぞれ要求される内容が異なる. 一般にレポートを課される場合には, これらの複合体を要求されていると考えなければならないので, 以下の項目が記載されていなければならない。
課題:
課題中で指定していない仕様や機能を自分で決定した場合や、 機能を拡張した場合には、それも記す。
解法:
本筋をなしている解法(アルゴリズム)を記述する。 一般に通用する名称がついていればその名称も記す。 工夫した点は重点的に記述する。
プログラム構成とデータ構造:
全体および各部分の機能を手短に説明する。 また主要なデータ構造についても簡単に説明する。 (一時作業用の変数などの説明は要しない)

処理手順(チャート):
プログラムを処理手順の一定のまとまりごとに手短に説明する。

最近の言語では、通常、function あるいは procedure と呼ばれるような 機能単位があるので、最低限、その単位で機能、入出力、副作用などを説明する。

ひとつの function/procedure が非常に大きい場合には、 その内部をさらに説明する。 この場合、プログラムの各文を一行一行説明するのではなく、 まとまりとして何をやりたいのかを説明するのが大事である。

手法としては、チャート図、流れ図、疑似コード、 日本語などがあるが、それらの中から問題に適した記法で説明する。

ソースプログラム:
プリンタの出力によるソースプログラムのリストを添付する。 なお、ソースプログラムの読み易さ (インデンテーション、注釈、変数名など)にも 十分に配慮すること。
制限条件:
プログラムを使用する上で守らねばならない制限条件を述べる。 (入力があるプログラムの場合には、処理可能な入力値の範囲など。)
実行結果:
必要十分な組の入力データについて、その実行結果を添付する。 テストは正しく動く場合を1つ2つ試しただけでは不十分である。

使用や処理手順に即した各々の場合について、 プログラムが正しく動作していることが 他人にも確かめられるような入力データを選ぶこと。

仕様や処理手順によっては種々の場合分けがあるので、 境界条件(条件による場合分けの境目やループを回る回数の別れ目) に注意して、各々のケースについてテストすること。

考察:
プログラムの完成度についての考察を行なう。

もし誤りがあれば、プログラムのどの段階において誤ったものであるかを推定し、 その訂正方法を考える。 もしプログラムが正しいと確信するのなら、その根拠を示す。

結果的に見て、仕様/機能、アルゴリズム/解法、 プログラミング手法などについて、 それが適切であったか、改善すべき点はないか。 入力データに関するエラーやデータ構造に関するエラー (配列のあふれなど)のチェックに気を配ったか。

解法を自分で選択した場合は、 与えられた問題および使用した言語に対して、 それが適したものであったか。 またコーディング手法に関して反省すべき点がなかったか。


Last Update on