2020年秋学期 - ソフトウェア工学 / SOFTWARE ENGINEERING
| B6098 ソフトウェア工学 SOFTWARE ENGINEERING |
創造技法科目-デザインと情報スキル Creative Courses (Skill) - Design and Information Skill 2 単位 |
| 実施形態 | 完全オンライン |
| 開催日程 | 秋学期 金曜日4時限 |
| 担当教員 | 川島 英之(カワシマ ヒデユキ) |
| 関連科目 | 前提科目(推奨): B4003,C2128 前提科目(関連): 45090,C2100,65090,60730,95021,C2099,B4003,C2087,C2072,C2128 |
| 開講場所 |
https://keio-univ.zoom.us/j/84149910479?pwd=bUNrYkdVK1JyUmNWVkJURVVsY0Y3dz09 ミーティングID: 841 4991 0479 |
| 授業形態 | 講義、実習・演習 |
| 履修者制限 |
履修人数を制限する Only the selected students can take this course. |
| 履修条件 |
Applicants should understand the principles of the database system lectured in big data system and have the basic ability of C language development. I think that it is not easy for other students to obtain credits.
1. C言語初歩を修得していること
|
| 使用言語 | 日本語 |
| 連絡先 | river@sfc.keio.ac.jp |
| 授業ホームページ | |
| 同一科目 |
|
| 学生が利用する予定機材/ソフト等 |
Editor (emacs, vi, etc) and C-compiler (gcc et. al) Editor (emacs, vi, etc) and C-compiler (gcc et. al) |
| 設置学部・研究科 | 総合政策・環境情報学部 |
| 大学院プロジェクト名 |
|
| 大学院プロジェクトサブメンバー |
|
| ゲストスピーカーの人数 | 1 |
| 履修選抜・課題タイプ=テキスト登録可 | true |
| 履修選抜・選抜課題タイプ=ファイル登録可 | false |
| GIGAサティフィケート対象 | |
| 最終更新日 | 2020/09/04 02:23:08 |
科目概要
データベースシステムを題材にシステム開発手法を学びます。特にSiloプロトコルの理解に努めます。基礎的なコンピュータシステムに関する内容を理解していなければ授業についてくることは難しいと思います。
https://dl.acm.org/doi/10.1145/2517349.2522713
授業シラバス
主題と目標/授業の手法など
この講義では学生にシステムソフトウェアのプログラミングスキルを習得して欲しいと思います。 そのために、プログラミングタスクは毎週提供されており、授業中に修了しないと宿題になります。
I wish students to learn in this lecture is to master the programming skills of system software. For that purpose, programming tasks are provided every week, and they will be homework if you do not finish it during the class.
教材・参考文献
教材は次の論文です。この内容を理解できるならば、この授業は容易だと思います。しかしながらこの論文は内容が高度であるため、警戒しながら読む必要があります。
Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, and Samuel Madden. 2013. Speedy transactions in multicore in-memory databases. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (SOSP '13). Association for Computing Machinery, New York, NY, USA, 18–32. DOI:https://doi.org/10.1145/2517349.2522713
提出課題・試験・成績評価の方法など
Reports.
Reports.
履修上の注意
2020年度は日本語で開講します.
I will give lectures in Japanese.
授業計画
第1回 ガイダンス
[Guidance ]
1. 基礎的なコンピュータサイエンス
2. Editor, compiler, C/C++
3. 線形リストの実装
1. Basic computer science
2. Editor, compiler, C/C++
3. Implementing linked list
第2回 Binary Search and Hash Index
[Binary Search and Hash Index]
1. Binary Searchの実装
2. Hash indexの実装
1. Implementing binary search
2. Implementing hash index
第3回 Range Query: B+tree (1)
[Range Query: B+tree (1)]
1. B+treeアルゴリズム
1. B+tree algorithm
第4回 Range Query: B+tree (2)
[Range Query: B+tree (2)]
1. Leaf node への挿入
1. Implementing insert into leaf node.
第5回 Range Query: B+tree (3)
[Range Query: B+tree (3)]
2. Leaf node への挿入
2. Leaf node への挿入
第6回 Midterm Examination
[Midterm Examination]
Implementing B+-tree from scratch
Implementing B+-tree from scratch
第7回 Isolation and S2PL
[Isolation and S2PL]
1. S2PLとスレッドの復習
2. S2PLの実装
1. Review of S2PL and thread
2. Implementing S2PL
第8回 Kung-Robinson
[Kung-Robinson]
1. KR法の復習
2. KR法の実装
1. Review of KR
2. Implementing KR
第9回 Silo-CC (1)
[Silo-CC (1)]
1. Silo-CCの理解
1. Understanding Silo-CC
第10回 Silo-CC (2)
[Silo-CC (2)]
1. Normalフェーズの実装
1. Implementing normal phase.
第11回 Silo-CC (3)
[Silo-CC (3)]
1. Commitフェーズの実装
1. Implementing commit phase.
第12回 Final Examination
[Final Examination]
Silo-CCをスクラッチから実装
Implementing Silo-CC from scratch
第13回 Report (1)
[Report (1)]
データ処理に関するレポート
Writing a report on data processing.
第14回 Report (2)
[Report (2)]
データ処理に関するレポート
Writing a report on data processing.
第15回 Report (3)
[Report (3)]
データ処理に関するレポート
Writing a report on data processing.
15回目に相当するその他の授業計画
Reports