プログラミング言語I

科目基礎情報

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

到達目標

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

ルーブリック

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

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

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

教育方法等

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

合否判定は学年末試験の点数が60点以上とする。再試験は60点以上で合格。
注意点:
1年次の数学、情報数学、2年次で進行中の数学の問題についてもプログラミングするのでこれらの科目を理解していないと、プログラミングもできないということになります。

最初は ??? であっても必ず !!! という瞬間がきます。個々の演習項目はとても
短いプログラムです。最初から1つ1つ確実にクリアしていってください

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

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