レポートに関して#
Important
レポートの期限は今年度の講義についての「レポートの提出期限」を確認してください.
各部の内容を整理してレポートを提出します.
第一部と第二部では,レポートは初版提出と最終版提出に分かれており,初版提出後にピアレビューを行い,改善した上で最終版を提出します.第三部では,初版提出はなく,最終版のみの提出となります(もちろんピアレビューも行いません).
Attention
予めレポートの初版提出の期日を設定していますが,その直前の回が終了してからレポートを作成し始めてピアレビューに間に合うように初版を完成できるという意味ではまったくありません.
毎回の実験の中でレポートの材料を整理し作成してきたことを前提とし,最終的に全体の論旨や整合性を確認し,不足している情報については再実験を行うなどの対応に時間が必要だと思われるので設定しているということです(そのための時間を明示的に設定しているのは第一部のみ.第二部以降は自身でレポート執筆の計画を立てて取り組むことになります).
レポート提出方法(初版提出)#
初版提出は第一部と第二部が対象であり,個人でレポートを作成して提出します. 以降に記載されたテンプレートを参考に作成し,表紙の記述を「初版」として下さい. 第一部と第二部の初版レポートはそれぞれfsの以下の場所へ提出して下さい.
第一部:
\\fs.inf.in.shizuoka.ac.jp\share\submit\(実施年数)情報科学実験A\第1部初版レポート
第二部:
\\fs.inf.in.shizuoka.ac.jp\share\submit\(実施年数)情報科学実験A\第2部初版レポート
提出するレポートの形式は以下のファイル名の Word ファイルおよび ZIP アーカイブとします. 例えば,第一部のレポートを A1 グループの学籍番号 7091-1234 の人が提出する際は以下のファイル名で提出してください.
CS実験A_Part1_A1_7091-1234初版.docx
CS実験A_Part1_A1_7091-1234初版データ.zip
Word ファイルはレポートファイル本体となります.zip ファイルにはレポート作成にあたって利用した図表,ソースコードなどの元データを格納してください.
ピアレビューの準備#
初版レポート提出後である第一部のDay4並びに第二部のDay9では,各自のレポートのピアレビューを行います.そのための準備として,テンプレートのレポートピアレビューのページをグループの人数分(自分は除く)だけコピーして追加しておいてください.最終的には以下のような構成になります.
表紙
レポートピアレビュー(1人目用)
レポートピアレビュー(2人目用)
レポートピアレビュー(3人目用)
:
レポートピアレビュー(N人目用)
目次
:
レポート提出方法(最終版提出)#
Caution
第一部および第二部と第三部で最終版レポートの作成方法や提出方法が違います.以下を必ず確認して提出してください.
第一部と第二部#
下記3点をそれぞれ 別ファイルで 提出してください
ピアレビュー時のレポート (履歴やコメント残したもの)
ピアレビューを受けて改善した最終版 (コメント等全て削除したもの)
データファイル(最終版の作成に必要だったデータファイル)
最終版は初版からのレポート改善の他に以下を追加して下さい.
各自で行ったピアレビューの活動に対する考察のページを最後に追加してください.
表紙の記述を「最終版」としてください.
第一部と第二部の最終版レポートはそれぞれfsの以下の場所へ提出して下さい。
第一部:
\\fs.inf.in.shizuoka.ac.jp\share\submit\(実施年数)情報科学実験A\第1部最終版レポート
第二部:
\\fs.inf.in.shizuoka.ac.jp\share\submit\(実施年数)情報科学実験A\第2部最終版レポート
提出するレポートの形式は以下のファイル名のZIPアーカイブとします. 例えば,第一部のレポートを A1 グループの学籍番号 7091-1234 の人が提出する際は以下のファイル名で提出してください.
CS実験A_Part1_A1_7091-1234最終版.zip
提出するアーカイブファイルには以下のデータを格納してください.
MS Word形式のピアレビュー版のレポートファイル(
CS実験A_Part1_A1_7091-1234ピアレビュー版.docx
)MS Word形式の最終版のレポートファイル(
CS実験A_Part1_A1_7091-1234最終版.docx
)レポート作成にあたって利用した図表,ソースコードなどの元データ(
CS実験A_Part1_A1_7091-1234最終版データ.zip
)
第三部#
第三部のレポートは以降に記載されたテンプレートを参考に作成し,fsの以下の場所へ提出して下さい。
\\fs.inf.in.shizuoka.ac.jp\share\submit\(実施年数)情報科学実験A\第3部最終レポート
提出するレポートの形式は以下のファイル名の Word ファイルおよび ZIP アーカイブとします. 例えば,A1 グループの学籍番号 7091-1234 の人が提出する際は以下のファイル名で提出してください.
MS Word形式のレポートファイル(
CS実験A_Part3_A1_7091-1234.docx
)レポート作成にあたって利用した図表,ソースコードなどの元データ(
CS実験A_Part3_A1_7091-1234データ.zip
)
レポート提出に際する注意事項#
fsへのファイルアップロードの際は各ファイルの容量を最大10MB程度としてください.もし,10MBを超える場合は以下の点に関して工夫してみてください.
レポートに貼り付ける画像の解像度を落としてください. 一般的には横幅800px程度で問題ありません.
geotag.csvやtag.csvの添付は必要ありません.また,DBのダンプデータ,図表作成の元となったプログラムの出力データ等も同様です.もしデータがソースコードに紐付けられているならばデータの一部分を掲載してください.
動画の添付に関しては,動画における動作を説明するスクリーンショットを何枚か掲載する,あるいは教員がアクセス可能な場所へのリンクを掲載してください(ファイルに容量があれば添付してもらって結構です).
もし万が一,fsで提出できない人は,例外としてメール添付によるレポート提出も受け付けます.メール添付での提出の場合,数日たっても受領のメール返信がない場合は,添付なしのメールで提出できているか確認メールをお願いします.
レポート提出方法(期限に間に合わなかった場合)#
期限に間に合わなかった場合は,メールにて提出するようにしてください.提出先はメインページに書かれた質問先メールアドレスまでお願いします.
Important
期限後に提出物の誤りを見つけて再提出したい場合は,ファイル名の最後に「(2回目)」のように再提出であることが分かるよう記載して提出してください.ファイル名から最新版の判断がつかない場合には,初回提出版を用いて評価されることがあります.
レポートの詳細#
以下の内容を確認した上で,参考文献や以下のサイトなども参考に,体裁の整った良いレポートを作成してください.
第一部#
第一部のレポートは,以下のテンプレートを参考に作成し,課題ごとに実験の目的,実験環境,実験結果,結果に基づく考察を記載してください.
結果が想像していた結果と異なっていたとしても,その結果になったという事実に変わりはありません.なぜ,そのような結果になったのか,その結果は有効なのかそうでないのか,などなど考えて察して書く内容は多岐に渡ります.想像していた結果と異なっていたとしても,その結果に対する深い考察をしてください.「実験計画法」や「統計解析」についても意識していけると今後の将来に役立つと思います.
そのため,レポートには実験を再現するために必要な情報を正確に記述しておく必要があります.想像していた結果と異なる結果が得られたとしても,その結果を第三者が再現できるための記載が必要です.限られた時間でレポートをまとめ上げてください.
また,グループで分担して実験を行ったり,相談をしたりすることは推奨しますが,レポートをまとめるにあたっては,あくまで各自でしっかり理解して各自の言葉で工夫して記述してください(必要に応じて参照情報など追記したりしてくれて構いません.その方が勉強していることが伝わるかもしれません).
テンプレートの内容は以下のようになっています.
表紙
レポートピアレビュー用のシート
目次
図目次
表目次
レポート本文
引用文献
付録
表紙・目次・各章の構成・図表の掲載方法・引用文献の引用方法/掲載方法・付録の掲載方法など,指定されたスタイルに従ってレポートを作成してください.MS Word のスタイルや目次,図表,引用文献の機能を利用していますので,これらの機能を使って下さい(そうすれば,目次・図表目次・引用文献などは自動的に生成されますし,本文中の参照とのズレも抑制されます).引用文献のスタイルは APA(MS Word は APA 6 に対応しています)を使っています.
レポートには実験を再現するために必要な情報を盛り込む必要があります.必要に応じて章節を増やしても構いません.
1. Day1 環境構築とプロトコル解析
1.1 実験の目的
1.2 実験環境
1.3 実験結果
1.4 考察
2. Day2 通信性能の計測
2.1 ...
第二部#
第二部のレポートは,以下のテンプレートを参考に作成し,課題ごとに実験の目的,実験環境,実験結果,結果に基づく考察を記載してください.また,各自が実施した部分が分かるようにしてまとめてください.
以下は,単なる例です.必要に応じて読み手が読みやすいように項目名を変更したり,フォントや背景色を変更したり,章節を増やして構いません.
1. はじめに
* 第二部の目的
* 目的達成のために立てた戦略
* 第二部で実施したことのハイライト,などを記述してください.本章を読めば,このレポートに記されたポイントや完成度
など分かることが理想的です.
2. 複数クライアント対応(必須)
2.1 様々な実装方法
2.1.1 select()での実装について,fork(),pthreadでの実装との違いが分かるよう簡潔明瞭かつ論理的にまとめてください.
2.1.2 fork()での実装について,pthread,select()での実装との違いが分かるよう簡潔明瞭かつ論理的にまとめてください.
2.1.3 pthreadでの実装について,fork(),selectでの実装との違いが分かるよう簡潔明瞭かつ論理的にまとめてください.
2.1.4 Apacheでの実装について,バージョンやパラメータ(デフォルト設定かと思いますが)など記述してください.
2.1.5 独自方式での実装について,読み手が実装を再現できるような情報を全て記述してください.
2.2 HTTPベンチマークプログラムの機能拡張
どのような機能拡張をどのように実装したのか記述してください.
2.3 性能比較
各実装方式での性能比較を行い,図表を用いて計測結果をグラフ化するとともに,そのような結果になった理由を考察してく
ださい.もちろん実験を行う前に,班員間でどのような実験結果になるのか十分議論し予想内容を整理してから性能比較実験
を行ってください.
3. セキュリティホール(発展)
3.1 バッファオーバフロー
バッファオーバフローとは何か,Simple HTTPサーバをバッファオーバーフローさせるためのコード,バッファオーバフロー
している状況について記述してください.
バッファオーバフローしないようにするためのSimple HTTPサーバへの変更部分について記述してください.
3.2 バッファオーバランで任意のコマンドを実行
バッファオーバフロー対策をしていないSimple HTTPサーバに対し,バッファオーバランを利用してコマンドを実行するため
の攻撃コードと,実際に攻撃が成功している様子を記述してください.DEPやASLRなどセキュリティ機能を無効にした場合,
どのように無効にしたか読み手が再現できる条件を明確に記載してください.
3.3 バッファオーバランでリモートからシェルに接続
バッファオーバランを利用してSimple HTTPサーバでシェルに接続するための攻撃コードと,実際に攻撃が成功している様子
を記述してください.
4. HTTPサーバ機能拡張(選択)
4.1 設計
どのような機能拡張をSimple HTTPサーバのどの関数の部分に実現するのか,Simple HTTPサーバの関数では足りない場合は
どの部分にどのような関数を追加するのかなど全体像について記述してください.
4.2 実装
具体的にそれぞれの機能拡張をどのように実装したかを機能拡張毎に書いてください.複数の機能拡張をまとめて実装した
場合(例えば4XX系のステータスコードと認証など)は,一緒に記述して構いません.ただし読み手が気付くよう工夫して記述
してください.
4.3 動作検証
上記の機能拡張が意図した通りに動作し,実装に不備がないことを示す証拠となるスクリーンショット(例えばFirebugで
のキャプチャなど)を載せてください.
4.4 性能評価
上記の機能拡張が意図した通りに動作し,実装に不部がないことを示す証拠となるグラフ等を記述してください.例えば
Keep-AliveやHTTP/2のどの仕様を実装したことで,ベンチマーク結果が速くなっているのがなど示せるとよいと思います.
5. 関連技術
ここを書くのは必須ではありませんが,レポート作成の過程で調べた書籍やホームページURLなど適宜アピールしてください.
6. おわりに
* 目的達成に向けた取り組みの結果と今後の課題 (未実装部分や今後の関心毎など)
* 第二部内容についての感想,など
第三部#
第三部のレポートは,以下のテンプレートを使って作成してください.
以下の章構成を参考に完成させてください.目次はあくまで一例ですので,必要に応じて章節は追加して構いません.
第1章基礎課題(全員)
1.1.実装A ← 応用課題で取り組んだ実装Aの内容もここに書いてください
(ア)仕様
ここに記載してください.
(イ)実装の特徴
ここに詳細な説明を記載してください.
1.2.実装B
(ア)仕様
ここに記載してください.
(イ)実装の特徴
ここに詳細な説明を記載してください.
1.3.実装C
(ア)仕様
ここに記載してください.
(イ)実装の特徴
ここに詳細な説明を記載してください.
1.4.性能比較
(ア)仮説と実験条件
仮説を検証するための実験条件を,第三者が再現できるよう図表を用いて記載してください.
(イ)結果
ここに様々な観点(リソース使用状況,設定値(ソースコード,OS等),など)で分析(試行回数,検定,
平均,95%信頼区間,箱ひげ図,など)した結果を図表でまとめてください.
(ウ)考察
結果に対する考察を論理的にまとめてください.
第2章応用課題(担当した方のみで構いません)
2.1.超高性能化
(ア)MPM実験の概要と仮説,実験条件
仮説を検証するための実験条件を,第三者が再現できるよう図表を用いて記載してください.
(イ)MPM実験の結果
ここに様々な観点(リソース使用状況,設定値(ソースコード,OS等),など)で分析(試行回数,検定,
平均,95%信頼区間,箱ひげ図,など)した結果を図表でまとめてください.
(ウ)MPM実験の考察
結果に対する考察を論理的にまとめてください.
(エ)KeepAlive実験の概要と仮説,実験条件
仮説を検証するための実験条件を,第三者が再現できるよう図表を用いて記載してください.
(オ)KeepAlive実験の結果
ここに様々な観点(リソース使用状況,設定値(ソースコード,OS等),など)で分析(試行回数,検定,
平均,95%信頼区間,箱ひげ図,など)した結果を図表でまとめてください.
(カ)KeepAlive実験の考察
結果に対する考察を論理的にまとめてください.
2.2.自由課題
(ア)背景と仕様
ここに記載してください.
(イ)実装の特徴
ここに詳細な説明を記載してください.
(ウ)結果と考察
結果に対する考察を論理的にまとめてください.
第3章実験I全般のまとめ(来年度の参考にさせてください)
3.1.実験内容や進め方の改訂について(良さそうな案は反映させたいと思います)
(ア)第一部について
来年度に向けたコメントや具体的な改定案などありましたらここに記載してください.
(イ)第二部について
来年度に向けたコメントや具体的な改定案などありましたらここに記載してください.
(ウ)第三部について
来年度に向けたコメントや具体的な改定案などありましたらここに記載してください.
3.2.実験I全般の感想
実験I全般で得たこと,興味深かったこと,自身や周囲の取り組み状況,
感想など今後の参考にしますので自由に書いてください.
謝辞
本最終課題を実施するにあたって,お世話になった方々をリストアップしてください.
例)学籍番号,名前
また,実験終了後のサーバ初期化や解体作業は,静大花子さんが2017年8月10日に実施してくれることになりました.
ここに記して感謝の意を表したいと思います.
参考文献
本レポートをまとめるにあたって,参考にした文献などを記載してください.
[1]書籍の場合,著者名あるいは編者名,書名,参照ページ,出版社,出版年.
[2]論文集に掲載された論文・雑誌論文・記事の場合,著者名,論文タイトル,学会名,
雑誌名,巻数・号数,掲載ページ,掲載年.
[3]Webページ(インターネットのページ)の場合,作成者(分かれば),Webページ
のタイトル,アドレス(URL),アクセスした日付.
[4]など
付録
ソースコードを以下に貼り付けてくれてもよいですし,全ソースコード(実行形式ファイルは不要)
を圧縮し別ファイルとして添付してくれても構いません.こちらで再現できるファイル群一式がそろ
っていると助かります.