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
パスコード: 582159

授業形態 講義、実習・演習
履修者制限

履修人数を制限する

受入学生数(予定):約 50 人
選抜方法:課題提出による選抜

【課題内容】
Write a linear list in C language and show the code.



◯エントリー〆切日時:2020年9月28日(月) 17:00
◯履修許可者発表日時:2020年9月30日(水) 17:00

◯テキスト入力

Only the selected students can take this course.

Number of students in the class (scheduled) : About 50
Pre-registration screening by submitted an assignment

【ASSIGNMENT】
Write a linear list in C language and show the code.



* Schedule: TBD

履修条件

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言語初歩を修得していること
2. 大規模データシステム論を履修済であること、あるいは同等の能力を有すること。Silo (SOSP'13)を理解できなければ単位取得は絶望的です。

 

使用言語 日本語
連絡先 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