授業の目標と概要 |
2年生では λ計算に基づく計算モデルを持ち、構文上の制限が少なく初学者にとって学
習の容易なプログラミング言語 scheme を取り上げる。
学習の目標は、プログラミングの基本的な考え方を修得することである。
リスト構造、変数のスコープ、副作用、制御構造、再帰などの基本事項を
演習を通じて徹底理解する。
|
履修上の注意
(準備する用具・
前提とする知識等)
|
1年次の数学、情報数学、2年次で進行中の数学の問題についてプログラミング
するのでこれらについての理解は必須である。
|
到達目標 |
S式により問題の表現ができる。条件分岐、再帰による繰りかえしが行える。
単純な手続きを組み合わせることで複雑な問題を解決する問題解決の方法を
身に付ける。関数の値と副作用の違いを理解し適切に利用できる。
|
成績評価方法 |
前期中間 レポート(10%)、前期中間試験(90%)の総合評価。
前期期末 レポート(20%)、前期末試験(80%)の総合評価。
後期中間 レポート(10%)、後期中間試験(90%)の総合評価。
学年末 後期期末試験 (50%) レポート(20%) 過去の定期試験(30%)の総合評価。
合否判定は学年末試験の点数が60点以上とする。再試験は60点以上で合格
|
テキスト・参考書 |
(教科書)Scheme手習い フリードマン他 オーム社,
Scheme による プログラミング入門と実習 角川裕次
(参考書)Scheme入門 湯浅太一 岩波書店
(参考書)Scheme修行 フリードマン他 オーム社
(参考書)Land of Lisp Conrad Barski オライリージャパン
|
メッセージ |
最初は ??? であっても必ず !!! という瞬間がきます。個々の演習項目はとても
短いプログラムです。最初から1つ1つ確実にクリアしていってください
|
授業の内容 |
授業項目 | 授業項目ごとの達成目標 |
ガイダンス,シンタックス(1回)
リスト操作1 (1回)
リスト操作2(1回)
確認演習1(1回)
関数の定義(1回)
述語と条件判断(1回)
確認演習2(1回)
|
授業の進め方、レポートの提出方法、システムの使い方S式とは何かが判る、S式の評価の仕方が判る
CAR、CDRが使える
CONSが使える
DEFINEが使える
IF、CONDが使える
|
前期中間試験 |
実施する
|
再帰による繰り返し1 数を数える(1回)
再帰による繰り返し2 フィルター(1回)
確認演習3(1回)
再帰による繰り返し3 数を数える2(1回)
再帰による繰り返し4 置換(1回)
再帰による繰り返し5(1回)
確認演習4(1回)
|
単純なリストを入力して条件にあった要素の数を数えられる単純なリストを入力して条件にあった要素を残す
リストを入力して条件にあった要素の数を数えられる
リストを入力して条件にあった要素を指定した項目で置き換えられる
条件に従ったリストを生成することができる
|
前期期末試験 |
実施する
|
副作用1(1回)
ライブラリ関数(1回)
副作用2 (1回)
確認演習5(1回)
応用 数列 漸化式1(1回)
応用 数列 漸化式2(1回)
応用 集合、関係の表現1(1回)
|
副作用について理解する
ランダム関数を呼び出して使用できる
DISPLAY、WRITEが使える
漸化式、数列をプログラムできる。リストにより集合を定義して、集合の等価性、関係などを操作できる
|
後期中間試験 |
実施する
|
応用 集合、関係の表現2(1回)
アルゴリズム 単純ソート (1回)
アルゴリズム バブルソート(1回)
アルゴリズム クイックソート(1回)
総合問題演習1(1回)
総合問題演習2(1回)
総合問題演習3(1回)
|
リストにより集合を定義して、集合の等価性、関係などを操作できる
代表的な整列アルゴリズムを理解しプログラムできる
ベクトル、行列を表現して、和や積を計算できる
簡単なパズルやゲームについて問題を表現しプログラム
できる
|
後期期末試験 |
実施する
|