Programming Practice (Haskell)

Numbering Code U-LAS30 20010 SJ11 Year/Term 2021 ・ Second semester
Number of Credits 4 Course Type Seminar
Target Year All students Target Student For all majors
Language Japanese Day/Period Fri.1・2
Instructor name ARAI JUN (Part-time Lecturer)
Outline and Purpose of the Course Haskellを使用して関数型言語によるプログラミング手法を学ぶ。Haskellは、純粋関数型言語と呼ばれている。一般的なプログラミング言語では副作用と呼ばれる仕組みがないことを意味している。つまり、同じ入力(引き数)に対しては常に同じ出力(関数値)が得られる。それは数学でいうところの関数と同じである。

一方、計算機は手続き的な動作を得意とする。そのため多くのプログラミング言語では手続き的な記述をするが、Haskellでは、より宣言的な記述が可能であり、人間の思考に近い形でプログラム可能である。但し、Haskellは手続き的な記述をする能力も持っているため、より広範な応用が可能である。

他にも強力な型付けが可能であったり、並列処理など容易に記述できるなど様々な特徴を持っている。
Course Goals 関数型言語によるプログラミングを通して、コンピュータを利用することを身につける。また、その裏側にある処理方法などからコンピュータそのものの仕組みを理解する。
Schedule and Contents 以下のようなトピックについてそれぞれ1、2週の授業を行う予定である。

1. プログラミング・パラダイム
2. プログラムを書く
3. 関数を定義する
4. 自分自身を使った定義 (再帰的定義)
5. パターンマッチやガードによる定義
6. 遅延評価
7. 高階関数
8. 純粋な関数とは(宣言的な記述)
9. 型付け
10. 代数的データ型及びリスト処理
11. 入出力の制御(モナドについて)
12. 並列・並行処理


授業回数はフィードバックを含め全15回とする。
Evaluation Methods and Policy 全部で10程度の課題についてレポートを出してもらい、その成果によって評価する。基礎的な課題について7割程度の達成度であれば単位を取得することが可能である。
Course Requirements ECS-IDがあり、利用のマナーを遵守できること。コンピュータの基本的な使い方を習得していることが求められる。プログラミングの経験はとくに必要としない。
Study outside of Class (preparation and review) 基本的には、授業での学習を元に、各トピックに関連するさまざまなプログラムを実際に動かしてみることで理解を深めることが重要である。また、可能であれば事前に、授業で学習する各トピックについて、書籍等に基づいて概念、用語などを調べたり、実際に簡単なプログラムを動かしてみることで、演習にスムーズに取り組めるようにしておくことが望ましい。
Related URL http://www.stdio.h.kyoto-u.ac.jp/~jun/haskell/
PAGE TOP