2016年度 ソフトウェア工学演習II
- シラバス: 「文章作成および口頭発表、グループワーク活動など」と「エンジニアリングデザイン能力などの課題解決能力」のそれぞれで6割以上の成績に達している必要があることに注意.
- 情報技術専修コースの学習・教育到達目標
- スライドの書き方,教員による添削例(ビフォー・アフター)
- 論文の書き方
- 第1回レポート,数学的帰納法による証明の例
- 第2レポート: このスライドのExercises 1,2 を解いてきて下さい(解答に必要とされるであろう時間: 30分).余力があったらExercise 1[Optional] を解いてきて下さい.解答だけでかまいません.
- 提出先:理工学部合同研究室,締切:2016年10月14日(金)15:30
- 解答の解説, 1(Optional) の解答には以下の方法がある
- n=4で決めうつ方法(一般解法ではない)
- Reversible McCarthy’s Generate & Test Algorithm + Bennett’s Method (スライドで解説されているもの)
- Reversible Levin's universal search + Bennett’s Method
- 渡邉くんの解答を改訂したもの (次の論文の可逆シミュレーションの一例になっている.Yokoyama et al. Optimizing Reversible Simulation of Injective Functions. Multiple-Valued Logic and Soft Computing 18(1): 5-24 (2012))
- 『コンピュータサイエンス入門〈1〉』で出題されている実装の問題「問14.14(p.213) ラムダ式からコンビネータ式へのコンパイラ(★★★3名まで) 」の解答例
- エンジニアリングデザイン(レポート16点満点,プレゼンテーション4点満点):
- レポートと発表資料の提出先:WebClass,締切:2016年12月8日(木)23:59
- 発表日:12月12日(月)2限
- 学期末レポート:調査の結果をまとめる(各自で調べた文献の要約)。その過程でプログラムを作成した場合は、作成したプログラムとその解説を追加しなさい。さらに、事例について研究した場合はその報告を、理論研究が進んだ場合はそのまとめを書きなさい。
エンジニアリングデザイン
プロセス
- 現状の把握
- (主体を確定)問題の発見
- 課題の設定(目的の設定)
- 解決策の立案
- 解決策(代替案)の立案
- プレゼン資料とレポートの作成
- 講評
テーマの候補案
- 9/19(月)に考えた問題点
- レポートの提出期限の確認が大変
- PORTAが重い,対応ブラウザが少ない
- 遅刻を減らす
- 食堂・コンビニが混雑
- WebClassのスマホ版の改善
- イベント・説明会・休講情報の通知が欲しい
- 就活の情報,マイナビも一緒に見たい
- 履修登録の時の科目フィルタリング,カテゴリとそこから選ぶもの
- その他の案
- 高級プログラミング言語同士の翻訳(教科書にある簡単なものができればいい)
- Janusでセルオートマトンの実装
- R-CORE解釈器の実装
- レゴマインドストームのC・Javaでのプログラミング
- R-WHILEへのプロシージャの追加
- R-WHILE rewrite rule から R-WHILE への翻訳器
- 可逆言語の可逆性を定理証明器Coqで証明
- 可逆チューリングマシンプログラムの作成
- 可逆フローチャート言語の実装
- 可逆構造化定理の拡張、変数の数、別証明
- C言語プログラムの採点
- C言語プログラムのオンラインジャッジ
- 可逆なC言語のサブセットを求める
- RobertのLR(0)の言語 to PISA のコンパイラ
- Janusで基本的なプログラムを整備する
- 工学的にレゴマインドストームEV3のプログラムを開発する方法
- レゴマインドストームEV3を用いたプログラミングの学習
読むべき論文の探し方
2016/10/18大久保君からの質問を受けたので、読むべき論文の探し方を説明します。
- 研究者から探す: 良い論文を書いている研究者の論文は良い論文で,ある分野の論文を発表した研究者は別の論文でもその分野の論文を書いていることが多い
- DBLP, ACM Digital Library, CiNiiなどから自分の興味がある研究をしている研究者を見つける. 例:Tetsuo Yokoyamaを検索
- 研究者のホームページから探す.例:http://tetsuo.jp/
- ディジタルライブラリーなどでチェックして論文をみつける
- 優れた面白い論文を書いている人を探す.良く引用される研究をしている人を探す.例えば,ACM のCitation Count をチェックできる画面の例→ http://dl.acm.org/author_page.cfm?id=81100100963&coll=DL&dl=GUIDE&CFID=136492385&CFTOKEN=72813982
- 論文から論文を見つける.
- 論文に載っている参考文献をたどる
- その論文を引用している文献をディジタルライブラリーの"cited by"などから見つける
- Survey論文やReviewからたどる
- 質の高いとされる媒体から見つける
- 先輩の卒論,研究会報告(日本語,英語) < 日本語の論文誌 < Letter < 権威ある国際会議録 (Proceedings on Conferences/Symposiums/Workshops/...) < 権威ある国際論文誌(Journals/Transactions)
- われわれの分野では,DBLPに掲載される国際会議録と国際論文誌をチェックすることが重要. DBLPに掲載されない英語論文は,基本的に学生は読む必要がない.(これは「基本的」であり,例外も大いにあったりする.)
論文が発表されたメディアのインパクトの用いかた
例えば,以下のようにして論文の出版されたメディアのインパクトを推し量って,良い論文を探す助けにすることができる.
ある研究者(横山)の研究一覧から最近の「Fundamentals of reversible flowchart languages 」という論文が「Theoretical Computer Science」に掲載されたと知ったとする。SJRが0.720でランクが54位という雑誌であることが分かった。
また,2008年の「Reversible Flowchart Languages and the Structured Reversible Program Theorem」は,「International Colloquium on Automata Languages and Programming (ICALP)」で発表されたのを知ったとする。Computer Science Conference Rank(WebArchive.org)によるとRank Aの国際会議であることが分かった。さらに,2015年「APLAS ASIAN Symposium on Programming Languages and Systems (APLAS)」で発表の論文もあったがRank Bの国際会議であった。
以上によって,他に読もうと思っていた論文よりこれらが高ランクであった場合は,これらの論文を優先して読む,などとすると良い。たとえば,上の例では SJR0.72 > RANK A > RANK B の順で読む,などとする。ただし,上ではRank Aの古い論文とRank Bの新しい論文では,後者を優先して読む,という選択もあり得る.さらに,雑誌論文が出版されるのは,ずいぶん研究の結果が確立してからなので,比較的新しい国際会議のAPLASの論文を読んだ方が良い,という選択もあり得る.
参考文献
- 大久保雄飛,横山哲郎,金山知俊:二分木のランク計算のクリーン可逆シミュレーション,日本ソフトウェア科学会第33回大会,日本ソフトウェア科学会,2016. 改訂されたPDF
- 別府 俊幸: モノと道具を再構築する--「エンジニアリング・デザイン」とは (2014). http://www.nikkeibp.co.jp/article/miraigaku/20140316/388183/ 2016/08/31アクセス.
- エンジニアリング・デザインとは何であるかを平易なことばと豊富な例で語っている.
- 琉球大学工学部電気電子工学科講義資料. http://dsl4.eee.u-ryukyu.ac.jp/DOCS/ed/index.html
- http://research.microsoft.com/en-us/um/people/simonpj/papers/giving-a-talk/giving-a-talk.htm