プログラム設計

科目基礎情報

学校 鈴鹿工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 プログラム設計
科目番号 0038 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 電子情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 教科書:「やさしいC++第4版」高橋麻奈著(ソフトバンク)参考書: 「C++実践プログラミング(第2版), Steave Oulline(著), 望月康司(監訳), O'REILLY, 「Effective C++(第2版)」, Scott Meyers (著), 吉川 邦夫(訳), アスキー,「プログラミング言語C++第3版」, Bjarne Stroustrup (著), 長尾 高弘(訳), アスキー
担当教員 箕浦 弘人,青山 俊弘

到達目標

プログラミングの基本となる諸概念について理解し,C++によって,関数,クラスを使った簡単なプログラムを作成することができ,初歩的な開発プロセスおよび設計手順等を理解している.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1各種制御文を用いて実践的なプログラムを書ける各種制御文を用いて基本的なプログラムを書ける各種制御文を用いて基本的なプログラムを書けない
評価項目2関数を用いて実践的なプログラムを書ける関数を用いて基本的なプログラムを書ける関数を用いて基本的なプログラムを書けない
評価項目3ポインタ,参照を用いて実践的なプログラムを書けるポインタ,参照を用いて基本的なプログラムを書けるポインタ,参照を用いて基本的なプログラムを書けない
評価項目4基本的なクラスを用いて実践的なプログラムを書ける基本的なクラスを用いて基本的なプログラムを書ける基本的なクラスを用いて基本的なプログラムを書けない
評価項目5継承を用いて実践的なプログラムを書ける継承を用いて基本的なプログラムを書ける継承を用いて基本的なプログラムを書けない
評価項目6高度なC++の文法を用いて実践的なプログラムを書ける高度なC++の文法を用いて基本的なプログラムを書ける高度なC++の文法を用いて基本的なプログラムを書けない

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

教育方法等

概要:
プログラム設計では,C++言語の文法を会得し,C++言語を用いてプログラミングできる知識と技術を習得する.この授業ではC++言語のみではなく,プログラミング一般の方法やオブジェクト指向に関する知識についても学習する.また,演習を通じてC++言語仕様以外に,簡単な基本的なデータ構造やアルゴリズムについても学習する.
授業の進め方・方法:
全ての内容は,学習・教育到達目標の<B>(基礎)に関連する.
授業は講義、演習、実習をバランス良く行う.演習と実習は習熟度別に選択となる.
「授業計画」における各週の「到達目標」はこの授業で習得する「知識・能力」に相当するものとする
注意点:
<到達目標の評価方法と基準>
 授業計画の「達成目標」1-20の確認を,これらの範囲を網羅した2回の中間試験,2回の定期試験と,レポートで行う.評価結果が百点法で60点以上の場合に目標の達成とする.
<学業成績の評価方法および評価基準>
前期中間,前期末,後期中間,学年末の4回の定期試験結果を80%,レポートを20%で評価する.それぞれの期間ごと100点満点で評価し,これらの平均値を小数点以下切り捨てたものを最終評価とする.各定期試験での再試験は行わない.また,12月に行われる情報オリンピックの成績を学業成績の評価に加えることがある.
<あらかじめ要求される基礎知識の範囲>プログラミング基礎,電子情報工学序論の知識が必要.また,課題は数学や物理を参考に出題するので,これらの基本的な知識が必要.
<レポート等> 授業の理解を深めるためと,プログラム作成技術を向上させるため,基本的に毎週,プログラミング作成のレポート課題を課す.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 1年の復習 1. 変数および, if, while, for, switchの各文法を使い、プログラムを作成できる
2週 関数1 2. 引数,戻り値の概念を理解し,値渡し,アドレス渡し,参照渡しの違いについて理解し、関数を使ってプログラムを作成できる
3週 関数2 3. 関数テンプレート,テンプレートクラス、関数のオーバーロードについて理解する
4週 アドレス,ポインタ 4. 変数がアドレスで指定されるメモリ領域を保持し,このアドレスとポインタとの関係を理解する
5週 配列とポインタ 5. 配列とポインタの関係を理解し,プログラムを作成できる
6週 スコープ,記憶寿命 7. 型と変数,記憶寿命とスコープの概念を理解し,プログラムを作成できる
7週 enum,typedef, 構造体 8. 列挙型,構造体のデータ構造について理解し,プログラムを作成できる
8週 中間試験 これまでに学習した内容を説明し、プログラム作成に応用できる
2ndQ
9週 動的なメモリ確保 9. 動的メモリを確保する必要性を理解し、動的メモリを使いプログラムを作成できる
10週 クラスとオブジェクト 10. クラスとオブジェクトについて説明できる
11週 クラスの定義, コンストラクタ 11. 簡単なクラスを作成し,プログラムを作成できる
12週 参照 12.参照の概念を理解し、説明でき、プログラムで利用できる
13週 継承 13. 継承,仮想関数の概念を理解し,派生クラスを作成してプログラムを作成することができる
14週 仮想関数,抽象クラス 14. 純粋仮想関数,抽象クラス,仮想クラス,多重継承の概念を理解する
15週 多重継承 上記14
16週
後期
3rdQ
1週 演算子のオーバーロード1 15. 演算子のオーバーロードについて理解し,プログラムを作成できる
2週 演算子のオーバーロード2 上記15
3週 型変換 上記15
4週 オブジェクトの初期化,メモリの確保と解放 16. 適切にオブジェクトを初期化する方法を理解し,プログラムを作成することができる
5週 クラステンプレート 17. クラステンプレートについて理解し,プログラムを作成できる
6週 STL 18. STLを利用してプログラムを作成できる
7週 復習 これまでに学習した内容を説明できる
8週 中間試験 これまでに学習した内容を説明し、プログラム作成に応用できる
4thQ
9週 ストリーム,コマンドライン引数 19. ストリームの概念を理解し,入出力プログラムを作成することができる
10週 例外処理,名前空間 20. 例外処理および名前空間の概念を理解し,プログラムを作成できる
11週 静的メンバ 21. 静的メンバ変数の概念を理解し、説明できる
12週 デザインパターン 22. デザインパターンを利用してプログラムを作成できる
13週 要求定義と設計1 23. プログラム開発プロセスを理解し,簡単なシステムの仕様策定,設計ができる
14週 要求定義と設計2 上記23
15週 復習 これまでに学習した内容を説明できる
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
変数の概念を説明できる。4
データ型の概念を説明できる。4
制御構造の概念を理解し、条件分岐を記述できる。4
制御構造の概念を理解し、反復処理を記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4

評価割合

試験課題相互評価態度発表その他合計
総合評価割合80200000100
配点80200000100