概要:
一般・専門の別:専門 学習の分野:情報・制御
必修・履修・履修選択・選択の別:履修選択
基礎となる学問分野:情報学/計算基盤/ソフトウェア
学習の分野:情報システム・プログラミング・ネットワーク
学科学習目標との関連:本科目は「③基盤となる専門性の深化」に相当する科目である。
MCC到達目標(平成29年4月38日ガイドライン準拠、カッコ内はレベル):V-D-1 プログラミングの全項目(4), V-D-2 ソフトウェアのアルゴリズム(3), データ構造(3), ソフトウェア工学(4), プログラム解析(3)が設定されている。
技術者教育プログラムとの関連:本科目が主体とする学習・教育目標は「(A)技術に関する基礎知識の深化」である。
授業の概要:プログラミングに必要な文法規則の基本的な項目について学習し,簡単なプログラムの読み方や書き方について学ぶ。また,他人にとって読みやすいプログラムを記述する方法についても学ぶ。また,自分の作成したプログラムを他者に説明できるようにプレゼンテーションや意見交換なども授業に取り入れる。
授業の進め方・方法:
授業の方法:プレゼンテーションによる講義とプログラミング演習を中心に授業を進める。理解が深まるようレポートを課す。
成績評価方法:2回の定期試験の結果(70%)と学習に取り組む態度(課題,レポート,発表、相互評価など)(30%)で評価する。ただし,割合については調整することがある。ルーブリックに基づいて定期試験を作成するが,定期試験がルーブリックの評価項目を必ずしも網羅しているとは限らない。
注意点:
履修上の注意:プログラミングに関する基礎知識があることが望ましい。
履修のアドバイス:課題はPDFファイルで公開する。授業中の課題について自分で調査し,既存研究についての理解を深め自分でその課題に対するプログラムを作成してもらう。授業時間外にもプログラムを記述する時間が必要である。
基礎科目:情報リテラシー(1年),総合理工基礎(1),計算科学(3),アルゴリズムとデータ構造(3)
関連科目:システムプログラミング(5年),卒業研究(5)
受講上のアドバイス:プログラミングは自主学習によって実力をつけることが可能である。自宅等でもプログラミングできる環境があることが望ましい。課題は自分で行うこと。友人のコピーなどの不正が発覚した場合は厳しい措置をとる。授業開始前に行う出席確認に遅れた者は遅刻として扱う。遅刻は1時限分の欠課として扱う。授業開始から50分を経過しての遅刻については2時限分の欠課として扱う。BlackBoardに授業の進行状況を適宜掲載するので参考にすること。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
後期ガイダンス 最大公約数・最小公倍数を求めるプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
|
2週 |
最大公約数・最小公倍数を求めるプログラムの発表 円周率の近似値を求めるプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。
|
3週 |
プログラムの読解演習 |
プロシージャ(関数,サブルーチンなど)の概念を理解できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが読解できる。
|
4週 |
円周率の近似値を求めるプログラムの発表 素数判定のプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
5週 |
プログラムの読解演習 |
プロシージャ(関数,サブルーチンなど)の概念を理解できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが読解できる。
|
6週 |
素数判定のプログラムの発表 エルガマル暗号のプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
7週 |
エルガマル暗号のプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
8週 |
(後期中間試験) |
学習内容の確認
|
4thQ |
9週 |
後期中間試験答案返却と解答解説 |
学習内容の確認と振り返り
|
10週 |
エルガマル暗号のプログラムの発表 対人tic tac toeのプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
11週 |
コンピュータ対戦tic tac toeのプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
12週 |
コンピュータ対戦tic tac toeのプログラムの発表 ゲームのプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
13週 |
ゲームのプログラム |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
14週 |
ゲームのプログラムの発表 |
適切な変数,データ型を使ってプログラムが記述できる。 プロシージャ(関数,サブルーチンなど)の概念を理解し,これらを含むプログラムが記述できる。 与えられた簡単な問題に対して,それを解決するためのソースプログラムが書ける。 要求仕様に従って,標準的な手法により実行効率を考慮したプログラムを設計できる。
|
15週 |
(後期末試験) |
学習内容の確認
|
16週 |
後期末試験の答案返却と試験解説 |
学習内容の確認と振り返り
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数の概念を説明できる。 | 4 | |
データ型の概念を説明できる。 | 4 | |
代入や演算子の概念を理解し、式を記述できる。 | 4 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 2 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 2 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | |