プログラミング言語I

科目基礎情報

学校 釧路工業高等専門学校 開講年度 2018
授業科目 プログラミング言語I
科目番号 0014 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 情報工学分野 対象学年 2
開設期 通年 週時間数 2
教科書/教材 (教科書)Scheme手習い フリードマン他 オーム社,Scheme による プログラミング入門と実習 角川裕次(参考書)Scheme入門 湯浅太一 岩波書店(参考書)Scheme修行 フリードマン他 オーム社(参考書)Land of Lisp Conrad Barski オライリージャパン
担当教員 髙橋 晃,鈴木 未央

到達目標

S式を正しく評価できる
関数に相当する手続きが定義できる
式を評価した時の値と副作用の区別ができる
再帰を使った繰り返しの手続の作成ができる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
S式を正しく評価できるスペシャルフォームを含む式を正しく書け、評価できる式の評価の仕組みを理解し、ネストした式に対しても、手続きと引数を区別して評価できる式の評価が正しく行えない
関数に相当する手続きが定義できる適切な引数や戻り値について理解し、手続きを組み合わせた手続きを作成できる適切な引数や戻り値を理解した上で手続きが作成できる手続きの引数や戻り値について説明できない
式を評価した時の値と副作用の区別ができる副作用を効果的に使った手続きを作成できるREPL中での出力が値なのか副作用なのかの区別ができる値と副作用の区別ができない
再帰を使った繰り返しの手続の作成ができる末尾再帰を理解し、適切な再帰の手続きが作成できる基本的な、再帰による手続きの定義ができる再帰的な手続きの動作の説明ができない

学科の到達目標項目との関係

学習・教育到達度目標 D 説明 閉じる

教育方法等

概要:
2年生では λ計算に基づく計算モデルを持ち、構文上の制限が少なく初学者にとって学習の容易なプログラミング言語 scheme を取り上げる。
学習の目標は、プログラミングの基本的な考え方を修得することである。
リスト構造、変数のスコープ、副作用、制御構造、再帰などの基本事項を演習を通じて徹底理解する。
授業の進め方・方法:
1年次の数学、情報数学、2年次で進行中の数学の問題についてプログラミングするのでこれらについての理解は必須である。
前期中間 レポート(10%)、前期中間試験(90%)の総合評価。
前期期末 レポート(20%)、前期末試験(80%)の総合評価。
後期中間 レポート(10%)、後期中間試験(90%)の総合評価。
学年末 後期期末試験 (50%) レポート(20%) 過去の定期試験(30%)の総合評価。
合否判定は学年末試験の点数が60点以上とする。再試験は60点以上で合格。

最初は ??? であっても必ず !!! という瞬間がきます。個々の演習項目はとても
短いプログラムです。最初から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週 後期期末試験:実施する

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。1
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
変数の概念を説明できる。2
データ型の概念を説明できる。2
制御構造の概念を理解し、条件分岐を記述できる。3
制御構造の概念を理解し、反復処理を記述できる。1
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。2
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。2
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。3

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合80000200100
基礎的能力80000200100