2017年度 配属者のゼミ
3年次Q1
学期始めに「JABEE対応コースの学習・教育目標」と「科目の学修目標」を周知します。スライド
- 52A06-008(SE-TEC-3006) ソフトウェア工学演習I: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- E-1 コミュニケーションの能力: 適切なコミュニケーションを行うことができる
- E-2 文章作成の能力: 正確かつ論理的な文章を作成することができる
- E-3 プレゼンテーションの能力: 調査・研究の結果を正確にまとめ、的確にプレゼンテーションを行うことができる
- E-4 グループで仕事をするための能力: グループの一員として共同して課題に取り組むことができる
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。 プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます(4点満点).
第1回 4/12 オリエンテーション
- 「S棟学生研究室カードキー」の配布。
- S303とサブエントランスのみが開錠できる。
- 学生研究室 S303 の座席配置について。
第2回 4/19 オリエンテーション(続き)
- 横山研究室ガイダンス資料
- 大学はどんなところ? (陳先生)
- G Suite for Education のパスワードの発行
- 研究室のメンバーの間でのみ、YouTube動画を公開したり、発表資料を共有したりできます。アップロードできるファイルの総容量はほぼ無限です。
- 個人情報について
- テキストの配布(まだ受け取っていない人のみに)
- 情報処理学会 ジュニア会員について。会費無料でお得ですので,学会に登録することをおすすめします。
- 横山研究室の研究テーマについて
- 大きくいうと「科学」、もう少しいうと「コンピュータ科学」、さらにいうと「プログラミング言語理論」、直近のテーマは「可逆計算」
- コンピュータ科学(CS)のカリキュラム標準J07-CS
- 今期は特に以下の内容を復習しつつ利用していく。離散構造(関数,関係,集合,論理,グラフ,証明技法,オートマトンと正規表現,計算論),プログラミングの基礎,アルゴリズム,アーキテクチャと構成,プログラミング言語,ソフトウェア工学(ソフトウェア設計,APIの使用,ソフトウェアツール及び環境,ソフトウェア妥当性検査),ネットワークコンピューティング(ウェブアプリケーション),ヒューマンコンピュータインタラクション(Webサービスにおけるユーザインタフェースの構築)
- 過去の学生のテーマ
- 過去の卒論テーマと予稿, 過去の修論の予稿
- 卒論生が書いて学会の論文誌で発表した論文
- 可逆プログラミング言語の引数渡し機構の拡張 (草稿, スライド)
- 引数渡し機構をもつ可逆プログラミング言語の可逆性(草稿)
- リストの可逆分割アルゴリズムを利用したゴミ情報が最適な可逆クイック整列法の生成(草稿)
- 過去のエンジニアリングデザインのテーマ
- 発表論文など
- 文部科学省系の科学研究費補助金におけるテーマ
- 開発したソフトウェア
- Janus インタープリタ, Janus オンラインインタープリタ
- Janusとは? Wikipedia
- R-WHILE インタープリタ, R-WHILE オンラインインタープリタ
- PISA オンラインインタープリタ
- こんにゃく
- kaesen(替銭)
- 大きくいうと「科学」、もう少しいうと「コンピュータ科学」、さらにいうと「プログラミング言語理論」、直近のテーマは「可逆計算」
- おすすめ
- 専門科目・ソフトウェア工学科選択科目のうち「プログラミング言語(野呂昌満先生)」「オブジェクト指向プログラミング(蜂巣吉成先生)」「数理論理学(佐々木克巳先生)」の内容をしっかり学習しましょう。なお「プログラミング言語」と「数理論理学」は情報技術専修コースを修了するのに3科目6単位以上修得しなければいけない単位に分類されています。
- 「情報技術専修コース」へ登録しよう
- 「情報技術専修コース」において修了に必要な「アルゴリズム論」、「プログラミング言語」、「計算機アーキテクチャとOS」、「ソフトウェア工学基礎」、「ソフトウェア開発技術I」、「情報通信セキュリティ」はいずれも横山研究室における研究のために必要な知識ですので、よく復習しましょう。
- ホームページ「理工学部(情報理工学部)・理工学研究科 [学内向け] 」について
- 2017年度の研究室配属について
第3回以降
輪読: コンピュータサイエンス入門〈2〉 論理とプログラム意味論
第6回(5/17)
- スライドの書き方,教員による添削例(ビフォー・アフター)
リンク
- 野呂 昌満, プログラミング言語 (2015年度), シラバス
- 本演習でもやるアセンブリプログラミング言語、プログラミング言語の計算モデル(手続指向計算、関数指向、論理指向モデル)、正規表現、文法、字句解析および構文解析法、中間表現とコード生成系を扱います。
- 2016年度はコンパイラを製作する課題が出ていません。しかし、コンパイラ製作は一度やっておくと良いでしょう。本演習のレポート課題としてコンパイラ製作を選択することもできます。
- 佐々木 克巳, 情報数学・数理論理学
- コンピュータ科学における基礎として重要です。われわれの研究室では、情報数学や数理論理学を発展させるわけではなく利用するだけですが、これらの授業で扱う内容はしっかり復習して4年生で利用できるようにしましょう。
- 蜂巣吉成, オブジェクト指向プログラミング
- Javaを学んでいるという考えのみでは不十分です。オブジェクト指向プログラミングの重要概念(クラス・オブジェクト、カプセル化、継承、多相性)を身につけるようにしましょう。
- 沢田 篤史, ソフトウェア開発技術I, シラバス
- 開発プロセス、構造化・モジュール化・抽象化、構造化分析、オブジェクト指向分析・設計など、3年の秋学期以降ソフトウェア開発を行っていく上で必須の知識を身につけられます。UMLが読めないと、おそらく他の研究室の人が何をやっているかを短時間で読み取ることは不可能でしょう。
- 吉田, アルゴリズム論(2014年)
- 計算複雑度の解析をできるようになりましょう。
3年次Q2
学期始めに「JABEE対応コースの学習・教育目標」と「科目の学修目標」を周知します。
- 52B11-008(SE-TEC-4031) ソフトウェア工学演習II: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- E-1 コミュニケーションの能力: 適切なコミュニケーションを行うことができる
- E-2 文章作成の能力: 正確かつ論理的な文章を作成することができる
- E-3 プレゼンテーションの能力: 調査・研究の結果を正確にまとめ、的確にプレゼンテーションを行うことができる
- E-4 グループで仕事をするための能力: グループの一員として共同して課題に取り組むことができる
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。 プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます.
授業内容
コンピュータ科学の基礎を学ぶ。京都大学の一般教養科目(1年生〜)で用いられた「コンピュータサイエンス入門〈2〉 論理とプログラム意味論」の第1章〜第6章を引き続き輪読する。全受講者は、割り当てられた範囲を読んで練習問題を解いてくる。各受講者は、割り当てられた範囲をレジュメ(報告資料)やスライドにまとめて疑問点や興味を持った点を共有する。
Petitの解釈系の実装
発展課題(配点0点):好きな言語でPetitの解釈系を実装してみましょう。以下は、過去に開発されたものです。
その他
- これまでに学んだBNFや意味論が使われている例: Robert GLÜCK1, Tetsuo YOKOYAMA: A Linear-Time Self-Interpreter of a Reversible Imperative Language,Computer Software Vol. 33 (2016) No. 3 p. 3_108-3_128. PDF
- 授業の内容に関係する/しないに係わらず、定評のある書籍を読んで教養を深めることを勧めたい。
3年次Q3
学期始めに「JABEE対応コースの学習・教育目標」と「科目の学修目標」を周知します。
- 52A07-008(SE-TEC-3007) ソフトウェア工学演習III: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- E-1 コミュニケーションの能力: 適切なコミュニケーションを行うことができる
- E-2 文章作成の能力: 正確かつ論理的な文章を作成することができる
- E-3 プレゼンテーションの能力: 調査・研究の結果を正確にまとめ、的確にプレゼンテーションを行うことができる
- E-4 グループで仕事をするための能力: グループの一員として共同して課題に取り組むことができる
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。 プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます。
テーマ一覧
- 流体力学へのトポロジカルで離散的なアプローチ
- 流れをどのように描画するか
- 可逆アルゴリズム
- プログラミング言語の翻訳
- プログラミング言語の調査
以下は皆さんの先輩が取り組んだテーマです。参考までに。
- 2017年度 卒業論文 仮題目
- 可逆線形探索
- 二分木のランク計算のクリーン可逆シミュレーション
- 1次元可逆セル・オートマトンのクリーン可逆シミュレーションの実現
- 可逆プログラミング言語R-WHILEによる万能可逆チューリング機械の構成
- 初学者の学習支援のためのPythonとRuby間の翻訳
- 2013年度 卒業論文 要旨集
- プログラミング言語処理系のための抽象型による対応関係の実現
- スマートフォンにおける圧縮通信に関する消費エネルギーの最適化
- スマートフォンにおける消費エネルギー可視化のための予測モデル
- 形式的に記述された金融取引契約の等式変換の正しさ
- 引数渡し機構を拡張した可逆プログラミング言語の可逆性の保証
- レスポンシブwebデザインのレイアウト設計を支援する領域特化言語の提案
- 可逆スタックを用いた可逆セル・オートマトンのクリーン可逆シミュレーション
- リストの可逆分割アルゴリズムを利用したゴミ情報が最適な可逆クイック整列法の生成
- 2013年度 修士論文 要旨集
- 命令型プログラミング言語におけるプログラム可逆変換の形式化
2017/10/17の課題
問題:Compare the advantages and disadvantages of using an inverse interpreter and a program inverter for solving an inversion problem. Discuss at least two main points.
解答例
プログラムの逆実行には,逆インタープリタで解釈する方法とプログラム逆変換器で変換して得られる逆プログラムを実行する方法がある.インタープリタと同様に逆インタープリタによる解釈は実行時にCPU時間やメモリ使用量といった計算資源をより必要とする.プログラム逆変換器で変換された逆プログラムの実行は,逆インタープリタによって解釈するよりも時間的にも空間的にも効率的である.
プログラム逆変換器を用いる場合はコンパイルのオーバーヘッドがあるという欠点があるのに対して,逆インタープリタによる解釈はこうしたオーバーヘッドなしに開始することができる.したがって,プログラムが巨大であり実際に解釈される部分が小さい場合は逆インタープリタを利用する方が効率が良い.しかし,何度もプログラムを走らせる場合には,実行効率がより良いコンパイル結果を用いる方が効率が良い.
開発者の視点からは,逆インタープリタの開発はプログラム逆変換器の開発よりも遙かに簡単である.McCarthyの生成とテストアルゴリズムは,自明ではないにしても,素直に制御の流れを保ったまま実装することができる.しかし,効率的な逆プログラムを生成するプログラム逆変換器の開発には人間の勘や技術といったものが実装に必要である.逆インタープリタとプログラム逆変換器の関係は,インタープリタとコンパイラの関係に類似している.
プログラム逆変換器inverterとインタープリタintがあれば,インタープリタをプログラム逆変換器に入力することで逆インタープリタを得ることができる:
[[inv_int]] = λ(p,x).[[ [[inverter]](int) ]](p,x)
また,その逆も可能である:
[[inverter]] = λp.λx.[[inv_int]](p,x)
しかし,このアプローチでは特別な工夫が無ければ得られる逆インタープリタの実行効率の良さは望めない.
3年次Q4
学期始めに「JABEE対応コースの学習・教育目標」と「科目の学修目標」を周知します。
- ソフトウェア工学演習IV: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:F-1,2,3)。
- (F) 社会の要求や課題を解決するために、理学・工学の諸技術を利用して、自主的かつ継続的に仕事を進め,またチームとして計画的に目的を達成することができる
- F-1 問題解決能力:解決すべき問題を理解し、関連研究の調査報告を効果的にまとめ、理学・工学に関わる理論・技術に基いた問題解決へと結びつけることができる
- F-2 自主的・継続的に学習する能力:研究課題を自分で設定し、継続的に取り組むことができる
- F-3 制約の下で仕事をする能力:与えられた制約の下で計画的に取り組むことができる
- (F) 社会の要求や課題を解決するために、理学・工学の諸技術を利用して、自主的かつ継続的に仕事を進め,またチームとして計画的に目的を達成することができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:F-1,2,3)。
シラバスに書いてあるように評価方法は「エンジニアリングデザイン能力などの課題解決能力を,レポートで評価し、60点以上を合格とする。」です。
エンジニアリングデザイン
プロセス
- 現状の把握
- (主体を確定)問題の発見
- 課題の設定(目的の設定)
- 解決策の立案
- 解決策(代替案)の立案
- プレゼン資料とレポートの作成
- (講評)
受講生から出た案
- 南山大のオンラインシラバスの改善
- 空き教室の検索
- PORTAの単位集計システム:取得単位とそうでないものがわかりにくい,何を取って良いかわかりずらい,WebClassと合併できないか,研究室配属に関係するGPAの情報がPORTAに載っていない(2期配属のとき)
- 授業評価アンケート
- 南山大のホームページの改善
- 就活情報を見やすく
- クォータ制になって1年で48単位の制約がわかりにくくなった?
- クォータ制の授業日程の把握しにくさ
- PORTAにおいて探したいものがどこにあるかわからない
- 休講情報の通知
テーマの案(教員案)
- GitHub を用いて協調開発を行う。
- プログラムのオンラインジャッジの製作:PC2を参考にする。
- 高級プログラミング言語同士の翻訳(教科書にある簡単なものができればいい)
- 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を用いたプログラミングの学習
4年次Q1
- 52A17-003(SE-TEC-4017): 卒業研究IEシラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:F-1,2,3)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます。
発表担当
以下の順で研究の進捗報告をする。レジュメやスライドを準備すること。
グループ1 浅野、池田、三輪 グループ2 加藤、内藤、伊藤 グループ3 須藤、鵜野、山口
4年次Q2
学期始めに「JABEE対応コースの学習・教育目標」と「科目の学修目標」を周知します。スライド
- 52A09-008(SE-TEC-4009) ソフトウェア工学演習V: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- E-1 コミュニケーションの能力: 適切なコミュニケーションを行うことができる
- E-2 文章作成の能力: 正確かつ論理的な文章を作成することができる
- E-3 プレゼンテーションの能力: 調査・研究の結果を正確にまとめ、的確にプレゼンテーションを行うことができる
- E-4 グループで仕事をするための能力: グループの一員として共同して課題に取り組むことができる
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます.
第1回 4/6?,10? オリエンテーション
シラバスにあるように卒業研究は以下の区分を目安に研究テーマを選びます。
- 理論的研究
- 事例研究
- 調査研究
- ハードウェア/ソフトウェアの制作
4年次Q3
- 52A10-008(SE-TEC-4010) ソフトウェア工学演習VI: シラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- E-1 コミュニケーションの能力: 適切なコミュニケーションを行うことができる
- E-2 文章作成の能力: 正確かつ論理的な文章を作成することができる
- E-3 プレゼンテーションの能力: 調査・研究の結果を正確にまとめ、的確にプレゼンテーションを行うことができる
- E-4 グループで仕事をするための能力: グループの一員として共同して課題に取り組むことができる
- (E) 日本語での文章作成および口頭発表を通じて正確かつ論理的に情報を伝えることができ、グループの一員として指導や協力ができ、英語での基礎的なコミュニケーションができる
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:E-1,2,3,4)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。
輪読の割り当て
永田,セベロ,江崎,亀谷 6章 加藤(晴),田島,外川 7章 鳥居,渡辺,吉田,加藤(大) 8章 永田,セベロ,江崎 9章 亀谷,加藤(晴),田島,外川 10章 鳥居,渡辺,吉田 11章 加藤(大) 12章の一部
定期試験「レポート」課題
各自が本演習における輪読・輪講などの発表で用いた資料を提出して下さい。(輪読を聞いてのノートなどを含む学習ポートフォリオで可)
提出先:WebClass
4年次 卒業研究IIE
- 52A18-003(SE-TEC-4018): 卒業研究IIEシラバス
- この科目は、次の JABEE 対応コース「情報技術専修コース(システム数理学科・ソフトウェア工学科・機械電子制御工学科)」の学習・教育目標に対応する(小項目:F-1,2,3)。
シラバスに書いてあるように評価方法は「レポート80点、プレゼンテーション20点で評価し、60点以上を合格とする。」です。プレゼンテーションを聴講して質問やコメントをしたことはプレゼンテーションの評価に含みます(7点満点)。
第2回〜第8回
発表の割り当て
6/15 浅野,山口(探索),加藤(流れ) ←レジュメの用意を推奨 6/22 須藤,池田,三輪(処理系) 6/29 鵜野,伊藤,全(万能性) ※以降つづく.また,これ以外に個別にグループミーティングを行います.
グループ・ミーティング
自分の興味のあるミーティングに必ず1つは参加すること。事前に質問を用意してくること。
6/19(火)13:30 S57教室 流体解析 6/19(火)14:00 S57教室 プログラミング言語 (スマートコントラクトの記述も含む) 6/19(火)14:30 S57教室 アルゴリズム 6/22(金)13:30 S51教室 計算モデル
定期試験「レポート」課題
各自が本演習における輪読・輪講などの発表で用いた資料を提出して下さい。
- 卒業論文の草稿(すくなくとも、タイトル、目次、および関連研究・技術)
- 中間発表に向けた要旨の草稿、および発表資料
提出先:WebClass