情報科学研究科Graduate School of Computer and Information Sciences
COT500K1(計算基盤 / Computing technologies 500)関数型言語と圏論Functional Languages and Category Theory
雪田 修一Yukita SYUICHI
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学研究科Graduate School of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | TZ008 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 春学期授業/Spring |
曜日・時限Day/Period | 月2/Mon.2 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
カテゴリーCategory |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
We study Functional Programming and Category Theory.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
We study Functional Programming and Category Theory.
到達目標Goal
Students will acquire working knowlege of category theory via programming with Haskell. Basic notions such as functors, natural transformations, adjoints, Kleiski triples, and monads are fully explained.
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち、「DP1」と「DP2」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
After basic materials are presented, students are asked to write Haskell code to implement abstract concepts according to concrete examples.
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
1st[対面/face to face]:Introduction
The goals of this course is presented. Students will be able to decide whether to enroll in this class or not.
Text: Lec01-02
2nd[対面/face to face]:Programming Categories
Programming with Haskell. Implementing examples in Lec01-02
3rd[対面/face to face]:Products
The concept of products are explained.
Text: Lec03-04
4th[対面/face to face]:Programming with Products
Students write programs with tuples, implementing examples in Lec03-04.
5th[対面/face to face]:Coproducts
The concept of coproducts are explained.
Text: Lec05-06
6th[対面/face to face]:Programming with Coproducts
Students write programs with the Either type constructor, implementing examples in Lec05-06.
7th[対面/face to face]:IO in Pure Languages
IO in Haskell is explained.
Text: Lec07
8th[対面/face to face]:Monads
Monads are explained.
Text: Lec08
9th[対面/face to face]:Abstract Data Types
Trees, stacks, queues, and other standard data types are viewed from category theory.
Text: Lec09-10
10th[対面/face to face]:Programming Abstract Data Types
Students write programs that implement various arrows in sample categories in Lec09-10.
11th[対面/face to face]:Categories of Functors
The concepts of functor, the category of functors, and natural transformations are introduced.
Text: Lec11-12
12th[対面/face to face]:Programming with Functors and Natural Transformations
Students write programs that implement various functors in examples in Lec11-12.
13th[対面/face to face]:Kleisli Triples and Monads
The concept of Kleisli triple is introduced with various examples.
Text: Lec13 and Lec14
14th[対面/face to face]:Programming Kleisli Triples
Students write programs that implement various notions such as state, continuation, and other functors.
Text: Lec13
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
Perform all the tasks that are assigned in class. Students are encouraged to do pencil-and-paper calculations in all examples. On average, it takes four hours to finish weekly assignments.
テキスト(教科書)Textbooks
Materials will be available on-line.
参考書References
Learn You a Haskell for Great Good!, Miran Lipovaca, No Starch Press.
Haskell -- the craft of functional programming -- 3rd edition, Simon Thompson, Addison Wesley.
成績評価の方法と基準Grading criteria
Contributions to the discussions in class (50%). Talks at the presentation meetings(50%).
学生の意見等からの気づきChanges following student comments
Lots of drawings are added to visual aids.
学生が準備すべき機器他Equipment student needs to prepare
PC
その他の重要事項Others
None