到達目標
S式を正しく評価できる
関数に相当する手続きが定義できる
式を評価した時の値と副作用の区別ができる
再帰を使った繰り返しの手続の作成ができる
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
S式を正しく評価できる | スペシャルフォームを含む式を正しく書け、評価できる | 式の評価の仕組みを理解し、ネストした式に対しても、手続きと引数を区別して評価できる | 式の評価が正しく行えない |
関数に相当する手続きが定義できる | 適切な引数や戻り値について理解し、手続きを組み合わせた手続きを作成できる | 適切な引数や戻り値を理解した上で手続きが作成できる | 手続きの引数や戻り値について説明できない |
式を評価した時の値と副作用の区別ができる | 副作用を効果的に使った手続きを作成できる | REPL中での出力が値なのか副作用なのかの区別ができる | 値と副作用の区別ができない |
再帰を使った繰り返しの手続の作成ができる | 末尾再帰を理解し、適切な再帰の手続きが作成できる | 基本的な、再帰による手続きの定義ができる | 再帰的な手続きの動作の説明ができない |
学科の到達目標項目との関係
教育方法等
概要:
2年生では λ計算に基づく計算モデルを持ち、構文上の制限が少なく初学者にとって学習の容易なプログラミング言語 scheme を取り上げる。
学習の目標は、プログラミングの基本的な考え方を修得することである。
リスト構造、変数のスコープ、副作用、制御構造、再帰などの基本事項を演習を通じて徹底理解する。
授業の進め方・方法:
基本的な概念の講義を行なった後に演習を行う。
基本的には毎回、演習課題を4問程度出題し次回までに提出することを求める。
各期の点数は以下のように評価する。
前期中間 レポート(10%)、前期中間試験(90%)の総合評価。
前期期末 レポート(20%)、前期末試験(80%)の総合評価。
後期中間 レポート(10%)、後期中間試験(90%)の総合評価。
学年末 後期期末試験 (50%) レポート(20%) 過去の定期試験(30%)の総合評価。
合否判定は学年末試験の点数が60点以上とする。再試験は60点以上で合格。
注意点:
1年次の数学、情報数学、2年次で進行中の数学の問題についてもプログラミングするのでこれらの科目を理解していないと、プログラミングもできないということになります。
最初は ??? であっても必ず !!! という瞬間がきます。個々の演習項目はとても
短いプログラムです。最初から1つ1つ確実にクリアしていってください
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス,シンタックス(1回) |
授業の進め方、レポートの提出方法、システムの使い方
|
2週 |
リスト操作1 (1回) |
S式とは何かが判る、S式の評価の仕方が判る
|
3週 |
リスト操作2(1回) |
CAR、CDRが使える
|
4週 |
確認演習1(1回) |
CONSが使える
|
5週 |
関数の定義(1回) |
DEFINEでシンボルに値をバインドできる
|
6週 |
述語と条件判断(1回) |
LAMBDAで手続きを定義できる、
|
7週 |
確認演習2(1回) |
IF、COND が使える
|
8週 |
前期中間試験:実施する |
|
2ndQ |
9週 |
再帰による繰り返し1 数を数える(1回) |
単純なリストを入力して条件にあった要素の数を数えられる
|
10週 |
再帰による繰り返し2 フィルター(1回) |
単純なリストを入力して条件にあった要素を残す
|
11週 |
確認演習3(1回) |
|
12週 |
再帰による繰り返し3 数を数える2(1回) |
リストを入力して条件にあった要素の数を数えられる
|
13週 |
再帰による繰り返し4 置換(1回) |
リストを入力して条件にあった要素を指定した項目で置き換えられる
|
14週 |
再帰による繰り返し5(1回) |
条件に従ったリストを生成することができる
|
15週 |
確認演習4(1回) |
|
16週 |
前期期末試験:実施する |
|
後期 |
3rdQ |
1週 |
副作用1(1回) |
副作用について理解する
|
2週 |
ライブラリ関数(1回) |
ランダム関数を呼び出して使用できる
|
3週 |
副作用2 (1回) |
DISPLAY、WRITEが使える
|
4週 |
確認演習5(1回) |
|
5週 |
応用 数列 漸化式1(1回) |
漸化式、数列をプログラムできる。
|
6週 |
応用 数列 漸化式2(1回) |
|
7週 |
応用 集合、関係の表現1(1回) |
リストにより集合を定義して、集合の等価性、関係などを操作できる
|
8週 |
後期中間試験:実施する |
|
4thQ |
9週 |
応用 集合、関係の表現2(1回) |
リストにより集合を定義して、集合の等価性、関係などを操作できる
|
10週 |
アルゴリズム 単純ソート (1回) |
代表的な整列アルゴリズムを理解しプログラムできる
|
11週 |
アルゴリズム バブルソート(1回) |
|
12週 |
アルゴリズム クイックソート(1回) |
|
13週 |
総合問題演習1(1回) |
ベクトル、行列を表現して、和や積を計算できる
|
14週 |
総合問題演習2(1回) |
|
15週 |
総合問題演習3(1回) |
簡単なパズルやゲームについて問題を表現しプログラムできる
|
16週 |
後期期末試験:実施する |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 2 | 前2 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前5 |
変数の概念を説明できる。 | 2 | 前5 |
データ型の概念を説明できる。 | 3 | 前6 |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | 前6,前7,前12,前13,前14 |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | 前9,前10,前12,前13,前14 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 前15,後13 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 3 | 前15 |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 3 | 前1 |
主要な計算モデルを説明できる。 | 3 | 前1 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | 前15 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 2 | 前1 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 2 | 前1 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 3 | 前15 |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 3 | 前15 |
評価割合
| 試験 | 発表 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 80 | 0 | 0 | 0 | 20 | 0 | 100 |
基礎的能力 | 80 | 0 | 0 | 0 | 20 | 0 | 100 |