2019年配属者のゼミ(3年次,2019年度)
2019年度シラバス
- 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, 「エンジニアリングデザイン能力などの課題解決能力に関するレポートおよびプレゼンテーションを課す」
2019年 秋学期 日程
日程は変更されることもあるのでよく確認すること.括弧付きの灰色の部分は必ずしも出席しなくて良い.
- Q3毎週のゼミ 火5@S67教室
- (9/20(金) 修士論文 中間審査 発表練習会 17:00@S65教室)
- 9/24(火)17:00 4年生の発表練習会@
S45教室S67教室:聴講して質疑に参加してコメントを提出する - (9/28(土) 修士論文 中間審査)
- 10/2(水) 中間発表会:聴講してコメントを提出する
- 10/22(火)ゼミ休講の予定
- 11/15(金)@WebClass Q3の発表資料やレポートなどの締切
- 1/17(金) 卒業研究発表会:聴講してコメントを提出する
- (1/25(土) 修士論文 最終試験)
- 1/30(木)@WebClass Q4の発表資料やレポートなどの締切
2019/9/17(火)
- JABEE達成度評価表の提出(青柳,久保井,宮本,水野,新美,野端,諏訪,吉山,板田)
- 日程の確認,Q4のゼミの曜限の決定(火5?)
- Q3のグループの決定 3名ずつ+1名:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉の後半のプログラミング課題にプログラミング言語OCamlを用いて取り組む
- 藤田 一希,青柳 裕樹,服部 哲也
- 久保井 彩香,宮本 昌武,水野 幹大
- 新美 伊織,野端 祐人,諏訪 貴大
- 竹市 翔哉,吉山 大輔,板田 怜子
- 脇坂 怜輝
- 学内サーバowariのアカウントの確認(使用しなくても良い)
- emacs, ocaml, utop, minimal, bnfc などがインストールされている
- ドメイン名:owari.se.nanzan-u.private, IPアドレス:10.49.1.56
- SSHでログイン可能
- 端末から ssh -Y 17se000@owari.se.nanzan-u.private とタイプする.ユーザ名 17se000 はAXIAアカウント名に書き換える.
- パスワードは授業内で案内されたものを用いる.
- ログイン後にパスワードは passwd で変更すること.
- tuareg-mode を使うには ~/.emacs に
(load "/home/share/emacs/tuareg/tuareg-site-file")
と記述する.基本的な使い方はここを参照.- M-x run-ocaml で OCaml REPL を開始
- C-c C-e でフレーズを評価
- C-cC-; でコメント/アンコメントをトグル
- コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉 p.150-151 問11.7の解答例:
ocamllex と ocamlyacc を用いた実装, BNFCを用いた実装(←期間が過ぎたので公開をとりやめます)
2019/9/24(火)
- JABEE達成度評価表の提出(久保井,宮本,水野,新美,諏訪,板田) ※JABEE対応コースでない人は提出不要です.
- 中間発表会の聴講 要旨とスライド
- OCamlプログラミングについて
宿題
- (まだ確認していないグループは)p.150-151 問11.7の解答例を確認しなさい.
- (まだやっていない人は)OCamlコンパイラが使えるようにしなさい.OCamlプログラムを編集するための設定をしなさい(Emacs + tuareg-mode + utop がおすすめ).
- 筑波大学 情報科学類 3年次実験のページの 課題1-3 (ローカルコピー) の解答となるプログラムをWebClassの「2019 52A07-008 ソフトウェア工学演習III」というコースの「OCamlプログラミング」というフォームから提出しなさい.締切:2019/09/30 19:00
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 型推論システム
2019/10/1(火)
- 9/25(水)第2回就職(進路)ガイダンスの出欠状況確認
- インターンシップ ランチタイムセミナー(10/8(火),10/29(火))の案内
- 配布物
- 卒業研究中間発表会 のコメント用紙
- 浅井健一: プログラミングの基礎, サイエンス社, (2007). (各グループで1冊)
- 前回の課題の講評
- OCamlの環境整備についての確認
宿題
- 各グループで先輩の卒業研究中間発表会の発表内容を簡潔にまとめたレジュメとスライドを準備し5分程度のプレゼンテーションする(背景,目的,アプローチ,結果,有用性,限界・短所,さらに調べるべきこと).WebClassにゼミの前日(2019/10/7(月)19:00)までにPDF形式で提出すること.
- 各自でOCamlについて学ぶ.OCamlを用いた課題は今週は無い.
2019/10/2(水): 卒業研究中間発表会
2019/10/8(火)
- ノートPCを持参すること.
- 提出物:卒業研究中間発表会のコメント用紙(卒業研究中間発表会の出欠)
- 2019/9/24(火)の宿題の模範解答
- 前回の宿題の結果
- 「二次元多重連結領域内における構造安定な非圧縮流れの木表現の可視化手法」の参考文献
- [SaYS14] 坂上貴之,横山知郎,澤村陽一:二次元多重連結領域内における構造安定な非圧縮流れの文字列表現アルゴリズム,数理解析研究所講究録,Vol.1900, pp.11–25 (2014).
- [NKYY19] 内藤綾香,加藤舞,横山哲郎ほか:円板上の非圧縮流の反転の解析,情報処理学会第81回全国大会講演論文集,pp.319–320 (2019).
- [YoYo19a] 横山哲郎,横山知郎:多重連結領域上の安定非圧縮流のプリミティブな局所構造変換,電子情報通信学会和文論文誌D, Vol.J102-D, No.3, pp.235–238 (2019).
- [YoYo17a] 横山哲郎,横山知郎:ハミルトン曲面流に対応する語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J100-D, No.10, pp.892–894 (2017).
- [YoYo18b] 横山哲郎,横山知郎:ハミルトン曲面流に対応する流れの向きを考慮した極大語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J101-D, No.8, pp.1220–1222 (2017).
- [KaNa19] 加藤舞,内藤綾香:多重連結領域上の安定非圧縮流の解析,南山大学2018年度卒業論文(2019).
- 「可逆グラフアルゴリズム」の参考文献
- [AsYa19] 浅野早紀,山口春樹:可逆な深さ優先探索,南山大学2018年度卒業論文(2019).
- [IeMi18] 家崎雄太,水野竣太郎:可逆線形探索,南山大学2017年度卒業論文(2018).
- [OhYa18] 大久保雄飛,安田拓也:二分木のランク計算のクリーン可逆シミュレーション,南山大学2017年度卒業論文(2018).
- [OhYK16] 大久保雄飛,横山哲郎,金山知俊:二分木のランク計算のクリーン可逆シミュレーション,日本ソフトウェア科学会第33回大会講演論文集(2016).
- [ShYo19] 柴田心太郎,横山哲郎:二分木の辞書順のランク計算の効率的なクリーン可逆シミュレーション,電子情報通信学会和文論文誌D, Vol.J102-D, No.3, pp.130–140 (2019).
- [Yoko17a] 横山哲郎:可逆プログラムのための償却定数時間かつ定数ゴミ使用量のメモ化,電子情報通信学会和文論文誌D, Vol.J100-D, No.10, pp.895–896 (2017).
- [Yoko18a] 横山哲郎:可逆ビンソート,電子情報通信学会和文論文誌D, Vol.J101-D, No.5, pp.791–783 (2018).
※参考文献のファイルはここからも取得できます.
宿題
- 提出先:WebClass
- 提出者:全員(それぞれ各自で提出すること)
- 〆切:ゼミの前日(2019/10/14(月)19:00)
- 今日までにまとめた卒業研究中間発表会の発表内容に関する参考文献調査を各自でしてください.
- 対象文献:上記の参考文献その参考文献リストに載っている文献(グループ内では異なる文献を対象とすること.できるだけ他のグループの人たちとも異なる文献を対象とすること.英語文献にも積極的に挑戦してほしい.)
- ファイル形式:PDF
- 内容:箇条書きで「背景,目的,アプローチ,結果,有用性,限界・短所,さらに調べるべきこと」のまとめ
- 調査結果はグループ内で共有すること.
- 亀山先生の講義資料中の 課題2-3, 課題2-4, 課題2-5 にグループで取り組んで各自で答案を作成して回答してください.(授業時間内にも解答を作っていって構いません.)
- ファイル形式:Text
- 課題2-2の解答例
- サーバowariの上にあるファイルをローカルにコピーする方法
scp 17se000@owari.se.nanzan-u.private:~/a.ml .
ソース/ターゲットの書式は [user@]host:[path] である.man scp を参考にすると良い. - サーバ上にあるファイルをWebClassに提出するいくつかの方法:(1) ftp, scp などを用いて貸与ノートPCにダウンロードし,貸与ノートPCからWebClassに提出する.(2) サーバ上でfirefoxを立ち上げて提出する.(3) emacsなどのエディタで開いてローカルにコピーして,貸与ノートPCからWebClassに提出する.
2019/10/15(火)
- 連絡事項
- 学生研究室の消灯に注意
- インターンシップ ランチタイムセミナー(
10/8(火),10/29(火))の案内 - 早期研究室訪問期間2019/10/18(金)~10/31(木):
訪問者に学生研究室の扉に貼ってある訪問記録に記入するように促してください. - 次回もノートPCを持参すること.
- 模範解答や他の人の解答を参考に復習すること:2019/10/08(火)の宿題の模範解答,提出された解答
- 締め切り前の提出数 Q1:11人,Q2:9人
- OCamlプログラムについては,よくできていた.
- 文献調査:論文中の文章ではなく,自分の言葉で説明できるようになる必要がある.
- 服部,板田:[YoYo17a] 横山哲郎,横山知郎:ハミルトン曲面流に対応する語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J100-D, No.10, pp.892–894 (2017).
- 宮本:[AsYa19] 浅野早紀,山口春樹:可逆な深さ優先探索,南山大学2018年度卒業論文(2019).
- 諏訪,青柳,吉山:[KaNa19] 加藤舞,内藤綾香:多重連結領域上の安定非圧縮流の解析,南山大学2018年度卒業論文(2019).
- 野端:[YoYo18b] 横山哲郎,横山知郎:ハミルトン曲面流に対応する流れの向きを考慮した極大語の列挙アルゴリズム,電子情報通信学会和文論文誌D, Vol.J101-D, No.8, pp.1220–1222 (2017).
- 新美:[NKYY19] 内藤綾香,加藤舞,横山哲郎ほか:円板上の非圧縮流の反転の解析,情報処理学会第81回全国大会講演論文集,pp.319–320 (2019).
- 久保井:[OhYK16] 大久保雄飛,横山哲郎,金山知俊:二分木のランク計算のクリーン可逆シミュレーション,日本ソフトウェア科学会第33回大会講演論文集(2016).
- 水野:[IeMi18] 家崎雄太,水野竣太郎:可逆線形探索,南山大学2017年度卒業論文(2018).
- 竹市:[SaYS14] 坂上貴之,横山知郎,澤村陽一:二次元多重連結領域内における構造安定な非圧縮流れの文字列表現アルゴリズム,数理解析研究所講究録,Vol.1900, pp.11–25 (2014).
- 藤田:[YoYo19a] 横山哲郎,横山知郎:多重連結領域上の安定非圧縮流のプリミティブな局所構造変換,電子情報通信学会和文論文誌D, Vol.J102-D, No.3, pp.235–238 (2019).
宿題
- 提出先:WebClass
- 提出者:全員(それぞれ各自で提出すること)
- 〆切:ゼミの前日(2019/10/28(月)19:00)
- 内容:
- 参考文献調査をレジュメ1枚を目安に行ってください.(PDF形式)
複数の文献調査を行ったり,2枚以上しっかりと文献調査報告書を準備していたらより良いです.(でもそこまで求めません.すでにやっているものを減らす必要はありません.)
箇条書きで「背景,目的,アプローチ,結果,有用性,限界・短所,さらに調べるべきこと」のまとめをしてください. - 亀山先生の講義資料中の課題3-1, 3-2, 4-1 に回答してください.複数のファイルがある場合は,圧縮ファイルにしてアップロードしてください.
(テキスト形式, 拡張子.mlファイルが望ましい) - ヒント:miniocamlで関数parseを使う方法はmain.mlに書いてあります.
- 参考文献調査をレジュメ1枚を目安に行ってください.(PDF形式)
2019/10/22(火): 休講
2019/10/29(火):文献調査結果の報告
- 前回の宿題で提出したファイルを元に口頭で数分で,文献調査結果の報告を行う.提出された資料,参考文献
- 模範解答や他の人の解答を参考に復習すること:2019/10/15(火)の宿題の模範解答,提出された解答
-
『コンピュータサイエンス入門』の輪読において学んだ表示的意味論,操作的意味論について,レポート作成に向けて別の角度から復習する(板書).
宿題
以下の学習を行って期末レポートの文章を書き,ソースコードを準備できるようにする.【提出不要】
- 亀山先生の講義資料中の5,6,8章で処理系の実装方法を学ぶ.
- 『コンピュータサイエンス入門〜論理とプログラム意味論』の第1章を読んで構文論・意味論の初歩について復習する.
- 『コンピュータサイエンス入門〜アルゴリズムとプログラミング言語』のプログラミング言語の部を読んで意味論について学ぶ.
2019/11/05(火):Q3最終回
- Q4のゼミの曜限決定:木4に決定(候補 火1-4, 木4)
- Q3末までのレポート課題 の確認,レポートのサンプル (ソースコード)
- 『コンピュータサイエンス入門』の輪読において学んだ表示的意味論,操作的意味論について,レポート作成に向けて別の角度から復習する(板書).
Q3期末レポート課題
- 提出先:WebClass
- 提出者:各グループの代表者
- 〆切:定期試験の最終日,定期試験予備日の前日(2019/11/15(金)19:00)
- 内容:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉にある以下の処理系の制作をして,レポートにまとめなさい.(できるところまでで構いません.)
- 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 型推論システム
2019/11/21(木)4限:Q4初回
- Q3期末レポート提出物, p.212-213 解答例(ラムダ式からコンビネータへの翻訳)
- 連絡事項:進路が決まり次第,進路届をキャリア支援室に提出ください
- エンジニアリングデザイン(ED)について
- 既存のプロジェクト
- 過年度のレポートを参考: 2012と2013, 2016 (2016グループワーク製作), 2017, 2018, 2019
- インタプリタ: Minimal 京都大学, WHILE (実装言語 OCaml 横山, Haskell 横山, Haskellその2 横山, Clac 横山, R-WHILE 横山, RFUN ブレーメン大学博士研究員, Petit (実装言語BNFC, C#とgplexとgppg) 南山大3年生, Janus (実装言語SML, Haskell) 横山, JOOL (Janus Object-Oriented Language) コペンハーゲン大3年生, R-CORE (実装言語 OCaml, Haskell) 横山, PISAオンラインインタプリタPHPISA フロリダ大学学部生, pendvm, phpisa, Rコンパイラのアーカイブ
- コンパイラの例: Rコンパイラ MIT 博士後期課程の学生, RCC: Reverse C Compiler (M1渡邉くん,B4外川くんが作成中のもの,リポジトリのアクセスには許可が必要), C2J: C++からJavaへの翻訳, ROOPL to PISA コペンハーゲン大3年生, Pendulum VM (PISAインタープリタ) コペンハーゲン大3年生
- Webインターフェース: R-WHILE 南山大3年生, Janus コペンハーゲン大3年生
- プロジェクトの候補(下に行くほど挑戦的なもの)
- 亀山先生の実験のページにある処理系
- プログラミング言語理論の教育用の言語 Petit, Calc, WHILE
- コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉の問の処理系(Q3期末レポート課題)
- 離散情報から流れの図の描画をする処理系,流れの離散情報を処理する処理系
- Janusの拡張(定数を追加する,....)
- 高水準プログラミング言語間の変換
- 可逆オブジェクト指向言語(ROOPL, JOOL/Joule)
- 東京大学4年生の演習課題(自分が所属する以外の研究室の課題を4週間で行なっている)
EDのプロセス
- 現状の把握
- (主体を確定)問題の発見
- 課題の設定(目的の設定)
- 解決策の立案
- 解決策(代替案)の立案
- プレゼン資料とレポートの作成
- 講評
2019/11/28(木)4限
- 連絡事項:グループディスカッション,業界職種研究会
- 連絡事項:全国学生調査2019
- 確認事項:owariサーバの使用状況について.使用していないならば移行します.
EDのグループとテーマの決定
- SRLからRLへの翻訳器の制作([YoAG16]のFig.21).
- [YoAG16] Yokoyama, T., Axelsen, H.B., and Glück, R.: Fundamentals of reversible flowchart languages, Theoretical Computer Science, Vol.611, pp.87-115, (2016) PDF
Fig.18-20 逆変換器, Fig.24 変換例; Fig.21 SRLからRLへの翻訳器; RLからSRLへの翻訳器; Fig.24-25 RLプログラムとSRLプログラムの例 - [Mori09a] Moriyama, K.: Theoretical properties of reversible flowchart programming languages, コペンハーゲン大学コンピュータ科学科,2年次生期末レポート 29p. (2009)
- [Mori09b] Moriyama, K.: An Introduction to Reversible Programming Using Simple Reversible Flowchart Languages, コペンハーゲン大学コンピュータ科学科,2年次生期末レポート,74p. (2009)
- [YoAG16] Yokoyama, T., Axelsen, H.B., and Glück, R.: Fundamentals of reversible flowchart languages, Theoretical Computer Science, Vol.611, pp.87-115, (2016) PDF
- レゴ マインドストーム EV3 のための C プログラムから Java プログラムへの翻訳器
- kon-nyaku (ブランチ esutouSpike: C2Java, x2y; ブランチ yamazato),アクセスにはGitHubのアカウントとCollaboratorの登録が必要
- 情報システム開発実習2019Q4
2019/12/19(木)4限
- 連絡事項:就職活動について
- いわゆる「1dayインターン」
- 業界の知識をしっかりと得ること
- 連絡事項:冬期休暇中のネットワーク停止について
AXIA機器交換やメンテナンスの実施に伴い学内ネットワークを停止
2019/12/24(火) - 26(木) , 28(土) - 30(月)
2020/01/04(土) , 05(日)
2020/1/9(木)4限
- 連絡事項
- Q4レポートには,学部共通・学科共通・研究室共通の3つがあることに注意.
- 学生入試広報スタッフ募集
2020/1/17(金): 卒業研究発表会
- 卒業研究発表会のスケジュールはここに掲載される予定である.
2020/1/23(木)4限
- エンジニアリングデザインの成果報告会
- 発表資料とレポート
- 服部哲也,久保井彩香,宮本昌武,諏訪貴大,吉山大輔,板田怜子,藤田一希:レゴマインドストームEV3のためのCプログラムからJavaプログラムへの翻訳器
- 青柳裕樹,水野幹大,新美伊織,野橋祐人,竹市翔哉:SRLからRLへの翻訳機の実装
Q4レポート課題
Q4(学科共通)期末レポート課題:卒業研究の題目と要旨
- 提出先:WebClass
- 提出者:全員(各自が提出)
- 〆切:Q4第7回目のゼミの前日2020/1/15
- 要旨の形式:PDF形式 A4 1ページを目安, 卒業研究発表会の要旨の形式を参考にすること
- 内容:卒業研究の題目と要旨(背景,目的,計画,関連研究,参考文献など).テーマが異なる場合は含めることができないが,関連研究には以前調査したものを含めることが望ましい(既存の文献の中から抜き出してきたものを書いてはいけない.必ず自分の言葉で書くこと.).
Q4(横山研)期末レポート課題
- 提出先:WebClass
- 提出者:全員(グループで1部提出,分担を明記すること)
- 〆切:Q4第7回目のゼミの前日 2020/1/15
- 内容:本学期に行ったエンジニアリングデザインに関する課題
- 形式:レポートはPDF形式,そのほかの関連ファイル一式とともに圧縮ファイルにすること.
- 過去のレポートを参考:2012, 2013年度, 2016年度, 2017年度
Q4(学部共通)期末レポート課題 エンジニアリング・デザイン教育に関するレポート
- 提出先:ゼミにて提出
- 提出者:全員(各自が提出)
- 〆切:Q4第7回目のゼミ 2020/1/16(木)
- 内容:学部の案内ページを読むこと.本学期で行ったエンジニアリング・デザイン能力習得の達成度確認を学生自身が行う.
- 形式:学部の案内ページにしたがうこと.
2020年度に向けて
- 2020年度Q1Q2のゼミの時間 仮決め:水2
参考文献など
- JABEE対応コースの学習・教育目標 (2016年度入学理工学部生向け 情報技術専修コースの案内)
- この学年用のGoogle Drive
- OCamlの参考文献など
- 【指定図書】浅井健一:プログラミングの基礎,サイエンス社 (2007).ISBN 978-4-7819-1160-1
- 以下の授業でも使われているテキスト
- お茶の水女子大学 理学部 情報科学科 2年次講義 関数型言語(浅井健一先生):講義ビデオ,スライドなどがあります.
- 五十嵐淳: プログラミングin OCaml~関数型 プログラミングの基礎から GUI構築まで, 技術評論社, (2007). ISBN 978-4-7741-3264-8
- 【学外書庫】OCaml-Nagoya: 入門OCaml, 毎日コミュニケーションズ, (2007). ISBN 978-4-8399-2311-2
- OCamlチュートリアル
- 筑波大学 情報科学類 3年次実験(ソフトウェアサイエンス実験) :インタープリタや簡単なコンパイラの作成の解説があります.
- 第1回PPLサマースクール講義資料「OCamlによるプログラミング」(Jacques Garrigue先生):streamパーザのさわりの解説も.
- 【指定図書】浅井健一:プログラミングの基礎,サイエンス社 (2007).ISBN 978-4-7819-1160-1
- 大堀 淳,ジャック ガリグ,西村 進:コンピュータサイエンス入門〈アルゴリズムとプログラミング言語〉,岩波書店 (1999).
- Q1, Q2で輪読をしたテキスト
- 京都大学の1回生向け
- 横山哲郎:2019年度Q2情報科学概論 演習 処理系の実装 (2019).
- 大学院 情報科学概論 の講義資料,処理系の実装,使用言語はJava/Haskell