到達目標
1.型とクラスを理解できる
2.関数定義を正しく行うことができる
3.リスト内包表記を正しく用いることができる
4.再帰関数を正しく定義できる
5.高階関数を正しく用いることができる
6.対話プログラムを書くことができる
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
型とクラスを理解できる | 型だけでなく、クラスの概念も理解できる | リスト型と関数型を理解できる | 整数と文字列だけしか理解できない |
関数定義を正しく行うことができる | セクションおよびラムダ式を正しく用いることができる | パターンマッチを正しく行うことができる | パターンマッチを正しく行うことができない |
リスト内包表記を正しく用いることができる | | リスト内包表記を正しく用いることができる | リスト内包表記を正しく用いることができない |
再帰関数を正しく定義できる | 多重再帰および相互再帰も正しく定義できる | 単純再帰を正しく定義できる | 単純再帰すら定義できない |
高階関数を正しく用いることができる | 畳み込み関数 foldr および foldl を正しく用いることができる | 高階関数 map および filter を正しく用いることができる | 高階関数 map および filter すら用いることができない |
対話プログラムを書くことができる | IO モナドを用いて、ある程度複雑な対話プログラム(たとえば電卓プログラム)を書くことができる | IO モナドを用いることができる | IO モナドを用いることができない |
学科の到達目標項目との関係
教育方法等
概要:
Haskell によるプログラミング入門
授業の進め方・方法:
(1) 資料に沿ってプログラム例を解説する。そのあと授業時間内では、(2) 例と類似の簡単な問題を各自が解く。
(3) 数回の授業の後、少々高度な問題をレポートに課す。(4) 学期末には、かなり高度な問題を試験問題の例として提示する。
注意点:
「習うより慣れよ」という勉強法が推奨されることが多いが、この勉強法は誤りで、本当に大事な事は自力で問題を解きながら、基本的な考え方を徹底的に理解することである。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
導入 |
以下の項目を理解する □型とクラス □ 関数定義 □ リスト内包表記
|
2週 |
導入 |
以下の項目を理解する □型とクラス □ 関数定義 □ リスト内包表記
|
3週 |
導入 |
以下の項目を理解する □型とクラス □ 関数定義 □ リスト内包表記
|
4週 |
導入 |
以下の項目を理解する □型とクラス □ 関数定義 □ リスト内包表記
|
5週 |
導入 |
以下の項目を理解する □型とクラス □ 関数定義 □ リスト内包表記
|
6週 |
関数型プログラミング |
以下の項目を理解する □ 再帰関数 □ 高階関数
|
7週 |
関数型プログラミング |
以下の項目を理解する □ 再帰関数 □ 高階関数
|
8週 |
関数型プログラミング |
以下の項目を理解する □ 再帰関数 □ 高階関数
|
2ndQ |
9週 |
関数型プログラミング |
以下の項目を理解する □ 再帰関数 □ 高階関数
|
10週 |
関数型プログラミング |
以下の項目を理解する □ 再帰関数 □ 高階関数
|
11週 |
型 |
以下の項目を理解する □ 関数型パーサー □ 対話プログラム □ 型とクラスの定義
|
12週 |
型 |
以下の項目を理解する □ 関数型パーサー □ 対話プログラム □ 型とクラスの定義
|
13週 |
型 |
以下の項目を理解する □ 関数型パーサー □ 対話プログラム □ 型とクラスの定義
|
14週 |
型 |
以下の項目を理解する □ 関数型パーサー □ 対話プログラム □ 型とクラスの定義
|
15週 |
試験答案の返却・解説 |
試験において間違えた部分を自分の課題として把握する
|
16週 |
|
|
評価割合
| 試験 | 実習レポート | 合計 |
総合評価割合 | 60 | 40 | 100 |
専門的能力 | 60 | 40 | 100 |