プログラミング応用

科目基礎情報

学校 津山工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング応用
科目番号 0084 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 総合理工学科(先進科学系) 対象学年 4
開設期 後期 週時間数 2
教科書/教材 教科書:特に指定しない
担当教員 菊地 洋右

到達目標

学習目的:
プログラミングの基礎を踏まえ,プログラム作成能力,プログラム読解能力を身に付ける。

到達目標:理論的な裏付けに留意しながらプログラムが記述でき,他者の書かれたプログラムを読みこなせる。
1.適切な変数,データ型を使ってプログラムが記述できる。
2.プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
3.与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
4.要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。

ルーブリック

不可
評価項目1適切な変数,データ型を使ってプログラムが記述できる。適切な変数またはデータ型を使ってプログラムが記述できる。変数,データ型を使ってプログラムが記述できる。変数,データ型を使ってプログラムが記述できない。
評価項目2プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含む可読性の高いプログラムが記述できる。プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。プロシージャ(関数,サブルーチンなど)の概念を理解している。プロシージャ(関数,サブルーチンなど)の概念を理解していない。
評価項目3与えられた簡単な問題に対して,それを解決するための可読性の高いソースプログラムが書ける。与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。与えられた簡単な問題に対して,それを解決するためのソースプログラムのフローチャートが書ける。与えられた簡単な問題に対して,それを解決するためのソースプログラムのフローチャートが書けない。
評価項目4要求仕様に従って,標準的な手法により実行効率を考慮した可読性の高いプログラムを設計できる。要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。要求仕様に従って,標準的な手法によりプログラムを設計できる。要求仕様に従って,標準的な手法によりプログラムを設計できない。

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

教育方法等

概要:
一般・専門の別:専門 学習の分野:情報・制御

基礎となる学問分野:情報学/計算基盤/ソフトウェア
学習の分野:情報システム・プログラミング・ネットワーク
学習教育目標との関連:本科目は「③基盤となる専門性の深化」に相当する科目である。

MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)が設定されている。

技術者教育プログラムとの関連:本科目が主体とする学習・教育目標は「(A)技術に関する基礎知識の深化」である。

授業の概要:プログラミングに必要な文法規則の基本的な項目について学習し,簡単なプログラムの読み方や書き方について学ぶ。また,他人にとって読みやすいプログラムを記述する方法についても学ぶ。また,自分の作成したプログラムを他者に説明できるようにプレゼンテーションや意見交換なども授業に取り入れる。
授業の進め方・方法:
授業の方法:プレゼンテーションによる講義とプログラミング演習を中心に授業を進める。理解が深まるようレポートを課す。

成績評価方法:2回の定期試験の結果(70%)と学習に取り組む態度(課題,レポート,発表、相互評価など)(30%)で評価する。ただし,割合については調整することがある。ルーブリックに基づいて定期試験を作成するが,定期試験がルーブリックの評価項目を必ずしも網羅しているとは限らない。
注意点:
履修上の注意:プログラミングに関する基礎知識があることが望ましい。本科目を選択した者は,学年の課程修了のために履修(欠課時間数が所定授業時間数の3分の1以下)が必須である。また,本科目は「授業時間外の学修を必要とする科目」である。当該授業時間と授業時間外の学修を合わせて,1単位あたり45時間の学修が必要である。授業時間外の学修については,担当教員の指示に従うこと。

履修のアドバイス:課題はPDFファイルで公開する。授業中の課題について自分で調査し,既存研究についての理解を深め自分でその課題に対するプログラムを作成してもらう。授業時間外にもプログラムを記述する時間が必要である。

基礎科目:情報リテラシー(1年),総合理工基礎(1),計算科学(3),アルゴリズムとデータ構造(3)

関連科目:システムプログラミング(5年),卒業研究(5)

受講上のアドバイス:プログラミングは自主学習によって実力をつけることが可能である。自宅等でもプログラミングできる環境があることが望ましい。課題は自分で行うこと。友人のコピーなどの不正が発覚した場合は厳しい措置をとる。授業開始前に行う出席確認に遅れた者は遅刻として扱う。遅刻は1時限分の欠課として扱う。授業開始から50分を経過しての遅刻については2時限分の欠課として扱う。事前に行う準備学習としてBlackBoardに授業の進行状況、予定を適宜掲載するので確認すること。

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 後期ガイダンス
最大公約数・最小公倍数を求めるプログラム
適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
2週 最大公約数・最小公倍数を求めるプログラムの発表
円周率の近似値を求めるプログラム
作成したプログラムの発表を通じて、プログラムについて技術的な検討を行う。
適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
3週 プログラムの読解演習 プロシージャ(関数,サブルーチンなど)の概念を理解できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが読解できる。
4週 円周率の近似値を求めるプログラムの発表
素数判定のプログラム
作成したプログラムの発表を通じて、プログラムについて技術的な検討を行う。
適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
5週 プログラムの読解演習 プロシージャ(関数,サブルーチンなど)の概念を理解できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが読解できる。
6週 素数判定のプログラムの発表
エルガマル暗号のプログラム
作成したプログラムの発表を通じて、プログラムについて技術的な検討を行う。
適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
7週 エルガマル暗号のプログラム 適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
8週 (後期中間試験) 学習内容の確認
4thQ
9週 後期中間試験答案返却と解答解説 学習内容の確認と振り返り
10週 RSA暗号のプログラム 適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
11週 RSA暗号のプログラム 適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
12週 ゲームのプログラム 適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
13週 ゲームのプログラム 適切な変数,データ型を使ってプログラムが記述できる。
プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。
与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)
14週 ゲームのプログラムの発表 作成したプログラムの発表を通じて、プログラムについて技術的な検討を行う。
15週 (後期末試験) 学習内容の確認
16週 後期末試験の答案返却と試験解説 学習内容の確認と振り返り

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
変数の概念を説明できる。4
データ型の概念を説明できる。4
制御構造の概念を理解し、条件分岐を記述できる。4
制御構造の概念を理解し、反復処理を記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4
主要な言語処理プロセッサの種類と特徴を説明できる。4
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。4
プログラミング言語は計算モデルによって分類されることを説明できる。4
主要な計算モデルを説明できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4
ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
整列、探索など、基本的なアルゴリズムについて説明できる。3
時間計算量によってアルゴリズムを比較・評価できることを説明できる。2
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。2
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。3
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。3
ソフトウェアを中心としたシステム開発のプロセスを説明できる。4
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3

評価割合

試験発表相互評価自己評価課題小テスト合計
総合評価割合70055200100
基礎的能力0000000
専門的能力7000020090
分野横断的能力00550010