2020年配属者のゼミ
目次
2020年度シラバス
事務的なお知らせ:以下の科目は、JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応します。各科目名の後にあるE-1,2,3,4/F-1,2,3が各小項目に対応します。
- Q1 ソフトウェア工学演習I, E-1,2,3,4
- Q2 ソフトウェア工学演習II, E-1,2,3,4
- Q3 ソフトウェア工学演習III, E-1,2,3,4, 「グループワーク活動」を行う.
- Q4 ソフトウェア工学演習IV, F-1,2,3, 「エンジニアリングデザイン能力などの課題解決能力に関するレポートおよびプレゼンテーションを課す」
2020年度 日程
- 3月16日(月) 配属決定(2020年度新3年生向け研究室配属および履修ガイダンス資料)
-
4月7日4月28日(火)4限 学生研究室 初回ゼミ ノートPCを持参してください
4月28日(火)4限 オンラインで実施
4月24日(金)〜4月28日(火) 初回ゼミ オンライン資料と音声ファイルを各自がダウンロードして確認する形式で実施 - 9月Q3初回 JABEE達成度評価表の提出(JABEEコースの学生のみ)
- 9月下旬〜10月上旬 卒業研究中間発表会:聴講してコメントを提出する
- 1月中旬 卒業研究発表会:聴講してコメントを提出する
- (1月下旬 修士論文 最終試験)
3年 Q1ゼミ
初回 4月24日(金)〜4月28日(火)
まずはガイダンス資料の内容を確認して下さい. 次に,まだ見ていない人は「横山研究室 研究室配属のためのページ」(AXIAのユーザ名とパスワードが必要)を確認してこの研究室ではどのような研究を行っているかを把握して下さい. 「はじめに」も確認してください.
第1回 課題
以下の必須課題を今すぐ行って下さい。余力があれば必須でない課題に〆切りまでに答えて下さい。
- 【必須課題】ガイダンス資料を見て,「横山研 Google Drive 共有フォルダ」にアクセスして下さい。WebClassの火4にある「2020 52A06-008 ソフトウェア工学演習I 」にアクセスして下さい(「LaTeXレポート課題【提出は必須では無い】」と表示されるのを確認するだけでOKです.)。
- 【必須でない課題】サンプルファイルと同様の文書を作成せよ.学生番号・氏名は自分のものに変更しなさい.本課題はLaTeXの練習である.(〆切り:2020/05/29 17:00)
第2回目以降の予定
課題の提出はWebClassから。 ただし,〆切りが5月29日以降の場合はDLサーバから。 下記のそれぞれの〆切りまでに提出して下さい。「スピーカ」のマークがあるスライドはmp4では音声が付きます。
- 5月5日(火) 15:15-16:15 第2回【第2回目はZoomを使う必要はありません。】
- 5月12日(火) 15:15-16:15 第3回【以降は全員がZoomを用います。】
- 5月19日(火) 15:15-16:15 第4回
- アンケート:Q2の曜日時限
- 02b_構造操作的意味論 mp4, PDF, 課題PDF/当日の追加課題PDF【〆切5月23日(土)21:00】(課題PDFは前回と全く同じ問題.ただしヒント付き.)
- リーディングアサインメント SwA 2.2節と2.3節
- 5月26日(火) 15:15-16:15 第5回
- アンケート結果を基にQ2ゼミの曜日時限を決定します。→水2限に決定
- 前回のレポートについて
- 採点結果をWebClassに反映しました(問題12を除いて300点満点)。
- レポート解説の補助資料,問題4の模範解答例
- 第4回のレポート課題の再提出について。【提出先:DLサーバ(Q2の以降の期間にはWebClassは使わない予定です。)、〆切5月30日(土)21:00】
- 佐々木くんと高見くん:前回の「当日の追加課題」の解答を提出して下さい。
- 長岡くん(DLサーバから提出されたものをWebClassから提出されたものとして受け取りました):前回の「当日の追加課題」の問題2の解答を提出して下さい。
- 03_続構造的意味論 mp4, PDF, 課題PDF/当日の追加課題PDF【提出先:DLサーバ(Q2の以降の期間にはWebClassは使わない予定です。)、〆切5月30日(土)21:00】
- リーディングアサインメント SwA 3章
- 6月2日(火) 15:15-16:15 第6回 Q1最終回
- 前回(第5回)のレポートについて
- 点数をWebClassに反映しました.
- 解答例:PDF,レポート解説の補助資料
- 04_正しさが証明可能な実装 mp4, PDF, 課題PDF/当日の追加課題は前回(第5回)の課題の再提出【〆切6月6日(土)21:00】(第6回は必須課題は輪読の準備のみ)
提出ファイルはPDF形式にしてファイル名の先頭に 18se110_...pdf のように AXIA のアカウント名を付けてください. - リーディングアサインメント SwA 4章
- 前回(第5回)のレポートについて
プレゼンテーション20点に関する課題:輪読の準備
- 輪読する書籍「大堀淳,ジャック・ガリグ,西村進:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉,岩波書店 (1999).第II部プログラミング言語pp.129-248.」 PDF
- 以下のように1ページずつ割り当てる.ページの区切りは担当者間で相談の上,若干移動させても良い.(p.138のように5行しかないページも,機械的に割り当てる.p.152やp.184などの空白のページは飛ばす.)
2018SE016平工 真基 p.129,140,151 2018SE034児玉 春司 p.130,141,... 2018SE036黒川 誠史 p.131,142,... 2018SE041松野 宏典 p.132,143,... 2018SE055長岡 楓己 p.133,144,... 2018SE075酒井 直人 p.134,145,... 2018SE076佐々木 龍之介 p.135,... 2018SE088高見 雄大 p.136,... 2018SE091谷崎 海良 p.137,... 2018SE098若浜 大揮 p.138,... 2018SE107吉見 颯 p.139,...
- ファイル形式:PowerPointでスライドを作成すること.1ページ目に学生番号と氏名を記入すること.PowerPointのオーディオの録音機能を用いて簡潔な解説を録音すること.ファイル名は「pページ数_学生番号_氏名.pptx」とすること.例「p129_18SE000_南山太郎.pptx」
- 提出先:Google Driveの2020年度3年の共有フォルダ「コンピュータサイエンス入門輪読」(...@tetsuo.jp のアカウントでアクセス可能です。ガイダンス資料の「情報環境」を参照)
- 取り組み方:3週にわたり毎週割り当てられた1ページを解説するスライドを作成して,作成できたものから提出する.
- 〆切り:6月6日(土)21:00(3周分/3ページ分/3週間分を作成してこの〆切りまでに提出してください。)
期末のメモ
- このクォーターはコロナウィルスの感染拡大を防止するために授業時間や授業形態が通常とは異なった.しかし,以上の内容は,演習1単位に相当する毎週平均6時間以上の学修を必要とする内容である.自主学習で2回分を補う必要がある.
- 本クォーターではBNFのような基本情報技術者試験に出題される初歩的な内容から学び始めたが,これは本分野は積み上げが必須であり初歩をおろそかにできないためである.しかし目指すところは最先端の研究をフォローして卒業研究を進めることである.
例えば,次の雑誌は米国コンピュータサイエンス学会(ACM)のプログラミング言語に関する雑誌である.BNFや推論規則などが使われていることに注意して欲しい.こうした雑誌を読めるように勉強をすすめていって欲しい.
Ningning Xie, Xuan Bi, Bruno C. D. S. Oliveira, and Tom Schrijvers. 2019. Consistent Subtyping for All. ACM Trans. Program. Lang. Syst. 42, 1, Article 2 (January 2020), 79 pages. DOI:https://doi.org/10.1145/3310339, PDF
3年 Q2ゼミ 輪読 水2限
- 各回のゼミで担当者が先生となり内容の解説をスライドにまとめて音声を録音しておく.ゼミの参加者は予めスライドと録音で予習をしてきて,ゼミの時間中に質疑応答や練習問題を通じて内容の理解を深める(反転授業を実施する).プログラミング言語理論に関する最新の論文を読むための前提知識の初歩を得ることを目標とする.
- 輪読する書籍「大堀淳,ジャック・ガリグ,西村進:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉,岩波書店 (1999).第II部プログラミング言語pp.129-248.」 PDF
- 実装に用いるプログラミング言語には Minimal よりも OCaml を用いることを強くお勧めします.
担当ページ
| 1周目 | 2周目 | 3周目 | 4周目 | 5周目 | 6周目 | 7周目 | |
|---|---|---|---|---|---|---|---|
| 2018SE016平工 真基 | 129 | 140 | 151 | 163 | 174 | 186 | 197 |
| 2018SE034児玉 春司 | 130 | 141 | 153 | 164 | 175 | 187 | 199 |
| 2018SE036黒川 誠史 | 131 | 142 | 154 | 165 | 176 | 188 | 200 |
| 2018SE041松野 宏典 | 132 | 143 | 155 | 166 | 177 | 189 | 200 |
| 2018SE055長岡 楓己 | 133 | 144 | 156 | 167 | 178 | 190 | 201 |
| 2018SE075酒井 直人 | 134 | 145 | 157 | 168 | 179 | 191 | 202 |
| 2018SE076佐々木 龍之介 | 135 | 146 | 158 | 169 | 180 | 192 | 203 |
| 2018SE088高見 雄大 | 136 | 147 | 159 | 170 | 181 | 193 | 204 |
| 2018SE091谷崎 海良 | 137 | 148 | 160 | 171 | 182 | 194 | 205 |
| 2018SE098若浜 大揮 | 138 | 149 | 161 | 172 | 183 | 195 | 206 |
| 2018SE107吉見 颯 | 139 | 150 | 162 | 173 | 185 | 196 | 207 |
※2016SE058村瀬直生くんは「[TaNH99] 田辺 誠,中島玲二,長谷川真人:コンピュータサイエンス入門〈論理とプログラム意味論〉,岩波書店 (1999).」の第1章序論のうちpp.1-15, 1.4節までを担当。書籍PDF
Q2 日程
第2回目以降は1周ずつ進める(毎週平均9ページも目安).輪読資料のアップロード先,解答例
- 第1回 6月10日(水) 11:05-12:35, pp.129-131, p.138
- 連絡事項:ソフトウェア工学特別講義[S]<国際科目群>月木1 について
- 注意:輪読,論文紹介など,ゼミにおいて何らかのテキストを読んで担当者が内容を発表することが少なからずある.各担当者が講師となって他のゼミ生にレクチャーをするのである.テキストの内容を読み取り,重要ポイントが何であるかを押さえ,スライドにまとめること.テキストの文章を丸写ししてはならない.また,各自がすべてのテキストをよく読み,演習問題に取り組んでくること.自分の担当でない場合にテキストを全く読まず演習問題を飛ばすということがないように.
- 問10.1 ヒント
- 宿題:テキストの予習,4周目あたりの担当のページのスライド【締切6月13日(土)21:00】
- 第2回 6月17日(水) 11:05-12:35 pp.132-137, p.139-143
- 宿題:テキストの予習,5周目あたりの担当のページのスライド【締切6月20日(土)21:00】
- 個別の提出物へのコメント:
- 問10.1〜問11.5については,解答例を参考にして下さい.
- p138_18se098_若浜大揮.pptx: 問10.1の解答例やヒントを参考に解答をもう一度考えてみて下さい.
- p151_2018SE016_平工真基: 問題11.7の解答の解説ができない場合は,問題で何が問われているかの解説をすること.
- p155_18se041_松野宏典.pptx: 問12.1のヒント→「M M M」は「(M M) M」または「M (M
M)」のどちらとも解釈でき曖昧である.他にも曖昧の原因がないか考えてみること.
録音中に含まれる無音の部分はここまで多くならないように注意を. - p157_18SE075_酒井直人.pptx: 問の解説もすること.
- 第3回 6月24日(水) 11:05-12:35 pp.144-155
- 連絡事項:可逆計算に関する国際会議,ぜひ聴講してください,要事前登録
- 連絡事項:テキストを郵送しました
- [Asai07] 浅井健一:プログラミングの基礎,サイエンス社 (2007).指定図書 請求番号VB3/V041931
- コンピュータサイエンス入門の上下巻
- 宿題:テキストの予習,6周目あたりの担当のページのスライド【締切6月27日(土)21:00】
- 第4回 7月1日(水) 11:05-12:35 pp.156-166
- 宿題:テキストの予習,7周目あたりの担当のページのスライド【締切7月4日(土)21:00】
- 宿題(リーディングアサインメント):浅井先生のテキストの3章まで
- ビデオ,スライド,予習問題,プログラムも参考になる.
- 第6章までテキストを読んでビデオを見て予習問題とテキストの問題を解くと2時間半ほどかかる.
- 第5回 7月8日(水) 11:05-12:35 pp.167-177
- 宿題:テキストの予習,実装に関する課題p.150-151問11.7【途中経過の提出 締切7月13日(月)21:00】,提出先はDLサーバ
- 宿題(リーディングアサインメント):浅井先生のテキストの6章まで【提出物なし】
- 参考
- 貸与ノートPCのVM環境において端末で以下をタイプするとocamlがインストールできる.(@ITのaptコマンドの紹介記事)
sudo apt install ocaml
- OCamlのインタープリタの出力で日本語を端末で表示するには以下をファイル~/.ocamlinitに記述する.※ファイル名が .ocamlinit です.(浅井先生のアドバイスは,貸与ノートPCでは上手くいかないらしいです.)
let printer ppf = Format.fprintf ppf "\"%s\"";; #install_printer printer
パッケージの依存関係を直す必要があったり,空き容量を「sudo apt autoremove」で増やすと上手くいった人たちもいた.
テキストエディタでファイル ~/.ocamlinit に保存をする方法が分からなければ,2018年度理工学基礎演習(前半)資料 p.41〜 3.3節 の方法を試して下さい。 - 「任意の〜」や「ある〜」の意味の違いがよく分からない人は,まずはここをざっと読んでみて下さい.そののちに数学の教科書などをチェックして下さい.
- 受講者からの質問「Ubuntuで日本語入力が急に出来なくなってしまいました。半/全のキーを押しても英語のままです。どうしたらいいでしょうか。」
- 私ならまず “ubuntu 日本語 変換できない” と Google で検索してみます。 いくつか参考になりそうなサイトがでてきました。
- そして、より真面目に原因を究明しなければいけなくなったらログをみたり公式ページをみたりマニュアルを見ます。 (こちらの方法もいざとなったらできるようになっておいた方がよいでしょう)
- 貸与ノートPCのVM環境において端末で以下をタイプするとocamlがインストールできる.(@ITのaptコマンドの紹介記事)
- 第6回 7月15日(水) 11:05-12:35 pp.178-189
- はじめに
- 環境構築ができたか?OCamlでコンパイルできるか.OCamlインタプリタでは日本語入出力ができるか.
- 浅井先生のテキスト6章まで読めていて動画を見て問題を解けているか(4時間以上かかっていたらかかりすぎ?).
- 勉強時間を確保できているか?
- 入門書(コンピュータサイエンス入門)を読めているか?
- 質問を気軽にしたい人はSlackに招待.
- RC2020のどれかのセッションに参加したか?勧められた基調講演は聴いたか?
横山研の皆さん 大学院生や進学希望者にしか聴講を必須としていませんでしたが, 基調講演だけでもソフトウェア工学科学生として聴く価値がとてもあります。 是非聴くことをお勧めします。 内容は双方向変換(可逆計算の条件を緩めたもの)に関するもので 講演者はエディンバラ大学の方です。 特に可逆計算の研究成果を大きな問題に適用するような応用研究に興味があったり, ソフトウェア工学的に可逆計算の研究成果を使うことに興味がある人は見てください。 Perdita Stevens, 以下の内の [RC'20] Problems and prospects for bidirectional transformations https://www.youtube.com/playlist?list=PLNFclWaZfiVLGqW2mXz1VUnimocMOfgpw ネイティブスピーカーなので,英語字幕の自動生成がほぼ完璧です。 聞き取れないところがあったら,英語の勉強がてら字幕をみるといいでしょう。 -- 横山哲郎 南山大学理工学部ソフトウェア工学科 tetsuo.yokoyama@nanzan-u.ac.jp
- レポート課題途中経過の講評
- 提出物の中に学生番号と氏名を記入して下さい。OCamlソースコードには「(* 2018SE000 南山太郎 *)」のようにしてコメントで記入して下さい.
- 分からないところがあった場合は,どこが分からないかを書いて下さい.
- 問11.7(ii)は「OCaml 入出力」などと検索したり,公式のチュートリアルのファイル操作を読んだり, 先輩の3年時のレポートの入出力用コードを参考にして下さい.
- (iii)はp.150の最初から問11.7の直前までを読んで解答して下さい
- インタプリタの作り方については様々な書籍やウェブサイトを参考にすることができます. 例えば,筑波大学の3年生の計算機実験の資料も参考になります. また,BNF Converter(BNFC)を使用すると簡潔に字句解析器,構文解析器,プリティプリンタを実装できます.BNFCは現在の4年生のうち1グループが研究でも用いています.
- 提出物へのコメント
- 2018SE016 平工君:(i)は(iii)の解答と思います。(iii)はデータ型の定義まで完成,要コンパイルチェックと修正.今後も文章で論じることを継続して下さい
- 2018SE098 若浜君:(i)は教科書の記法で解答してあります.OCamlのプログラムでの解答を作成して下さい
- 2018SE091 谷崎君,2018SE076 佐々木君:(i)は(iii)の解答と思います。(iii)データ型の定義まで完成,要コンパイルチェックと修正,解答だけでなく今後は文章も書いていって下さい
- 2018SE034,2018SE075:提出物に学生番号と氏名を記入して下さい,今後はレポート(文章)を書いていって下さい,分からないところがあったらどこが分からないかを書いて下さい
- 2016SE058,2018SE055,2018SE088,2018SE107: 次回以降,課題を提出してください
- 輪読の講師担当者の問題の解答のできがあまりよろしくないです.→問13.1の問題を読み取れるかをゼミ中に一緒にやります.
- 宿題:テキストの予習,実装に関する課題p.150-151問11.7(継続)【途中経過の提出 締切7月20日(月)21:00】,提出先はDLサーバ
- 宿題(リーディングアサインメント):浅井先生のテキストの8章まで【提出物なし】
- はじめに
- 第7回 7月22日(水) 11:05-12:35 pp.190-200
- 連絡事項
- LINEの連絡先が分かる人は横山研OB/OGも含めたグループ「横山研オールスターズ」に登録しました。
- M2渡邉くんの発表練習を8月4日(火)15:15〜から行う予定です。C言語の可逆コンパイラに関する研究です。興味がある人は参加下さい。 Zoomを立ち上げる,ミーティングID: 998 9698 5510,パスコード: 660836
- レポート課題途中経過の講評
- (i)はバリアント型を使うと良い(type token = ID of string | INT of int | LPAR | RPAR | ... ).型名の先頭は小文字にするのが良い(type E = ... ではなく type e = ...).語彙(トークン)の例は検索すればたくさん出てきますが,1例を示します(プログラム 56: データ型 token).下の「簡単なインタープリタの実装例」も参考にして下さい.また,書籍を見てざっと学ぶのも効率的と思います.
- (ii)は前回の解説を参考にして下さい.
- (iii)type constructorは型構築子,data constructorはデータ構築子
- 谷崎くん:(iii)型名 E を exp にすると良い.またファイルの先頭から末尾の順に見ていって未定義の型が出現してはいけない.
- 吉見君:(iii)だいたいあっています.ocamlでロードしてエラーを修正していって下さい.
- 若浜君:(i)上記を見て下さい.
- 酒井君:文字列から語彙列(トークン列)を作るのを字句解析,語彙列から抽象構文木を作るのを構文解析といいます.
- 例えばabc deとあったらabcとdeという2つの変数でabcdeとあったらabcdeという1つの変数ってことでいいのですか→よいです.先頭文字が英字であり,かつ2文字目以降が英数字であるような1文字以上の文字列を変数として下さい.
- またcaseabcとあったらその他の語彙のcaseとabcという変数ではなくcaseabcという1つの変数ということでいいんですか。→よいです.
- abc,deのように間に,などの記号があったらabc , de の3つに分ければ良いのですか。→今回は3つの語彙と見なすのが適切です.
- 単語と単語の区別は空欄ですればよいのですか?→今回は空白も語彙の区切りになります.
- 認識する関数の定義の仕方がそもそもよくわかりません。→入力ストリームから「(」が入力されたらLPARを,「123」が入力されたら「INT(123)」をそれぞれ出力するような関数を作ります.パターンマッチによる場合分けで作成できます(例.浅井先生のテキストp.180の関数to_seireki).
- 構文木をプリントする関数の書き方がよくわかりません→再帰的降下法を使います.ocamlソースコード中のデータ構造の書き方の通り出力したり,入力文字列と同様に出力したりすると良いでしょう. BNFCを使うと自動生成されます(参考ファイル).
- 簡単なインタープリタの実装例
- calc.zip
- 名古屋大学 Jacques Garrigue先生のセミナー資料
- BNFCの "A small example" にある例
- インタプリタの作り方は様々な書籍などに解説があります.計算機科学実験及演習4(プログラム検証)@京大2011年度,お茶の水女子大学 浅井ゼミ 2008年度 『四則演算インタプリタを作ろう!』 第3回 lexer(字句解析器)と parser(構文解析器)の作成 (サンプルコード) (ローカルコピー)
- 宿題:テキストの予習,実装に関する課題p.150-151問11.7(継続)【途中経過の提出 締切7月27日(月)21:00】,提出先はDLサーバ
- 宿題(リーディングアサインメント):浅井先生のテキストの10章まで【提出物なし】
- 連絡事項
- 第8回 7月29日(水) 11:05-12:35 pp.201-割当の最後まで
- レポート課題途中経過の講評
- 字句解析器と構文解析器を全部手でゼロから作るのが難しいようです.お茶の水女子大学の浅井ゼミの資料を参考にして,ocamllexとocamlyaccを使用することを推奨します.ocamlのマニュアルの和訳の関連する章を参照。
- 2016SE058 村瀬直生:
- mlプログラムのファイルの拡張子は.mlにしてください
- コメント開始は「(*」で,コメント終了は「*)」です
- データコンストラクタは英文字から開始してください
- 2018SE034 児玉 春司:
- 54行目 Id を id に変更
- 68行目 ; を削除
- 入出力に関するコードは前回紹介したサンプルを参考にして下さい
- 高見雄大 2018se088
- (i) 2行目の最後の | を削除
- データコンストラクタの先頭文字は大文字. 例 fun → Fun
- 足すは Plas でなく Plus (英語の綴りの問題)
- type PROGRAM = exp は exp を用いているので exp を定義した後に出現しないといけない.型名の先頭文字は小文字で無いと行けない PROGRAM → program
- 以上と少し直せばコンパイルが通る
- 2018se091 谷崎海良
- ◎ コンパイルが通っている
- (ii) ファイルから読み込む方式で実現するにしても「let filename = "kadai3.ml"」のように入力ファイル名を固定するのではなく,ユーザが対話的に入力できるようにして下さい.入出力に関するコードは前回紹介したサンプルを参考にして下さい
-
問題2 質問 実行結果が val cat : string -> unit =
コンパイルは通っています.テキストに与えられたような入出力が得られるようにしてください.val output_stringlist : string -> string list -> unit = val head_file : string -> unit = こうなり正しく実行できているのかわかりません -
問題3 質問 type program = exp とかくと Unbound type constructor exp
expという名前がunboundというエラーです.expの定義後にこの行を書いて下さい.エラーがでて教科書を読むと変数は小文字でないといけないとかいたあっ たのですが,大文字のEのときにコンパイルが通りましたなぜなのでしょ うか.
型変数は小文字から開始しないといけません.大文字のEはデータコンストラクタです. -
(*問題4,5,6質問 全くなにをすればよいかもわかってないです.解説とか 参考ページなどを記載してもらえないでしょうか. *)
前回の「簡単なインタープリタの実装例」や「計算機科学実験及演習4(プログラム検証)@京大2011年度」も参考になります. 4年生の卒業研究で作成している可逆オブジェクト指向言語の処理系と卒業論文の草稿も参考になります.
- 2018SE016 平工真基:(1), (3)ができていそう.
- 2018SE036 黒川 誠史,18se098 若浜大揮,2018SE107 吉見 颯,18SE076 佐々木龍之介: レポート内に書いている部分はだいたいあっているので,一部修正して,OCamlの記法で書いたファイルをロードかコンパイルできるようになるとよいでしょう.
- 2018se041 松野宏典
- 2018se075 naoto sakai: (i) 「(」,「)」は不要です.取り除いたらコンパイルが通りました.(ii) 2文字以上の文字列は 'fn'
ではなく "fn" のように二重引用符にします.try や match は対応する end
を書く必要があります.この点を修正したらコンパイルが通りました.(iii)
aという文字を読み込んだ時次の文字が英数字(仮にbとする)だったら abをまた同じように調べて英数字でなかったらID(a)みたいに返す感じに すればいいのですか もしそうなら次の文字を読み込んだり、調べた文字をもとの文字列にくっ つけるにはどうしたら良いですか
→その考え方でやれると思います.マニュアルを読むべきですが,サンプルプログラムを見て試すのが早いと思います.文字列の連接は次のようにできます.# "a" ^ "b";; - : string = "ab"
- 例題(提出不要)
- その1: calc.zipを解凍してREADME.txtの中に書いてある問題を解きなさい.
- その2: 2021年度Q2情報科学概論 演習 処理系の実装【草稿】の第3章「算術式の解釈と翻訳—Calc」の中の「OCamlの場合」と書かれたすべての小節に書いてあることを見て,実際にコードを実行してみて下さい.
- 宿題:テキストの予習,実装に関する課題p.150-151問11.7(継続),提出先はDLサーバ
- 【途中経過の提出 締切8月3日(月)21:00】
- 【最終成果物の提出 締切8月10日(月)21:00】
- 【遅れ提出(10%減点) 締切8月12日(水)21:00】
- 夏休みの宿題:提出先はDLサーバ
- リーディングアサインメント:
- 浅井先生のテキスト【必須の提出物なし】
- 輪読した書籍「大堀淳,ジャック・ガリグ,西村進:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉,岩波書店
(1999).第II部プログラミング言語pp.129-248.」
先頭から読んでいって,分からない記号,単語を3個箇条書きにする.先頭から読んでいって,分からなくなったページ数とどの文が分からなかったを3カ所箇条書きにする(というのを繰り返す)【希望者のみこの課題を実施して下さい.Slackで対話的に行います.DMでなくオープンチャンネルの使用を推奨】
- プログラミング:問11.7の継続.そのためにより簡単なインタプリタの実装から行う【必須の提出物なし】
- リーディングアサインメント:
- レポート課題途中経過の講評
- 8月5日(水) 「実装に関する課題p.150-151問11.7」の途中経過への講評
- 若浜くん,吉見くん,佐々木くん,高見くん,黒川くん:プログラムをテキストファイルに書いてコンパイルしてみましょう。構文エラーがどこにあるか,判明するはずです。修正していって下さい。
- 谷崎くん:
- 質問1:参考ファイルをいろいろみると,%token ID
などで正規表現に書かれたこと呼び出しているのですか?実際に同じようにparser.mlyファイルで同じようなことをしてもエラーでかえされました.これは何を表しているのですか?
- 質問を整理してSlackやメールで尋ねてください。整理できなそうならZoomで話しましょう。
- 「正規表現」が記載されているのは *.mll ファイルであり,*.mly に記載された「%token ID など」は正規表現ではありません。
- エラーが何を表しているのか見て確認したいので,ファイルとエラーメッセージのコピペを送って下さい。
- 質問2:ii,iv,v,viが全くなにをすればいいのかわかってないです.iiの問題は
channelが書いてあるやつのない参考ファイルがあり、またivの問題はどれが再帰のプログラムなのか全くわかっていないです.解説等おねがいしたいです.
- calc.zipをコンパイルして得られるものを考えます.以下にあたるものを作成すればよいです。
- (ii)はlexer.mlのtokenize
- (iv)はparser.mlのtoplevel(再帰はyyparse中のloopで使われているけれど,ocamlyacc使っているならば自分で再帰的関数を定義せずにyyparseを使えば良いでしょう)
- (v)はmain.mlのread_printの一部
- calc.zipをコンパイルして得られるものを考えます.以下にあたるものを作成すればよいです。
- 質問3:i,iiiなどの問題はlexer.mll, parser.mlyなどの別々にかくのでしょうか?
- 複数のファイルにプログラムを記載して構いませんし,そのように書く方が望ましいです。
- 質問1:参考ファイルをいろいろみると,%token ID
などで正規表現に書かれたこと呼び出しているのですか?実際に同じようにparser.mlyファイルで同じようなことをしてもエラーでかえされました.これは何を表しているのですか?
- 児玉くん:字句解析器までつくったようですね。parser.mlyに以下のようなのを追加していきましょう。
%token MINUS %token STAR %token SRASH ...
- 黒川くん:字句解析器を lexer.mll のようなものを作って生成しましょう。
- 酒井くん:lexer.ml parser.ml parser.mliを作ったら(IV)まで出来たことになるのですか。それとも何か欠けている部分があるのですか。
- (i), (ii), (iv) はこれらのファイルで解答を作るのが適切と思いますが,(iii)は別のファイルに解答を作成した方が適切です。
Q2 期末レポート課題:実装に関する課題p.150-151問11.7
- 提出先:DLサーバ
- 提出者:全員(各自が提出)
- 〆切:【最終成果物の提出 締切8月10日(月)21:00】,【遅れ提出(10%減点) 締切8月12日(水)21:00】
- 提出物: A4サイズPDFのレポート と ソースコード一式(*.ml, *.mly, *.mll, Makefileなど) を圧縮して作成した1つのファイル(*.zip や *.tar.gz など)
- A4サイズPDFのレポートの書き方は以下を推奨:
- 表紙に科目名「ソフトウェア工学演習II」,氏名,学籍番号を記載
- 2ページ目以降がレポート本体
- プログラムの概要,自分が工夫した点や苦労した点についての説明を記載
- 末尾に,作成したプログラム,テストプログラム,テストの実行結果を添付
- (以上の書き方に完全にしたがってはいないのですが,)先輩のレポート例とそのLaTeXソースコードも参考にしてください。
参考:過年度のゼミでの輪読
- 2016年度 3年Q1とQ2で1〜14章を輪読(毎週平均16ページ)
- 2018年度 第II部プログラミング言語の輪読.一度に1人あたり4〜5ページずつ担当(毎週平均9ページ)
- 2019年度Q2の期末レポート: pp.150-151 問11.7
- 2019年度Q3の期末レポート(できるところまで):
- p.196-197 問13.5 コンパイラ
- p.212-213 問14.14 コンパイラ
- p.219 問14.18 インタープリタ
- p.225 問14.20 コンパイラ
- p.238–239 問15.4 型推論システム
- p.247–248 問15.5 型推論システム
3年 Q3ゼミ 水2:グループワークが必須
Q3 日程
- 第1回 9月16日(水) 11:05-12:35
- ブレイクアウトルームを用いたプログラミングコンテスト:
- 大学院生田島君の学会発表の内容の紹介
- モバイルディスプレイ の希望がある人?
- 第2回 9月23日(水) 11:05-12:35
- 連絡事項:JABEEコース生へ 学習・教育到達目標の達成度評価について
- 「Q2 期末レポート課題:実装に関する課題p.150-151問11.7」の4種類の解答例(来年度以降もレポート課題の一部に使用するので再配布は厳禁)
- raw: 一番単純
- lex_yacc: ocamllex, ocamlyaccを使用
- camlp4: camlp4というプリプロセッサを使用
- bnfc: bnfcというツールを使用
- プログラミングコンテストの結果:優勝チームは平工くんと村瀬くん
- リンク:南山大学 理工学部(情報理工学部・数理情報学部)卒業論文 要旨集
- グループワーク
- グループ
- 2018SE016平工 真基, 2018SE034児玉 春司, 2018SE036黒川 誠史:
「E. 高級言語間の変換」を選択(2020/10/14時点) - 2018SE041松野 宏典, 2018SE055長岡 楓己, 2018SE075酒井 直人:
- 2018SE076佐々木 龍之介, 2018SE088高見 雄大, 2018SE091谷崎 海良:
「C. 可逆プログラミング言語」を選択(2020/10/14現在) - 2018SE098若浜 大揮, 2018SE107吉見 颯, 2016SE058村瀬 直生:
「B. 可逆計算の基礎」を選択(2020/9/23現在)
- 2018SE016平工 真基, 2018SE034児玉 春司, 2018SE036黒川 誠史:
- 文献調査レポート
各グループ1〜4で以下からA〜Dの中から1つテーマを選ぶ。他のグループが選んでいないテーマの中からテーマを選んで,各グループの代表者がメイリングリストb3@yokoyama-lab.orgに報告すること。 (文献1編につきこちらのようなレポートを作成していく → こうした文献調査レポートを卒論でまとめることを意識する)
先輩の卒論要旨と卒論を読む。また巻末の参考文献を読む。- 可逆アルゴリズム
- 可逆計算の基礎
- 可逆プログラミング言語
- 可逆回路
- 高級言語間の変換
- TFDA(トポロジカルフローデータアナリシス)
- 自分たちで選択したもの(指導教員に要相談)
- システムの実装とレポート
- 時間外学習:
- 読書
- コンピュータサイエンスの初歩
- 文章の書き方
- 英語:マニュアルや論文を読めるように
- プログラミング
- OCamlは以下の書籍を一通り読んだ以上の知識をもっていること
[Asai07] 浅井健一:プログラミングの基礎,サイエンス社 (2007).指定図書 請求番号VB3/V041931
- OCamlは以下の書籍を一通り読んだ以上の知識をもっていること
- ツール
- Linuxの初歩は 2018年度理工学基礎演習(前半)資料の第5章と第6章 程度以上の知識をもっていること
- LaTeX文書作成法は,2018年度理工学基礎演習(前半)資料 程度以上の知識をもっていること。Q1の説明も参照
- Gitは以下を参考にするのが手っ取り早い
Chacon, S. and Straub, B.: Pro Git, Apress (2014). 日本語訳 オンラインから入手可 - パスワードを安全に管理するために,パスワード管理ソフトを使用することを推奨
- overleaf, github, slackに登録することを推奨
- emacsのチュートリアル程度以上の知識をもっていること
- グループ
- 第3回 9月30日(水) 11:05-12:35
- (第4回) 卒業研究中間発表会
2020/10/7(水):要旨と発表資料で予習をして聴講してコメントを提出する.コメントの様式.
- 締切:10月13日18:00
- 提出先:WebClass「2020 52A06-008 ソフトウェア工学演習I」
- 形式:PDFまたはTEXT
- 第5回 10月14日(水) 11:05-12:35
- 連絡事項:
- Hack U 南山大学 2020,ぜひ参加してください(参加したいけどチームが作れない場合も説明会で対応するとのこと)
- 南山大学理工学部開設20周年記念行事
- 村瀬君,松野君へ:卒業研究中間発表会のコメント用紙をWebClassから提出してください【締切2020-10-15 23:59】
- 研究費の執行について
- 早急に各グループでテーマを選定すること,選定のために文献調査を行うこと
- 「システムの実装とレポート」は継続すること
- 卒業研究の遂行に必要な時間外学習を継続すること
- 論文紹介:森田 憲一: 可逆コンピューティング : ビリヤードボールでコンピュータが作れるか?, 情報処理, Vol.53, No.5, pp.496–502(2012). pptxファイル
- 連絡事項:
- 第6回 10月21日(水) 11:05-12:35
- 連絡事項:
- 出題から1ヶ月が経過した現時点での「文献調査レポート」と「システムの実装とレポート」を,各グループの代表者がWebClassから提出してください。提出物は完成品でなくて構いませんが,体裁を整えて進捗状況がわかるようにしておいてください。
- 連絡事項:
- 第7回 10月28日(水) 11:05-12:35
- 連絡事項:
- Hack U 南山大学 2020
- 南山大学理工学部開設20周年記念行事 の登録をしてください(全体,ソフトウェア工学科,電子情報工学科の3つ)。
- 処理系の作成には文献1と文献2を参考にすること。これらの文献とサンプルプログラムがあれば,本クォーターの課題を解くことができる。
文献3は,ML系の言語でコンパイラを作成するのに参考になる良書である。- 大堀 淳, ガリグ ジャック, 西村 進: コンピュータサイエンス入門〈1〉アルゴリズムとプログラミング言語, 岩波書店(1999). 京都大学1年生〜
- 浅井 健一: プログラミングの基礎, サイエンス社(2007). お茶の水女子大学2年生〜
- Appel Andrew W.: Modern Compiler Implementation in ML, Cambridge University Press (1998). webpage プリンストン大学3年生〜
- BNF Converter (BNFC) のチュートリアルの続き(ごく一部を日本語にしてOCamlについて追加したもの)
- 連絡事項:
- 第8回 11月4日(水) 11:05-12:35
- 第9回 11月11日(水) 11:05-12:35(試験期間から補講期間に変更された期間)
Q3 期末レポート課題
グループワークを行って期末レポート課題を提出する.期末レポートの内容は次の2つである:
- 文献調査レポート
- システムの実装とレポート
- 締切:11月13日(金)20:00
- 提出先:WebClass
- 提出者:各グループの代表者
- 提出物:文献調査レポート(PDF形式),システムの実装(圧縮ファイル) と そのレポート(PDF形式),補足資料があれば補足資料
「卒業研究の題目と要旨」の検討について
Q4期末レポート「卒業研究の題目と要旨」を書くことを意識してこの時期から準備が必要である.取り組む問題を見つけるために,文献調査も必要であろう.[Saka17]には「取り組む問題の見つけ方」に次のような助言がある:
- 「何か面白いことはないか」と,いろいろ考えたり,インターネットで検索してみたりする.教員や先輩に相談するのもよい.
- 心を惹く問題が見つかったら,それに関連する文献をいくつか読んで,その世界を覗いてみる.
- 改めて,その問題が本当に面白いのかどうかを考える.
- 面白いと確信したら,文献を深く読み進める.
(つまらないと感じた場合は1に戻る.)
参考文献
- [Saka17] 酒井 聡樹:これからレポート・卒論を書く若者のために 第2版,共立出版(2017).
3年 Q4ゼミ: エンジニアリングデザイン
グループ分けプロジェクト案
- 翻訳器
- 高水準可逆プログラミング言語SRLから低水準可逆プログラミングRLへの翻訳器(github)を参考にしてSRLやRLの構文を追加して翻訳器・SRLインタプリタ・RLインタプリタを拡張する
- Janus2C
- プログラミング言語R-WHILEのウェブインターフェースの改良 → 具体的にはAceエディタのシンタックスハイライトのJavaScriptプログラムを作成する. (参考:r-while-web@github)
- 可逆オブジェクト指向言語ROOPL++の構文の拡張 github,例:エラーメッセージを分かりやすくする
- 可逆アルゴリズムのアルゴリズム図鑑 github (cf. アルゴリズム図鑑)
- 流れの可視化 github1, github2 (M1の田島君が携わっていたもので助言をお願いすると良いと思います)
- ROOPL++ のwebインタフェースの改善【田島君の案】
Webインタフェースにはreact、typescript、node.js、ajax、php、javascriptを使用- (R-WHILEと同様ですが)シンタックスハイライト機能の実装
- スニペット機能の実装
- デザインの改善
- その他3年生の方々が見て気づいた点があればその点の改善
- 過去の案
Q4 日程
- 第1回 11月18日(水) 11:05-12:35
- 第2回 11月25日(水) 11:05-12:35
- 第3回 12月2日(水) 11:05-12:35
- BNFCチュートリアル(和訳+α)
- 参考:パイプライン,標準入力(学外から接続するには「南山大学 電子リソースポータル」から「日経BP用の学外接続サービス」へログインする必要あり)
- C--の字句解析器・構文解析器・プリティプリンタの作成まで学習した.
- [Linux2019-2021] LinuC/LPICにも役立つ! 基礎からわかるLinuxコマンド(日経Linux, 2019/01号〜2021/01号)
- Q「可逆アルゴリズムがインターネットを検索しても見つからない」
- ECUにおける分散処理環境時間駆動分散処理に関する研究の例を紹介:
ジッタが制御性能に影響する場合は同期処理、しない場合は論理時間に基づいて非同期処理
[IcYY18] Ichimura, A., Yokoyama, T. and Yoo, M.: A Time-Triggered Distributed Computing Environment for Cyber-Physical Systems Based on Physical Time and Logical Time, TENCON 2018 - 2018 IEEE Region 10 Conference, pp.1510-1515 (2018). 学内/学外
- 今年度は例年よりエントリーが早い企業がある.企業情報は日経テレコンも使うと良い.AXIAのアカウントでこのページのリンクから使用可能(個人で契約したらかなり高額です.良質な情報が得られるので大学から無料で利用しましょう).
- 環境変数については,Q4第4回も参照
- 日経LINUX 2020/07号 特集/連載全体 特集5 Windows 10で“ホンモノ”のLinuxが動作! 大きく変わった「WSL 2」を徹底解説(日経Linux)学外
- 自宅でできるLinuxサーバーの作り方・使い方(日経Linux, 2020/05号, 57〜61ページ掲載)
第2章 Dockerでコンテナーを体験してみよう
学外(210609現在リンク切れ)
Q4レポート課題
Q4(学科共通)期末レポート課題:卒業研究の題目と要旨
- 提出先:WebClass
- 提出者:全員(各自が提出)
- 〆切:2021/1/26 17:00 (Q4授業最終日の17:00)
- 要旨の形式:PDF形式 A4 1ページを目安, 卒業研究発表会の要旨の形式を参考にすること
- 内容:卒業研究の題目と要旨(背景,目的,計画,関連研究,参考文献など).テーマが異なる場合は含めることができないが,関連研究には以前調査したものを含めることが望ましい(既存の文献の中から抜き出してきたものを書いてはいけない.必ず自分の言葉で書くこと.).
Q4(横山研)期末レポート課題
- 提出先:WebClass
- 提出者:全員(グループで1部提出,分担を明記すること)
- 〆切:2021/1/26 17:00 (Q4授業最終日の17:00)
- 内容:本クォーターに行ったエンジニアリングデザインに関する課題
- 形式:レポートはPDF形式,そのほかの関連ファイル一式とともに圧縮ファイルにすること.
- 過年度のレポートを参考: 2012と2013, 2016 (2016グループワーク製作), 2017, 2018, 2019
Q4(学部共通)期末レポート課題 エンジニアリング・デザイン教育に関するレポート
- 提出先:
ゼミにて提出WebClass(オンライン授業のために変更) - 提出者:全員(各自が提出)
- 〆切:2021/1/26 17:00 (Q4授業最終日の17:00)
- 内容:学部の案内ページを読むこと.本クォーターで行ったエンジニアリング・デザイン能力習得の達成度確認を学生自身が行う.
- 形式:学部の案内ページにしたがうこと.
- 注意点:
- 指導教員名「横山哲郎」を間違わないように
- 年度を記入すること
- 理工学部を残して、情報理工学部を削除すること
- 達成度(◎、○、△、×)を記入すること
- 様式は変えないこと(2ページに収めること)
3年 春休み中
- 2021/02/03 13:00-15:40 参加者:高見(論文紹介発表者),佐々木,児玉,若浜,黒川
- [Moge20] Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible
Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020). 学外,
著者のスライドPDF
Abstract: Hermes is a domain-specific language for writing light-weight encryption algorithms: It is reversible, so it is not necessary to write separate encryption and decryption procedures, and it avoids several types of side-channel attacks, both by ensuring no secret values are left in memory and by ensuring that operations on secret data spend time independent of the value of this data, thus preventing timing-based attacks. We show a complete formal specification of Hermes, argue absence of timing-based attacks (under reasonable assumptions), and compare implementations of well-known light-weight encryption algorithms in Hermes and C. - コペンハーゲン大学の学生のプロジェクトHermes to C @github
- 今後の計画
- [Moge20] Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible
Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020). 学外,
著者のスライドPDF
- 2021/02/17(水)13:00-15:15 参加者:高見、佐々木(論文紹介発表者),児玉,若浜,平工
- 論文紹介[Moge20],発表者:高見,佐々木
- 専門用語はリストを作る.理解しているものに「○」,わからないものに「×」をつける.「×」のついたものは調べてまとめて「×→○」と印をつける.
- 英文解釈
- 英単語を調べるときは辞書をひくこと.もっていなかったら買うこと.また,南山大学の電子リソースの辞書(Oxford English Dictionary Online, ジャパンナレッジ Lib NK)を使用すること.学外からも使用可。
- 宿題、各自論文を読んで15分以内を目処に紹介する。また、文献調査時に、専門用語リストを作ること、ちゃんとした辞書をひくこと。
- 平工→ [Nohr15] Nøhr, S. V.: Reversible Graph Algorithms, Bachelor Thesis, Copenhagen University (2015).
- 若浜→ [Mori16] 森畑明昌:プログラミングするプログラム -自動プログラム作成最前線-,情報処理,Vol.57, No.6, pp.544-549 (2016). 公式
- 佐々木・高見 → 軽量暗号(Lightweight encryption)について興味を深めるために企業のウェブページ・一般雑誌を見てみること
- 論文紹介[Moge20],発表者:高見,佐々木
- 2021/02/23(火)13:00-15:40 論文紹介発表者:平工,若浜,高見,佐々木; 参加者:児玉,吉見
- 論文紹介と英文解釈、時間があったら基本的なことを講義する
- 13:03-13:18 平工→ [Nohr15] Nøhr, S.V.: Reversible Graph Algorithms, Bachelor Thesis, Copenhagen University (2015). 専門用語リストを要作成.自分の言葉でまとめる→卒論の一部になる.
- 13:19-13:41 若浜→ [Mori16] 森畑明昌:プログラミングするプログラム -自動プログラム作成最前線-,情報処理,Vol.57, No.6, pp.544-549 (2016). 公式 [3]PLDIに発表された論文,今回発表した論文を発展させた研究や専門用語(例.SATソルバ,スケッチング)を調べていく
- 高見 → 軽量暗号(Lightweight encryption)の要件や応用例の紹介.いずれ自分の言葉で卒論を書いていくことを意識すること.技術的なところは今後.
- 佐々木 → [Moge20] Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020). 後半は次回に回す.専門用語(例.写像(map)/関数(function),単射的(injective),関係(relation),反射的(reflexive),束縛(bind))のリストを作って,説明できるようになること.「変数(variables)を値(values)に束縛する(bind)」ことに注意すること.
- ``A pattern binding binds variables to values.'' [4.4.3.2 Pattern bindings, The Haskell 98 Report]
- 「パターン束縛は変数を値に束縛する。」[4.4.3.2 パターン束縛, The Haskell 98 Reportを出身研究室の先輩が訳したもの]
- 事前に解釈できない英文をSlackのチャンネル「#3年ゼミ_2020」に投稿すること
- 論文紹介,英文解釈,基本的なことの講義
- 次回以降は,資料をSlackに投稿するなどして共有するようにする.
- 13:00-13:35: 平工→ [Nohr15]の論文紹介を継続.引き続き,専門用語リストを要作成.「ゴミ」の定義.double-ended queueは可能か?
- 13:36-14:30: 佐々木 → [Moge20]の論文紹介を継続.
- 「半順序」や「関係」のあたりの用語は,数学系科目を要復習.筑波大学の1年生の授業『離散構造』の講義資料の第3章「関係とグラフ」も参照.情報科学辞典や数学用語辞典を見た方がより良い.
- メモ,白板
- 参加者:田島,児玉
- 田島:グラフアルゴリズムの紹介(minheapなど)→次回に
2021年度シラバス
- Q1 卒業研究IE, Q2 卒業研究IIE, Q3 卒業研究IIIE, Q4 卒業研究IVE, F-1,2,3
- Q1 ソフトウェア工学演習V, Q2 ソフトウェア工学演習VI, Q3 ソフトウェア工学演習VII, Q4 ソフトウェア工学演習VIII, E-1,2,3,4
2021年度 日程
日程は変更されることもあるので各自が元の情報をよく確認すること.
- 3月12日 ガイダンス(オンライン): 横山研究室ガイダンス資料を各自で確認
- 4月7日(水)1限9:10-10:50 初回ゼミ 貸与ノートPC・印鑑(カードキーの受取に必要)・筆記用具を持参してください。
- 【JABEEコース生のみ】学習達成度評価表を両面印刷をしたものを指導教員に提出、特に単位の修得状況が良くない人は指導教員と相談をすること
- 4月 大学院推薦入学審査 の 推薦願の提出(対象者で希望するもののみ)
- 5月~ 進路が決まったら進路届をキャリア支援室に提出.留年生はこの時点で必ず提出すること(未提出者には催促がある)
- 6月中旬 大学院 推薦入学審査 出願期間,要項・願書[所定用紙]・パンフレット
- 「推薦願(夏季)」を提出しただけでは合格とはなりません。必ず出願を行う必要があります。
- (6月中旬 進路届の提出の確認)
- 6/中旬〜7/上旬 卒業論文 題目提出
- 7月7日~8日 13th International Conference on Reversible Computation (RC)
- 8/下旬 中間発表会に向けたゼミ
- 9/上旬中旬 発表練習会用の要旨・スライド 教員へ提出
- 9/上旬中旬 要旨 教員へ提出
- 9月Q3初回 JABEE達成度評価表の提出(JABEEコースの学生のみ:平工、児玉、黒川、長岡、佐々木、谷崎、吉見)
- 9/上旬中旬 中間発表の練習会
- 9/中旬~下旬 (修士論文 中間審査 発表練習会)
- 9/下旬 要旨提出締切@WebClass
- (修士論文 中間審査)
- 9/下旬〜10/上旬 中間発表会, 要旨のソースコードとスライドを提出@WebClass
- 11/下旬@WebClass Q3卒業研究・演習の発表資料やレポートなどの締切
- 12/上旬〜1/上旬 卒業論文提出@教務 (1秒でも遅れると留年), ソースコードとPDFを提出@WebClass
- 1/中旬 要旨提出@WebClass 締切
- 1/下旬 卒業研究発表会, スライドを提出@WebClass
- (1/下旬 修士論文 最終試験)
- 2/中旬 要旨集の原稿提出締切@WebClass (卒業研究発表会終了後に,修正してすぐに提出すること), ソースコードを提出@WebClass
- 3/21(月)予定 卒業式
- 3/下旬 卒業パーティ(代表者:未定)
4年Q1 水1(S47教室),火金1(S62教室)
- 卒業研究の題目と要旨を要提出:松野、高見、若浜、酒井、セベロ、服部
- 研究グループ
- 佐々木、高見:軽量暗号→要詳細化
- 長岡,松野:自動車組込みソフトウェアでのステアリング制御について→要詳細化
- 平工,谷崎:可逆幅優先探索→要詳細化
- 児玉:C言語の可逆化に関する研究→要詳細化
- 若浜:翻訳→要詳細化
- 吉見:可逆計算システムの構築→要詳細化
- 黒川:プログラミング言語R-WHILEのウェブインタフェースの改良→要変更
- セベロ:未定
- 服部:未定
- 本クォーターにおいて それぞれの受講生は 研究報告を1回,文献紹介を1回おこなう.
- 文献紹介用の資料について
- これまでのレポートなどで行った学修(例.3年のQ1Q2で各自で学んだことやレポート課題として取り組んだこと Q3やQ4)も踏まえてなぜこれらの文献を選択したのかがわかるようにすること。卒業研究の一環で継続的に実施した研究内容を紹介するべきであり、1~2週間程度で取り組んだ内容を紹介するのでは足りない。貴重なゼミの担当回を有意義なものにできるように充分に準備すること。Q1とQ2で担当回数は4回であり、9月下旬頃に中間発表会がある。2名で卒業研究を実施する場合はQ1においてレポートを15ページ以上書くことを目安とする。
- 卒業論文の一節にできるようにすることを意識すること
- 背景,目的,アプローチ,結果,何が新しくて有用なところはどこか,過去の論文より何が優れているか,本手法の限界は?,次に何を読むべきかなどを書くこと
- 大学院生の論文調査のまとめや論文紹介スライドを参考に(例:まとめ,論文紹介スライド)
- 落合先生の「読み終わったらどんな論文かまとめる」方法
- スライド・レジュメを事前に研究室のメーリングリストに以下のように送付すること.また,資料は(自分の分を含めて)出席者の数だけ(2021年度は13部)印刷して担当日の授業前に受講生が1枚ずつ取れるようにすること。スライドがディスプレイ・プロジェクタ等に表示されるかを発表の事前に確認すること.
- 表紙のスライドと資料には氏名、学生番号、発表をする日付を記入すること
- 紹介する文献の書誌情報をレジュメとスライドに載せること
- 文献紹介のスライドは24ページを目安,18ページ以上
- 参考文献のリストを,最後の方のスライドに掲載すること
- すべてのスライドにスライド番号をつけること(PowerPointでは,挿入→ヘッダーとフッター→スライド番号 から設定できる)
- 締切後にメールが送付された場合,それ以降の担当者がいない回に担当することとする.
- 予復習に充分な時間を確保するために,それぞれの日に担当する人は二人とする.
- 予習をすること。質問をすることを予め考えておくこと。
- 予習で必ずやること:メールを読む。添付ファイルを開いて目を通す。文献紹介の場合は文献をダウンロードする。
- 発表者の復習事項
- 専門用語リストに重要な用語を追加すること
- 質疑応答で答えた内容を文章で記述すること
宛先:all@yokoyama-lab.org 件名:【研究報告】可逆プログラミング言語R-WHILEによる万能可逆チューリング機械の構成 横山研究室の皆さま B4の山田です。 4月9日(金)1限4年生ゼミの研究報告のスライドとレジュメを添付にてお送りします。 どうぞよろしくお願いいたします。 題目:可逆プログラミング言語R-WHILEによる万能可逆チューリング機械の構成 あらまし: チューリング機械(以下,TM)で計算できるものを計算の定義とする チャーチ・チューリングの提唱が知られている.任意の TM を模倣でき る TM を万能と呼び,TM と同じ計算能力をもつ計算モデルをチューリン グ完全と呼ぶ.プログラミング言語の計算モデルがチューリング完全で あること,すなわち計算能力が高いことは重要である.汎用プログラミ ング言語の多くはチューリング完全であると示されている. 本発表では,任意の可逆プログラミング言語のプログラムで計算でき るものが,可逆なR-WHILEプログラムによって計算できることを示す. -- 山田太郎 00SE000@nanzan-u.ac.jp
宛先:all@yokoyama-lab.org 件名:【文献紹介】Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020). 横山研究室の皆さま B4の山田です。 4月9日(金)1限4年生ゼミの文献紹介のスライドとレジュメを添付にてお送りします。 紹介する論文は以下の通りです: Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020). https://doi.org/10.1007/978-3-030-52482-1_5 (AXIAのアカウントを 用いてダウンロード可能) Abstract: Hermes is a domain-specific language for writing light-weight encryption algorithms: It is reversible, so it is not necessary to write separate encryption and decryption procedures, and it avoids several types of side-channel attacks, both by ensuring no secret values are left in memory and by ensuring that operations on secret data spend time independent of the value of this data, thus preventing timing-based attacks. We show a complete formal specification of Hermes, argue absence of timing-based attacks (under reasonable assumptions), and compare implementations of well-known light-weight encryption algorithms in Hermes and C. どうぞよろしくお願いいたします。 -- 山田太郎 00SE000@nanzan-u.ac.jp
- 文献紹介用の資料について
- 空いた時間を使って,基礎知識の習得や演習等も適宜行っていく.水1の予復習は4時間半を目安とし、卒業研究にこそより力を入れること。
Q1 日程
| 学生番号 | 担当者 | 研究報告 資料 締切(木) | 研究報告(火1) | 文献紹介資料締切(月) | 文献紹介(金1) |
| 2018SE016 | 平工 真基 | 4月8日 | 4月13日 | 4月26日 | 4月30日 |
| 2018SE034 | 児玉 春司 | 4月8日 | 4月16日 | 4月29日(木) | 5月 |
| 2018SE036 | 黒川 誠史 | 4月15日 | 4月20日 | ||
| 2018SE041 | 松野 宏典 | 4月15日 | 4月20日 | ||
| 2018SE055 | 長岡 楓己 | 4月22日 | 4月27日 | ||
| 2018SE075 | (酒井 直人) | 4月22日 | 4月27日 | 5月17日 | 5月21日 |
| 2018SE076 | 佐々木 龍之介 | ||||
| 2018SE088 | 高見 雄大 | ||||
| 2018SE091 | 谷崎 海良 | 4月12日 | 4月16日 | ||
| 2018SE098 | 若浜 大揮 | ||||
| 2018SE107 | 吉見 颯 | 4月19日 | 4月23日 | ||
| 2015SE067 | セベロ テルオ | ||||
| 2017SE013 | 服部 哲也 | 5月20日 | 5月25日 |
※ゴールデンウィークの5/4(火)と5/5(水)は,大学においてゼミを開講しない。
- 4月7日(水)9:10-10:50 初回.3年Q1ゼミに参加し3年生で学んだ内容を達成度を確認する.充分に修得している場合は水1のゼミを3年生と4年生で独立して開講する.復習が必要な間はQ1水1の3年生ゼミに参加し続ける.3年生のゼミに参加するにあたって,3年生のゼミのページに記載されているような予習復習を行うこと.
- 4月9日(金)9:10-10:50,
文献紹介:佐々木,高見,Mogensen, T.Æ.: Hermes: A Language for Light-Weight Encryption, Proc. Reversible Computation, Lanese, I. and Rawski, M., pp.93-110, Springer-Verlag (2020).- 写像,論理について
- 時間を見つけてプリンターの設定をすること
- 【補習課題】「微積分学Iおよび演習」や「数学I」の写像(関数),論理と集合の論理を復習してPDFの指示に従って下さい。 対象者:セベロ,服部,児玉,松野,長岡,酒井,高見,若浜,吉見.締切4月15日15:00
- 【欠席者の課題】対象者:セベロ,服部,児玉,長岡,酒井,締切:4月20日15:00,WebClassの「卒業研究IE」の「テスト/アンケート」の「2021/04/09欠席者の課題」から「プログラミングの基礎」の第6章までのすべての問題の解答を圧縮したファイルを提出して下さい。※毎週本テキストの学習時間を1時間とっていますが,それに欠席分の2時間を加えた合計4時間で,第2回目までの予習問題と教科書問題・第6章までのすべての問題を解けると見込んでいます。より時間がかかりそうな場合は連絡を下さい。
- 4月13日(火)9:10-10:50 研究報告:平工
- 初歩的なところ(例.計算,プログラム,プログラミング言語の可逆性)も含めてゼミ中に受けた質問の回答をまとめておく.いずれ卒業論文に含めることを意識すること.
- 【欠席者の課題】対象者:セベロ.
平工くんの資料,文献[Nohr15],アルゴリズムの教科書を参考にして,以下の定義・例・その他の説明をLaTeXやWordを使用して文章にまとめて提出すること.提出先WebClass「卒業研究IE」.締切4/20(火)15:00.学習時間2時間で取り組んでください.- グラフ,グラフアルゴリズムの例,計算・プログラム・プログラミング言語の可逆性
- 4月14日(水)9:10-10:50
- 4/9の補習課題の締切が4/15 15:00, 対象者:セベロ,服部,児玉,松野,長岡,酒井,高見,若浜,吉見
- 高見,佐々木,若浜→資料をMLに要提出
- 【欠席者の課題】対象者:若浜、4月7日に配布した練習問題 (関数)の全問題に解答をして丸付けをしたレポートを4/20(火)か4/21(水)のゼミで提出のこと。
- 4月16日(金)9:10-10:50 研究報告:児島(4/13から4/16へ変更),文献紹介:谷崎 Axelsen, H. B. and Yokoyama, T.: Programming Techniques for Reversible Comparison Sorts. In APLAS. (Feng, X. and Park, S., eds), pp. 407-426, Springer-Verlag(2015).
- 谷崎:専門用語リストに「漸近的な計算時間,オーダー(O, Ω), 計算量, スターリングの公式」を追加すること。[OhGN99]のpp.29-35を読むこと。
- 【欠席者の課題】対象者:セベロ.本日の研究報告資料・発表された文献を確認して質問を1点提出すること.またO-記法について調べて1段落程度の文章にすること(O-記法とはなにかの説明と例を載せること).想定学習時間2時間
- 4月20日(火)9:10-10:50
文献紹介(前回の続き):谷崎,研究報告:黒川,松野- 連絡事項:日程を一部変更,日経Linux・日経ソフトウェア・ソフトウェアデザインなどの一般誌を読んで平素から技術的な話に興味を持ち学ぶ習慣をつけること,電子図書館から電子雑誌を読む方法の案内,大学で契約している出版社の論文の読み方の案内
- 4/9の欠席者の課題の締切が4/20 15:00,対象者:セベロ,服部,児玉,長岡,酒井
- 4/13の欠席者の課題の締切が4/20 15:00,対象者:セベロ
- 4/9出題4/15締切の補習課題の解答へのコメント:
- 黒川:
- 主要なプログラミング言語の種類(命令型言語、手続型言語、オブジェクト指向言語、論理型言語、関数型言語)を調べて説明を文章でまとめる.各言語の例を挙げること。
- 紹介した論文は継続して調査
- 松野:長岡くんと共同研究を行う意向.研究進捗はこの時点では特になし.
- 【欠席者の課題】対象者:児玉.本日の研究報告資料・発表された文献を確認して質問を1点提出すること.またについて調べて1段落程度の文章にすること(〇〇とはなにかの説明と例を載せること).想定学習時間2時間
- 4月21日(水)9:10-10:50
- 【欠席者の課題】対象者:セベロ,児玉,高見 問題10.1, 11.1, 11.2を解答を見ずに解いて,解答をみて採点をしたものを提出する.
- 4月23日(金)9:10-10:50 文献紹介:吉見、
セベロ- 吉見→森田 憲一: 2. 計算における可逆性 : 可逆チューリング機械と可逆論理回路(<特集> 逆計算: 計算の理論における逆問題), 情報処理, Vol.35, No.4, pp.306-314(1994).
- 「広島大学 学術情報リポジトリ 森田 憲一」に参考となる文献やスライドがある.
- チューリング機械については,信憑性の低いブログ記事ではなく,広く読まれているテキストを参考にすること.入門書を1点薦めるとすると 横山研 ソフトウェア工学演習I 指定図書 の 「A. ヘイ, R. アレン: ファインマン計算機科学, 岩波書店(2020).」.OPAC直リンク
- 今後について:
初歩的な概念(基本論理ゲート,計算能力,可逆性など)でも重要で分からないものは専門用語リストに追加して,自分の言葉で表現して卒業論文に追加できるようにすること.
可逆な計算モデルについて理解を深め,以下の文献も調査するとした.
[Mori94] 森田 憲一: 3. 可逆セル・オートマトン (<特集> 逆計算: 計算の理論における逆問題), 情報処理, Vol.35, No.4, pp.315-321(1994).
- 吉見→森田 憲一: 2. 計算における可逆性 : 可逆チューリング機械と可逆論理回路(<特集> 逆計算: 計算の理論における逆問題), 情報処理, Vol.35, No.4, pp.306-314(1994).
- 4月27日(火)9:10-10:50 研究報告:長岡
- 連絡事項:
- レジュメは簡潔にまとめることが大事であるが,これまでのレジュメは文章量が求められる水準より少なすぎる.文章量の目安について.Q1~Q3のそれぞれに平均して少なくとも8ページ執筆のペース→Q4開始時に1名では24ページ,2名では48ページ.Q1では原理(専門用語リストに記した自分の言葉で書いた文章をもとにするとよい)や関連技術・関連研究についてもまとめる.発表時期に合わせて求められる分量の文章を意識すること.例:Q1の5/30の発表時には,5ページの原稿を執筆→レジュメにその要約をA4で1ページ.
- 欠席者の課題などの提出状況・出題状況の確認
- 【プレレポート】対象者:原稿へのコメントを希望する受講者.提出時における専門用語のリストとそれまでゼミでまとめるよう指示のあった内容を含む原稿(PDF形式)をWebClass「卒業研究IE」から提出すること,5/8(土) 15:00 締切.1段組4ページを目安.約8ヶ月後に卒業論文を完成させることを前提に取り組むこと(課題をこなすことのみを目標としないこと).くれぐれも剽窃には気をつけること(引用は問題ない).
- どこまで研究活動を把握してほしいか.(cf. 2008年度 卒業研究活動報告書, JABEE対応コースの学習保証時間について→「「報告書」に記入する合計時間は360時間以上」であり1000時間を越える学生も少なからず.この当時の授業時間外学習は最低で長期休みも含めた全期間で毎週5.625時間(ぎりぎりで合格水準に相当)であり16時間を超える学生も少なからず)
- 参考資料:3年Q4 EDレポート, 3年Q4卒業研究の題目と要旨
- 参考ページ(長岡君,松野君):
- 2020年度組込みシステム工学研究
- Lee, E.A. and Seshia, S.A.: Introduction to Embedded Systems A Cyber-Physical Systems Approach, Second Edition (2017), available from 〈http://LeeSeshia.org〉(accessed 2019-11-27).
- Jensen, J.C., Lee, E.A., and Seshia, S.A.: An Introductory Lab in Embedded and Cyber-Physical Systems, First Edition v1.70 (2015), available from 〈http://LeeSeshia.org/lab〉(accessed 2019-11-27).
- Berkeley の講義資料, Resourcesやlabが参考になる
- 今後について:[IcYY18]の研究例を真似するというのは,現時点でそれほど調べられていないので,中止する.興味があるトピックを見つける.
- 【欠席者の課題】対象者:黒川,松野.
- 関数,部分関数,単射,関数の合成とは何かをLaTeXでまとめる(以前やっているものを改訂する).
- 単射部分関数f, gの合成f o gは,単射部分関数であることを示せ.
- 連絡事項:
- 4月30日(金)9:10-10:50 文献紹介:
服部、平工- 服部
[YoYo17a] 横山哲郎,横山知郎:ハミルトン曲面流に対応する語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J100-D, No.10, pp.892894 (2017). リンク, 服部くん2019年10月14日の文献調査レポート
[Yoko20a] 横山知郎: ユーザーガイド: 2次元有限型流れのCOT表現とリンク構造,未発表 (2020). https://math.kyokyo-u.ac.jp/~yokoyama/UGG.pdf
[UdYS19] 宇田 智紀, 横山 知郎, 坂上 貴之: パーシステントホモロジーとレーブグラフを用いた2次元ハミルトンベクトル場の流線位相構造の自動抽出アルゴリズム, 日本応用数理学会論文誌, Vol.29, No.2, pp.187-224(2019). https://www.jstage.jst.go.jp/article/jsiamt/29/2/29_187/_article/-char/ja/
[SaYS14] 坂上 貴之, 横山 知郎, 澤村 陽一: 二次元多重連結領域内における構造安定な非圧縮流れの文字表現アルゴリズム, 数理解析研究所講究録, Vol.1900, pp.11-25(2014). https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1900-02.pdf - 平工
- 参考文献
- [Nohr15] Nøhr, S. V.: Reversible Graph Algorithms, Bachelor Thesis, Copenhagen University (2015).
- [AxYo15] Axelsen H.B., Yokoyama T. (2015) Programming Techniques for Reversible Comparison Sorts. In: Feng X., Park S. (eds) Programming Languages and Systems. APLAS 2015. Lecture Notes in Computer Science, vol 9458. Springer, Cham. https://doi.org/10.1007/978-3-319-26529-2_22
- 目的:様々なグラフアルゴリズムを可逆にした→データ表現や入出力を変えたアルゴリズムを作成して評価 or スタックやキューなどのデータ構造を対象 or 再帰的アルゴリズムや文字列探索などを対象として同じようなことをやる;アプローチ:Janusを使用→ROOPL++を使用,研究の手順:対象とする(非可逆の)アルゴリズムやアルゴリズムの解析方法をまとめる,Janusで既存プログラムを実行して確かめる,ROOPL++に移植する,新しい可逆アルゴリズムを設計して評価してROOPL++で実装する
- コメント
- p.4 「1961年、Landauerは熱の放出が起こらないまたは最小限に抑えるコンピュータは作れるという理論を作った」 →著者がLandauerの論文を誤って解釈している可能性あり
- p.5 ごみの定義があいまい
- p.7 faithfullness と hygiene の定義とその意味するところを示したほうが良い。これらは表現方法ではなく、ゴミの量の指標
- p.18 「enqueueとdequeueはゴミがない」→「enqueueとdequeueはゴミなしで実現可能」 or 「enqueueとdequeueは単射」(なのでゴミなしで実現可能)
- Disjoint setは非可逆なものをまずフォローしましょう(ほかのものも非可逆アルゴリズムをフォローしてなかったらフォローしましょう)。
- アルゴリズムを1ステップ1ステップずつ追うこともしたほうがよいでしょう。例も挙げましょう
- 次にやることの提案:
- ナイーブな方法に対応する可逆アルゴリズムをまず作成して解析する
- Sarahの方法を解析して改善する
- representative を最小の要素にする(などのように問題を少し変えて解く)
- 参考文献
- 服部
5月7日(金)9:10-10:50 文献紹介:児玉、黒川- 5月11日(火)9:10-10:50 文献紹介:児玉
研究報告:佐々木、高見- Kristiansen, L.: Reversible Programming Languages Capturing Complexity Classes, Proc. International Conference on Reversible Computation, Lanese, I. and Rawski, M. (Eds.), pp.111-127, Springer-Verlag (2020). https://doi.org/10.1007/978-3-030-52482-1_6
- Vidal, G.: Reversible Computations in Logic Programming, Proc. International Conference on Reversible Computation, Lanese, I. and Rawski, M. (Eds.), pp.246-254, Springer-Verlag (2020). https://doi.org/10.1007/978-3-030-52482-1_15 著者による研究発表
- 【要再提出 or 要提出】文献紹介:若浜、服部、黒川、佐々木、高見、研究報告:佐々木、高見
5月14日(金)9:10-10:50 文献紹介:松野、長岡緊急事態宣言に伴う休講- 5月18日(火)9:10-10:50
研究報告:谷崎、若浜- 【要再提出 or 要提出】文献紹介:若浜、服部、黒川、佐々木、高見、松野、長岡、研究報告:佐々木、高見、谷崎、若浜
- 論文の書き方, BibTeXの文献リストの作り方@YouTube, 理工学基礎演習(前半)資料
- 児玉:専門用語リスト, @Overleaf
- 5月21日(金)9:10-10:50
研究報告:吉見、セベロ - 5月25日(火)9:10-10:50 研究報告:服部
- 「流れの解析」をテーマとする
- 参考文献
[YoYo17a] 横山哲郎,横山知郎:ハミルトン曲面流に対応する語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J100-D, No.10, pp.892894 (2017). リンク, 服部くん2019年10月14日の文献調査レポート
[Yoko20a] 横山知郎: ユーザーガイド: 2次元有限型流れのCOT表現とリンク構造,未発表 (2020). https://math.kyokyo-u.ac.jp/~yokoyama/UGG.pdf
[SaYS14] 坂上 貴之, 横山 知郎, 澤村 陽一: 二次元多重連結領域内における構造安定な非圧縮流れの文字表現アルゴリズム, 数理解析研究所講究録, Vol.1900, pp.11-25(2014). https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1900-02.pdf - psicloneによるvector2hamiltonian: 以下のように環境構築する(Google ColabでもPythonを実行可能→Google 共有ドライブにおける例)
- vector2hamiltonian-sample01-210310.zipを共有フォルダからダウンロードして適切なフォルダに展開する.20210414_05ijo.ipynbというファイルがあることを要確認.
- Jupyter Notebookをインストールする
- psicloneをここからダウンロードしてインストールする
- Jupyter Notebookを起動して20210414_05ijo.ipynbを実行する
- 入力と出力例を確認する.

期末の進捗状況
Q1末における関連研究・関連技術・専門用語リストの文字数をチェック:
- 児玉:2000-2999
- 佐々木,高見,平工,谷崎: 1000-1999
- セベロ,服部,若浜: 1-999
4年Q2 水1(S47教室),火金2(S54教室)
- 【火曜日:研究報告】平工くんから2名ずつ学生番号順,4営業日前までにレジュメ・スライドをメーリングリストに投稿
- 【金曜日:文献紹介】佐々木くんから2名ずつ学生番号順,2週間前までに紹介する文献を指導教員にメール,4営業日前までにレジュメ・スライドをメーリングリストに投稿
- 未発表の人は,発表を希望する日の4営業日前までにレジュメ・スライドをメーリングリストに投稿
Q2 日程
- 6月4日(金)11:05-12:45 文献紹介:
平工,児玉,文献紹介:松野(発表機材が整っていないため)- 欠席者の課題:資料のp.6からp.8の問題3までを読んで,問題1~3の解答をレポートにまとめてWebClassから提出せよ.
- 6月8日(火)11:05-12:45 研究報告:
佐々木,高見,文献紹介:松野 - 6月11日(金)11:05-12:45 文献紹介:
黒川,松野,平工(6/4分) - 6月15日(火)11:05-12:45
研究報告:谷崎,若浜- 流れの確率過程の演習
- 環境設定
- 欠席者の課題:
- 上記の環境設定のリンク先をみて環境を整えよ.具体的にはpsicloneとHermes2Cをインストールしてサンプルプログラムを実行せよ.
- 資料を読んで,問題7~8の解答をレポートにまとめてWebClassから提出せよ.
- 6月18日(金)11:05-12:45
文献紹介:長岡,佐々木,研究報告:若浜6/15分 - 6月22日(火)11:05-12:45
研究報告:吉見,セベロ- 欠席者の課題:反射拡張,推移拡張,閉包,半順序関係について学習せよ.(2{1,2,3},⊆)が半順序集合であることを示して,WebClassから提出せよ.
- 6月25日(金)11:05-12:45
文献紹介:高見,谷崎,研究報告:吉見6/22分 - 6月29日(火)11:05-12:45
研究報告:服部,平工 - 7月2日(金)11:05-12:45
文献紹介:若浜,吉見- 服部君の課題:実験データ→確率行列
- 欠席者の課題(セベロ君):6月15日の演習の答えをWebClassから提出しなさい.
- 7月6日(火)11:05-12:45
研究報告:児玉,黒川- 研究テーマ・題目についての検討状況の確認:どの分野・テーマ・アプローチで研究を実施しているかを口頭で伝える練習
- 岐阜大学工学部オープンキャンパス模擬授業:ながれの形を言葉で伝えられるか? YouTube
- 7月9日(金)11:05-12:45
文献紹介:セベロ,服部- 連絡事項:進路届未提出の学生は進路先を指導教員に回答し進路届をキャリア支援室に提出すること
- 7月13日(火)11:05-12:45
研究報告:松野,長岡- 連絡事項:進路先調査,7/16輪読について,情報環境の整理について
- 7月16日(金)11:05-12:45
- 連絡事項:進路先調査
- 課題:現時点における「卒業研究に関する原稿」をWebClass金2「2021 52A18-003 卒業研究IIE」から提出して下さい.(形式は特に指定しません.しかし,卒業論文のLaTeXのスタイルを用いたものが望ましいです.LaTeXのスタイルファイルに記載されている「埋め草」は削除してから提出して下さい.)
- 関連研究・関連技術の調査結果を一定程度 記述しているものには,追加で課題を課す.
- 夏休み中にもゼミを開催する予定.
- (7月20日(火)11:05-12:45 授業は実施しない予定)
- (7月23日(金)11:05-12:45 授業は実施しない予定)
4年Q3 火34金3
- 情報技術専修コースの登録者は学習・教育到達目標の達成度評価を提出して下さい.
- (11月第1週目の第15回目の授業は実施しない予定)
参考文献
- [DeVo20] De Vos Alexis: Endoreversible models for the thermodynamics of computing, Entropy, Vol.22, No.6, pp.Article 660(2020).
- Landauerの原理に関する論文
4年Q4(木4 S44教室,火34 S58教室)
2020年度は学科において、「きちんと記述すれば上記の分量を超えるもの」という認識のもと、「卒業論文の分量については,1人25ページ程度,2名以上の場合は50ページ程度を目安」としました。(「卒業論⽂の改版について」)
- 11月18日(木)
- 連絡事項:マルチ商法に関する注意喚起について,卒業論文提出は12月から,ラジオ放送は 12月9日(木)20:30~21:00
- 11月23日(火)
【3限 13:35~ 研究進捗報告】 良い研究進捗報告になるように以下を参考にすること. △ ゼミにおいて進捗報告なし ↓ 一言,進捗報告を伝えられる ↓ 箇条書きで3点ほど文章でまとめた上で発表できる:書くべき内容は,進捗状況・課題(未解決・解決済み)・進捗状況の評価(自分なりに何%完成したか) ↓ スライドやレジュメを用意して進捗状況を発表できる:研究テーマ,研究背景,研究目的,研究課題など ◎ 進捗状況を研究室のメンバに共有できる,受講生から研究遂行上に必要な助言やコメント,質問を受けられる 【4限 15:30~ 個別ミーティング】 4限前半 学生研究室 2015SE067 セベロ テルオ 2017SE013 服部 哲也 2018SE016 平工 真基 2018SE091 谷崎 海良 2018SE088 高見 雄大 2018SE098 若浜 大揮 2018SE107 吉見 颯 4限後半 オンライン 2018SE034 児玉 春司 2018SE036 黒川 誠史 2018SE041 松野 宏典 2018SE055 長岡 楓己 2018SE076 佐々木 龍之介
- 11月25日(木)
- 前半 M2田島君の研究進捗報告
- (できる人は)研究進捗報告
- 卒業論文 初稿の確認と来週からの提出について
- 宿題:題目の検討
- 12月2日(木)4限,12月9日(木)4限
- 12月16日(木)4限
- 連絡事項:卒業論文・要旨は初稿が完成したら1度提出すること.締切までは何度でも提出可能.スライドのテンプレートなども要確認.
- 発表練習 若浜
- 12月21日(火)3~4限
- 連絡事項:卒業時アンケート,学生研究室退室時の施錠を要確認
- 剽窃チェックソフト turnitin のクラスへの登録
- 参加登録キー: yamasato, クラスID: 32674429
- 卒業論文,要旨提出状況の確認
- 令和4年1月11日(火)3~4限 要旨の確認
- 令和4年1月13日(木)4限 発表練習
- 令和4年1月18日(火)3~4限 発表練習,題目提出
- 題目(案)
- 要旨,卒業論文,スライドのアップロード用(要横山研アカウント)
- 令和4年1月19日(水)17:00卒業論文提出締切
- 令和4年1月20日(木)4限 発表練習(予備)
- 令和4年1月22日(土)卒業研究発表会
- 11月30日(火)休講,12月7日(火)休講,12月14日(火)休講,12月23日(木)第15回目の授業日
要旨の形式
要旨の形式は 卒業研究に関するお知らせ を参考にすること.同ページに記載の「要旨を作成する前に次の3点を指導教員に確認し、指導教員の指示に従って作成して下さい。」については以下のようにすること.
- LaTeXとワードプロセッサ(MS Word等)のどちらを使用するか。⇒ どちらでも可.フォントを使い分けたり数式を多用する卒業論文はLaTeXを使用することを推奨.
- 参考文献の書式と番号の付け方。⇒特に理由が無ければ情報処理学会の形式に従うこと.
- 要旨の枚数(特に、グループでの研究の場合は注意すること)。⇒2ページ.ただし2名で研究をする場合は4ページ.
参考文献など
- 2019年配属者の2019年度のゼミ,2020年度のゼミ
- [Asai07] 浅井健一:プログラミングの基礎,サイエンス社 (2007).本テキストを使った授業紹介.
- [OhGN99] 大堀 淳,ジャック ガリグ,西村 進:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉,岩波書店 (1999).
- [TaNH99] 田辺 誠,中島玲二,長谷川真人:コンピュータサイエンス入門〈論理とプログラム意味論〉,岩波書店 (1999).
- Slackでエラーメッセージとソースコード一式を送信する方法 @YouTube
- [Linux2019-2021] LinuC/LPICにも役立つ! 基礎からわかるLinuxコマンド(日経Linux,
2019/01号〜2021/01号)
日経Linuxは普通の書店で販売されている一般誌です.- 第1回 コマンドの基本操作と「引数」「変数」を知る 学内
- pwd, uname, exit, echo, man, help, unset, set, シェル,カーネル,シェル変数,カレントディレクトリー
- 第2回 コマンドの動作を定義する「環境変数」とコマンド操作の「履歴」 学内/学外
- export, printenv, date, env, history, 環境変数,環境変数PATH/LANG/SHELL,プロセス,.bash_profile, Ctrl+P/↑, Ctrl+N/↓, Tabによる補完機能, !1, !!, Ctrl+R
- 第3回 ファイル操作の基本コマンド 学内
- cd, ls, cp, mv, mkdir, rmdir, rm, touch, file, 絶対パス/相対パス,ホームディレクトリー~,カレントディレクトリー.,一つ上のディレクトリー.., 直前のカレントディレクトリー~-
- 第4回 実行した結果を受け渡す 学内
- 第5回 ファイルを検索する 学内
- 第6回 リダイレクションとパイプを活用する 学内
- 第7回 ファイルの圧縮、解凍、アーカイブ、展開 学内
- 第8回 テキストエディタ「vim」の使い方(1)
- 第9回 テキストエディタ「vim」の使い方(2)
- 第10回 文字列の検索と置換、正規表現の基本 学内
- 第11回 ジョブとプロセスの管理 学内
- fg, bg, jobs, &
- 第12回 ユーザー管理の基礎
- 第13回 ユーザー管理の基礎 学外
- 第1回 コマンドの基本操作と「引数」「変数」を知る 学内
- 卒業論文を執筆するときに参考にするページ
- 卒業研究に関するお知らせ (卒論生は定期的に確認しなければならない。)
- 横山哲郎:論文の書き方.@Overleaf
- 卒論LaTeXテンプレート@Overleaf
- 理工学基礎演習(後半)資料
- 英文雑誌の題目の省略方法(ISO-4)@YouTube
- BibTeXの文献リストの作り方 @YouTube
- Overleafの使い方 @qiita
- IMEでデフォルトの句読点を「,.」にする @Google検索
- 文献調査をするときに参考にするページ
- 南山大学で利用可能な電子リソースの使い方 @youtube(学外からもAXIAのIDとパスワードを用いて多くのものが手に入れられます)
- 読むべき論文の探し方
- 論文調査を行ったときのまとめ方
- 大学院生の論文調査のまとめや論文紹介スライドを参考に(例:まとめ,論文紹介スライド)
- 落合先生の「読み終わったらどんな論文かまとめる」方法
- 質問をするときに参考にするページ
- GNU Make
- 対外発表(学会等での発表)をするときに参考にするページ