プログラミング演習(Haskell)

科目ナンバリング U-LAS30 20010 SJ11 開講年度・開講期 2021 ・ 後期
単位数 4 単位 授業形態 演習
配当学年 全回生 対象学生 全学向
使用言語 日本語 曜時限 金1・2
教員 新井 潤 (非常勤講師)
授業の概要・目的 Haskellを使用して関数型言語によるプログラミング手法を学ぶ。Haskellは、純粋関数型言語と呼ばれている。一般的なプログラミング言語では副作用と呼ばれる仕組みがないことを意味している。つまり、同じ入力(引き数)に対しては常に同じ出力(関数値)が得られる。それは数学でいうところの関数と同じである。

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

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

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


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